Section outline
-
-
Διάλεξη 1 — 20/2
- Θέματα διεξαγωγής του μαθήματος και του εργαστηρίου
- Σκοπός του μαθήματος και εισαγωγή
- Σύντομη επανάληψη ύλης του 1ου εξαμήνου
- Ξεχωριστή μεταγλώττιση
- Αναφορές και δείκτες
- Χώροι ονομάτων
- Διαφάνειες
- Video (2020-21), διαφάνειες
- Video (2021-22), διαφάνειες
-
Διάλεξη 2 — 21/2
- Αντικειμενοστρεφής σχεδίαση και προγραμματισμός
- Προσδιοριστές ορατότητας
- Κατασκευαστές, καταστροφείς
- Μέθοδοι getter / setter
- Φίλες συναρτήσεις
- Υπερφόρτωση συναρτήσεων, μεθόδων και τελεστών
- Μέθοδοι const
- Στατικά πεδία και μέθοδοι
- Διαφάνειες
- Video (2020-21), διαφάνειες
- Video (2021-22), διαφάνειες
- Αντικειμενοστρεφής σχεδίαση και προγραμματισμός
-
Διάλεξη 3 — 6/3
- C++ templates
- Function templates
- Class templates
- Κληρονομικότητα
- Απλή κληρονομικότητα
- Ορατότητα πεδίων
- Πολλαπλή κληρονομικότητα
- Επισκίαση μεθόδων
- Εικονικές μέθοδοι
- Διαφάνειες
- Video (2020-21), διαφάνειες
- Video (2021-22), διαφάνειες
- C++ templates
-
Διάλεξη 4 — 13/3
- Κληρονομικότητα (συνέχεια)
- Πολυμορφισμός
- Αφηρημένες μέθοδοι και κλάσεις
- Εικονικές κλάσεις
- Εξαιρέσεις
- Πίνακες ως αφηρημένοι τύποι δεδομένων
- Γενικά
- Πίνακες συγκεκριμένης μορφής (τριγωνικοί, συμμετρικοί, κ.λπ.)
- Αραιοί πίνακες
- Διαφάνειες
- Video (2020-21), διαφάνειες
- Video (2021-22), διαφάνειες
- Σημειώσεις για ιεραρχία containers
- Κληρονομικότητα (συνέχεια)
-
Διάλεξη 5 — 20/3
- Πίνακες ως αφηρημένοι τύποι δεδομένων (επανάληψη και συνέχεια)
- Γενικά
- Πίνακες συγκεκριμένης μορφής (τριγωνικοί, συμμετρικοί, κ.λπ.)
- Αραιοί πίνακες
- Υλοποίηση μονοδιάστατων πινάκων
- Υλοποίηση διδιάστατων πινάκων
- Εισαγωγή στην STL
- Γενικά
- Συμβολοσειρές (string)
- Απλοί containers: array
- Απλοί containers: array, vector
- Iterators
- Περισσότεροι containers και adapters: list, stack, queue
- Διαφάνειες
- Αρχεία κώδικα:
- Μονοδιάστατοι πίνακες: array1d.cpp και array1d-x.cpp
- Διδιάστατοι πίνακες: array2d.cpp και array2d-x.cpp
- Video (2020-21) -- άλλη ύλη! (ιεραρχία containers)
- Video (2021-22), διαφάνειες
- Πίνακες ως αφηρημένοι τύποι δεδομένων (επανάληψη και συνέχεια)
-
Διάλεξη 6 — 28/3
- Εισαγωγή στην STL (επανάληψη και συνέχεια)
- Ζεύγη και πλειάδες
- Σύνολα: set, multiset
- Χάρτες: map, multimap
- Memoization
- Χρήσιμοι αλγόριθμοι: αναζήτηση, ταξινόμηση, κ.λπ.
- Function objects
- Παραδείγματα:
- Phonetic alphabet
- Διαγωνισμοί προμηθειών
- Αγορά ηλεκτρικής ενέργειας
- Διαφάνειες
- Video (2020-21) -- άλλη ύλη! (ιεραρχία containers)
- Video (2021-22), διαφάνειες, κώδικας
- Εισαγωγή στην STL (επανάληψη και συνέχεια)
-
Διάλεξη 7 — 3/4
- Δένδρα
- Γενικά δένδρα
- Διάσχιση κατά βάθος και κατά πλάτος
- Δυαδικά δένδρα αναζήτησης
- Δένδρα AVL
- Υλοποίηση γενικών, δυαδικών και AVL δένδρων
- Δένδρα πολλαπλών οδεύσεων
- Δένδρα 2-3
- Β-δένδρα
- Διαφάνειες
- Αρχεία κώδικα:
- Γενικά δέντρα: generic-trees.cpp και generic-trees-redux.cpp
- Δυαδικά δένδρα: binary-trees.cpp
- Δυαδικά δένδρα αναζήτησης: binary-search-trees.cpp
- Δένδρα AVL: avl-trees.cpp
- Δένδρα
-
-