ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0
ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της πληροφορικής και να αποκτήσουν εξειδικευμένες γνώσεις. ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C++ Στον αντικειμενοστραφή προγραμματισμό αυτό που μας απασχολεί είναι τα αντικείμενα και οι ιδιότητες τους. Ο προγραμματιστής μπορεί, ευκολότερα, να αναπαραστήσει το φυσικό πρόβλημα στο ψηφιακό κόσμο, γεγονός που το φέρνει πιο κοντά στη λύση του. Οι εξεταζόμενοι έχουν την δυνατότητα να διδαχθούν τα πάντα όσον αφορά την αντικειμενοστραφή γλώσσα προγραμματισμού C++. Ενότητα ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΝΝΟΙΕΣ ΤΩΝ ΑΛΓΟΡΙΘΜΩΝ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ανάλυση του προβλήματος - Κατηγορίες προβλημάτων - Λειτουργίες ηλεκτρονικού υπολογιστή - Κατανόηση δυαδικού συστήματος αρίθμησης - Κατανόηση εννοιών bits, bytes - Αλγόριθμοι - Βασικές έννοιες - Ιδιότητες αλγορίθμου - Flow chart - Δομές Δομή ακολουθίας Δομή επιλογής Δομή επανάληψης
Δομές αλγορίθμων - Εισαγωγή στους πίνακες - Μονοδιάστατοι πίνακες - Δυσδιάστατοι πίνακες - Ταξινόμηση πινάκων Τεχνικές σχεδίασης αλγορίθμου Εισαγωγή στον προγραμματισμό - Γλώσσες προγραμματισμού - Εισαγωγή στη C++ - Ιστορική αναδρομή Το ελάχιστο πρόγραμμα C++ Αντικείμενα - Ενθυλάκωση - Εξειδίκευση - Γενίκευση - Γενίκευση και πολυμορφισμός - Οι τρεις πυλώνες Πηγαίος κώδικας και αρχεία κεφαλίδες Μετάφραση σε γλώσσα μηχανής - Ο κύκλος ανάπτυξης - Σφάλματα μεταγλώτισσης Εκτέλεση και δοκιμές ΞΕΚΙΝΗΜΑ ΣΤΗΝ C++ Ανάλυση του κώδικα - Χώροι ονομασίας - Χρήση των χώρων ονομασίας std Εξερεύνηση του κώδικα - Επιστροφή μιας τιμής - Η συνάρτηση main() - Χρήση της cout - Μεταβλητές Δέσμευση μνήμης Δήλωση και ορισμός μιας μεταβλητής Εμβέλεια Αρχικοποίηση μεταβλητών Ενσωματωμένοι τύποι δεδομένων - Σταθερές Δήλωση και ορισμός σταθερών Τύποι σταθερών Καθορισμός σταθερών με τη #define Καθορισμός σταθερών με την const
Η ΡΟΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Επίλυση του προβλήματος με βρόγχους - Σχεσιακοί τελεστές - Εντολές μπλοκ και σύνθετες εντολές - Λογικοί τελεστές Η εντολή if - Σχεσιακή προτεραιότητα - do while - Σταθερές απαρίθμησης - Είσοδος Boolean από το χρήστη - Ο τελεστής ισότητας = = - Else - Ο τελεστής συνθήκης ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δημιουργία νέων τύπων: κλάση Δήλωση της κλάσης - Κλάσεις και αντικείμενα - Μεταβλητές μέλη - Μέθοδοι μέλη ή συναρτήσεις - Το μέγεθος των αντικειμένων Αρχεία Συνάρτηση δημιουργίας Συνάρτηση κατάργησης Υλοποίηση των μεθόδων Χρήση της κεφαλίδας Υλοποίηση της συνάρτησης δημιουργίας Τι είναι πίνακας - Αρχικοποίηση πινάκων - Στοιχεία πίνακα - Γράψιμο πέρα από το τέλος ενός πίνακα Εξέταση του αρχείου καθορισμένων τιμών
Θεματική Ενότητα ΔΙΑΒΙΒΑΣΗ ΜΕ ΜΕΤΑΦΟΡΑ ΚΑΙ ΤΙΜΗ - ΔΕΙΚΤΕΣ Υλοποίηση inline Σταθερές μέθοδοι μέλη Διαβίβαση με αναφορά και τιμή - Αναφορές και διαβίβαση με αναφορά Δείκτες - Τι είναι ένας δείκτης - Διευθύνσεις μνήμης - Από-αναφορά - Κατανόηση των τελεστών Πίνακες - Πίνακες ως δείκτες - Διαβίβαση του πίνακα ως δείκτη Χρήση της ASSERT - Πως λειτουργεί η ASSERT ΧΡΗΣΗ ΣΥΝΔΕΔΕΜΕΝΩΝ ΛΙΣΤΩΝ Δυναμικές δομές δεδομένων - Η τυπική βιβλιοθήκη προτύπου Συνδεδεμένες λίστες - Κατανόηση των συνδεδεμένων λιστών Η μέθοδος HowMany() Η Insert() σε λεπτομέρειες Χρήση της new - Η new και η delete Υπερφόρτωση τελεστών - Πως επιτυγχάνεται η υπερφόρτωση τελεστών Διαβίβαση αντικειμένων με τιμή - Γιατί αυτή είναι μια αναφορά; ΟΙ ΚΑΝΟΝΙΚΕΣ ΜΕΘΟΔΟΙ Υπερφόρτωση μεθόδων - Υπερφόρτωση συναρτήσεων δημιουργίας Η προεπιλεγμένη συνάρτηση δημιουργίας Η προεπιλεγμένη συνάρτηση κατάργησης Η δημιουργία συνάρτησης για αντιγραφή Ο τελεστής αντιστοίχησης
ΧΡΗΣΗ ΠΟΛΥΜΟΡΦΙΣΜΟΥ Εξειδίκευση - Πλεονεκτήματα από την εξειδίκευση - Πολυμορφισμός - Αφηρημένοι τύποι δεδομένων - Πώς αυτό υλοποιείται στη C++ Αντικατάσταση συναρτήσεων Εικονικές μέθοδοι - Πώς λειτουργούν οι εικονικές συναρτήσεις - Εικονικές συναρτήσεις δημιουργίας Υλοποίηση πολυμορφισμού - Προσθήκη ενός δεύτερου γράμματος - Εξέταση του operator[] ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ Φιλικές κλάσεις και μέθοδοι Φιλικές συναρτήσεις Ορισμοί στην κεφαλίδα Υποστασιοποίηση του προτύπου ΕΚΧΩΡΗΣΗ ΕΥΘΥΝΗΣ Ανάθεση ευθύνης - Η προεπιλεγμένη παράμετρος - Η SmartChar σε λεπτομέρειες Παρακολούθηση της λειτουργίας Δημιουργία μιας έξυπνης συμβολοσειράς Δημιουργία προβλέψεων: Ανασκόπηση Δημιουργία μιας πρόβλεψης, λεπτομέρειες Η λογική της CanEliminateCharacters Η CanEliminateCharacters σε λεπτομέρειες GenerateAGuess Η isconsistent σε λεπτομέρειες Η επίδραση της στατικότητας Εξάλειψη των χαρακτήρων
ΕΜΜΟΝΗ Εμμονή αντικειμένων - Συναφείς απόψεις για την εμμονή Σχεδίαση τα εμμένοντα δεδομένα Οι μέθοδοι Reader και Writer - Θέματα διασύνδεσης χρήστη Σύνταξη του παιχνιδιού - Σύνταξη του παιχνιδιού βήμα πρός βήμα Σύνταξη πολυμορφικών αντικειμένων Με το τέλος αυτού του κύκλου μαθημάτων ο σπουδαστής θα έχει μυηθεί σε ένα πιο ανθρώπινο προγραμματιστικό περιβάλλον, που τον βοηθά να κατανοήσει καλύτερα και ταχύτερα τα προβλήματα και τις λύσεις τους, καθιστώντας τον πιο αποδοτικό και αποτελεσματικό. Θα έχει αποκτήσει όλες εκείνες τις δυνατότητες, για να ανταπεξέλθει πλήρως στις συνεχώς αυξανόμενες ανάγκες στο χώρο του προγραμματισμού και της πληροφορικής γενικότερα.