ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (0813.7.012.0)
Δρ. Παπαδάκης Νικόλαος
Το μάθημα έχει ως στόχο Α) να εισάγει τους φοιτητές στην C (μια γλώσσα χαμηλού επιπέδου). Β) να παρουσιάσει έννοιες αντικειμενοστραφούς προγραμματισμού στην C++, και τέλος Γ) να παρουσιάσει προχωρημένες έννοιες προγραμματισμού.
Το μάθημα χωρίζεται σε τρεις ενότητες:
- Προγραμματισμός σε C,
- Αντικειμενοστραφής προγραμματισμός
- Προχωρημένες έννοιες
(Για πιο λεπτομερή περιγραφή, δείτε στις πληροφορίες)
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα
Το μάθημα έχει ως στόχο Α) να εισάγει τους φοιτητές στην C (μια γλώσσα χαμηλού επιπέδου). Β) να παρουσιάσει έννοιες αντικειμενοστραφούς προγραμματισμού στην C++, και τέλος Γ) να παρουσιάσει προχωρημένες έννοιες προγραμματισμού.
Το μάθημα χωρίζεται σε τρεις ενότητες:
- Προγραμματισμός σε C,
- Αντικειμενοστραφής προγραμματισμός
- Προχωρημένες έννοιες
(Για πιο λεπτομερή περιγραφή, δείτε στις πληροφορίες)
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβ
Το μάθημα έχει ως στόχο Α) να εισάγει τους φοιτητές στην C (μια γλώσσα χαμηλού επιπέδου). Β) να παρουσιάσει έννοιες αντικειμενοστραφούς προγραμματισμού στην C++, και τέλος Γ) να παρουσιάσει προχωρημένες έννοιες προγραμματισμού.
Το μάθημα χωρίζεται σε τρεις ενότητες:
- Προγραμματισμός σε C,
- Αντικειμενοστραφής προγραμματισμός
- Προχωρημένες έννοιες
(Για πιο λεπτομερή περιγραφή, δείτε στις πληροφορίες)
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβ
Πληροφορίες
Περιεχόμενο μαθήματος
Το μάθημα χωρίζεται σε τρεις ενότητες:
- Προγραμματισμός σε C,
- Αντικειμενοστραφής προγραμματισμός
- Προχωρημένες έννοιες
Η ενότητα Προγραμματισμός σε C, περιλαμβάνει τα ακόλουθα θέματα
- Αναπαράσταση αριθμών στο δυαδικό/οκταδικό/δεκαεξαδικό σύστημα
- Τελεστές: αριθμητικοί, λογικοί, σχεσιακοί, bitwise
- Δομές δεδομένων
- Συναρτήσεις και μεταβλητές
- Τελεστές
- Έλεγχος ροής
- Πίνακες
- Δείκτες (Pointers), αριθμητικές διευθύνσεις, πίνακας δεικτών
- Interrupts (ρουτίνες διακοπής προγράμματος)
Η ενότητα Aντικειμενοστραφής προγραμματισμός, περιλαμβάνει έννοιες όπως:
- Τι είναι ο αντικειμενοστραφής προγραμματισμός στην C++
- Κλάσσεις και αντικείμενα
- Constructor και ~
- Αντικείμενα σαν ορίσματα συναρτήσεων
- Κληρονομικότητα (Inheritance),
- Yπερφορτωση (Overloading)
- Ενθυλάκωση (Encapsulation), Πρόσβαση στις συναρτήσεις
- Αφαίρεση (Abstraction),
- Πολύμορφισμός (Polymorphism),
- Διασυνδέσεις (Interfaces)
- Σύγκριση με άλλες αντικειμενοστρέφεις γλώσσες
Η ενότητα Προχωρημένες έννοιες C παρουσιάζει τις ακόλουθες έννοιες:
- Αρχεία (Files and streams)
- Διαχείριση Σφαλμάτων/Εξαιρέσεων
- Δυναμική Παραχώρηση μνήμης
- Ονοματοχώροι (Namespaces)
- Πρότυπα (templates) και Γενικός Προγραμματισμός (Generic Programming)
- Διαχείριση Σημάτων (Signal Handling)/Interrupts
- Design Patterns
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα
Μαθησιακοί στόχοι
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα
Βιβλιογραφία
- GNU C Tutorial (2002): Εισαγωγικό (και όχι μόνο) κείμενο για την C.
- Complete Guide to C++(2002): πλήρης οδηγός στην C++
Προχωρημένα κείμενα
- Modern C++ (2022): pdf που περιγράφει τις αλλαγές από το πρότυπo C++11
Το μάθημα χωρίζεται σε τρεις ενότητες:
- Προγραμματισμός σε C,
- Αντικειμενοστραφής προγραμματισμός
- Προχωρημένες έννοιες
Η ενότητα Προγραμματισμός σε C, περιλαμβάνει τα ακόλουθα θέματα
- Αναπαράσταση αριθμών στο δυαδικό/οκταδικό/δεκαεξαδικό σύστημα
- Τελεστές: αριθμητικοί, λογικοί, σχεσιακοί, bitwise
- Δομές δεδομένων
- Συναρτήσεις και μεταβλητές
- Τελεστές
- Έλεγχος ροής
- Πίνακες
- Δείκτες (Pointers), αριθμητικές διευθύνσεις, πίνακας δεικτών
- Interrupts (ρουτίνες διακοπής προγράμματος)
Η ενότητα Aντικειμενοστραφής προγραμματισμός, περιλαμβάνει έννοιες όπως:
- Τι είναι ο αντικειμενοστραφής προγραμματισμός στην C++
- Κλάσσεις και αντικείμενα
- Constructor και ~
- Αντικείμενα σαν ορίσματα συναρτήσεων
- Κληρονομικότητα (Inheritance),
- Yπερφορτωση (Overloading)
- Ενθυλάκωση (Encapsulation), Πρόσβαση στις συναρτήσεις
- Αφαίρεση (Abstraction),
- Πολύμορφισμός (Polymorphism),
- Διασυνδέσεις (Interfaces)
- Σύγκριση με άλλες αντικειμενοστρέφεις γλώσσες
Η ενότητα Προχωρημένες έννοιες C παρουσιάζει τις ακόλουθες έννοιες:
- Αρχεία (Files and streams)
- Διαχείριση Σφαλμάτων/Εξαιρέσεων
- Δυναμική Παραχώρηση μνήμης
- Ονοματοχώροι (Namespaces)
- Πρότυπα (templates) και Γενικός Προγραμματισμός (Generic Programming)
- Διαχείριση Σημάτων (Signal Handling)/Interrupts
- Design Patterns
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:
- Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
- επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
- να κατανοήσουν έννοιες αντικειμενοτραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
- Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
- Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
- Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα
- GNU C Tutorial (2002): Εισαγωγικό (και όχι μόνο) κείμενο για την C.
- Complete Guide to C++(2002): πλήρης οδηγός στην C++
Προχωρημένα κείμενα
- Modern C++ (2022): pdf που περιγράφει τις αλλαγές από το πρότυπo C++11