Παράκαμψη προς το κυρίως περιεχόμενο

Στόχοι Μαθήματος: Το μάθημα αυτό στοχεύει να εμπλουτίσει περαιτέρω τις γνώσεις των φοιτητών στον αντικειμενοστρεφή προγραμματισμό με την C++. Το μάθημα διδάσκει την C++ αρχίζοντας από απλές έννοιες όπως κλάσεις, αντικείμενα, κληρονομικότητα, κλάσεις ροής εισόδου / εξόδου, αναφορά στους τύπους της C++, δείκτες, struct, κλπ. Επίσης διδάσκονται οι έννοιες της πολυπλοκότητας και της υπερφόρτωσης τελεστών.

Μαθησιακά Αποτελέσματα: Μετά την επιτυχή ολοκλήρωση του μαθήματος, ο διδασκόμενος θα πρέπει: (1) Να γνωρίζει την διαφορά ανάμεσα στον αντικειμενοστρεφή και δομημένο προγραμματισμό. (2) Να γνωρίζει τις έννοιες όπως κλάσεις, αντικείμενα συναρτήσεις-μέλη και δεδομένα-μέλη. (3) Να γνωρίζει τις διαφορές των προσδιοριστών πρόσβασης (public, private, protected) και τι είναι ο constructor και ο destructor. (4) Να είναι σε θέση να γράφει τις κλάσεις σε διαφορετικό αρχείο να δημιουργεί project με διαχωρισμό των προγραμμάτων σε interface, implementation και client για σκοπούς reusability. (5) Να γνωρίζει τις έννοιες όπως encapsulation, inheritance, polymorphism και virtual methods. (6) Να μπορεί να λύνει προβλήματα με τη χρήση εντολών ελέγχου, με δείκτες, με γραμματοσειρές, με αρχεία, πίνακες και διανύσματα και με συναρτήσεις. Να ξέρει να χρησιμοποιεί τις περισσότερες βιβλιοθήκες που διαθέτει η C++.

Περιεχόμενο Μαθήματος: Τα θέματα που θα εξεταστούν συμπεριλαμβάνουν: Κλάσεις και όλες οι γενικές έννοιες του αντικειμενοστρεφή προγραμματισμού όπως  encapsulation, inheritance, polymorphism και virtual methods. Επίσης θα εξεταστούν όλες οι εντολές της C++, όπως εντολές ελέγχου, συναρτήσεις, διάφορες βιβλιοθήκες, τυχαίους αριθμούς, κλάσεις αποθήκευσης και κανόνες πεδίου εφαρμογής, αναδρομή, πίνακες και γραμματοσειρές, πολυδιάστατους πίνακες, δείκτες, μορφοποίηση εσόδων/εξόδων και επεξεργασία αρχείων.