Στόχος του μαθήματος είναι να γνωρίσει ο φοιτητής τις δυνατότητες του αντικειμενοστραφούς προγραμματισμού και συγκεκριμένα της γλώσσας C++ (ή ισοδύναμης). Να έχει την δυνατότητα να αναλύει ένα πρόβλημα και να σχεδιάζει τα βήματα επίλυσής του μέσα από έναν αλγόριθμο. Να μεταφράζει τον αλγόριθμο σε εντολές της C++ (ή ισοδύναμης) καθώς και να ελέγχει το τελικό αποτέλεσμα και να το αξιολογεί. Σκοπός του μαθήματος είναι να κατανοήσει ο φοιτητής ότι ο Η/Υ μπορεί να είναι ένα μέσο για την επίλυση προβλημάτων, μέσα από τη δυνατότητά του να εκτελεί πράξεις και λειτουργίες γρήγορα. Στη συνέχεια να μπορεί να αναλύσει ένα πρόβλημα σε βήματα αλγορίθμου τα οποία έπειτα θα μεταφράσει σε εντολές μιας γλώσσας προγραμματισμού. Επιπλέον, είναι η εκμάθηση μιας διαδικασιακής γλώσσας προγραμματισμού όπως η C, ώστε να τη χρησιμοποιεί σαν μέσο για την επίλυση προβλημάτων.
Εισαγωγή, υπερφόρτωση συνάρτησης, εξ ορισμού τιμή παραμέτρου, αναφορικές μεταβλητές.
Κλάσεις, αντικείμενα. Πότε χρησιμοποιούμε κλάσεις. Private και public μεταβλητές και συναρτήσεις. Εκτενή παραδείγματα.
Constructors (default και μη) και destructors. Υπερφόρτωση συναρτήσεων. Παραδείγματα.
Δείκτες και δυναμική δέσμευση και αποδέσμευση μνήμης (new και delete).
Κληρονομικότητα απλή και πολλαπλή. Κληρονομικότητα public, private και protected.
Φιλικές συναρτήσεις. Πολυμορφισμός, εικονικές συναρτήσεις (virtual) και αμιγώς εικονικές (pure virtual).
Υπερφόρτωση τελεστών. Παραδείγματα. Χώροι ονομάτων (namespaces).
Αρχεία (ifstrem, ofstream, κλπ) και εξαιρέσεις.
Ειδικά θέματα γλώσσας C/C++. Αλήθεια και ψέμα, συντομογραφίες τελεστών, ο τελεστής κόμμα, ο τελεστής υπο-συνθήκη, αναδρομικές συναρτήσεις, ένωση, typedef, απαριθμήσεις, ειδικοί τύποι μεταβλητών, τελεστές κατά δυαδικό ψηφίο.