Section outline

  • Καλωσήλθατε στη σελίδα του μαθήματος Προγραμματιστικές Τεχνικές της Σχολής Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσοβίου Πολυτεχνείου για το ακαδημαϊκό έτος 2023-24.

    • Στο forum του μαθήματος μπορείτε να υποβάλετε ερωτήσεις σχετικές με την ύλη του μαθήματος (π.χ. απορίες στη θεωρία και τις εργαστηριακές ασκήσεις). Μερικές καλές πρακτικές χρήσης του forum:

      • Πριν υποβάλετε το ερώτημά σας, κάντε μια μικρή αναζήτηση στο διαδίκτυο, μπορεί να υπάρχει προφανής απάντηση.
      • Παρά τη χρήση του όρου "forum", μην απαντάτε σε ερωτήματα συναδέλφων σας, θα το κάνουν οι διδάσκοντες.
      • Δεν στέλνουμε κώδικα από εργασίες σε εξέλιξη.
      • Καταβάλετε προσπάθεια το ερώτημά σας να είναι συνοπτικό και καθαρά διατυπωμένο.
      • Για γενική συζήτηση και ερωτήματα σε θέματα που άπτονται γενικότερα του μαθήματος μπορείτε να χρησιμοποιείτε και αυτό το forum για Ερωτήσεις και Απαντήσεις (Q&A)

    • Διδάσκοντες

      Για να επικοινωνήσετε με τους διδάσκοντες, στείλτε mail στο progtech@cslab.ece.ntua.gr.

      Χρήσιμο υλικό

      Ύλη

      Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό και τις δομές δεδομένων με τη γλώσσα προγραμματισμού C++. Κλάσεις και αντικείμενα, πεδία και μέθοδοι, κατασκευαστές και καταστροφείς, κληρονομικότητα, κανόνες προσπέλασης, επισκίαση μεθόδων, πολυμορφισμός, εικονικές μέθοδοι, υπερφόρτωση τελεστών, υπερφόρτωση συναρτήσεων και μεθόδων, function και class templates, εξαιρέσεις. Αφηρημένοι τύποι δεδομένων, ιεραρχίες κλάσεων, σχεδιαστικά πρότυπα. Η βιβλιοθήκη STL, περιέκτες (containers) και επαναλήπτες (iterators). Σχεδίαση και υλοποίηση δομών δεδομένων. Πίνακες ως αφηρημένοι τύποι δεδομένων. Συνδεδεμένες λίστες: απλά και διπλά συνδεδεμένες λίστες, στοίβες, ουρές, κυκλικές λίστες, ταξινομημένες λίστες. Ουρές προτεραιότητας: σωροί, δυαδικοί σωροί, ταξινόμηση με σωρό. Δένδρα: αναπαράσταση και διάσχιση, δυαδικά δένδρα, δυαδικά δένδρα αναζήτησης, ισοζυγισμένα δένδρα, δένδρα AVL, red-black trees, splay trees, δένδρα αναζήτησης m-οδεύσεων, Β-δένδρα. Γράφοι: αναπαράσταση και διάσχιση (κατά βάθος, κατά πλάτος), εντοπισμός κύκλων, μονοπάτια και κύκλοι Euler, τοπολογική ταξινόμηση, διαχείριση συνεκτικών συνιστωσών, union-find. Κατακερματισμός: συναρτήσεις και πίνακες κατακερματισμού, ανοιχτή και κλειστή διευθυνσιοδότηση.

      Εργαστήριο: Μια σειρά προβλημάτων που θα λυθούν σε C++.