Μετάβαση στο περιεχόμενο

Τεχνολογίες Υλοποίησης Αλγορίθμων

«Algorithm engineering»: πώς υλοποιείς αποδοτικά γνωστούς αλγορίθμους (γραφήματα, συντομότερες διαδρομές, μέγιστη ροή) σε C++ με τις βιβλιοθήκες LEDA, STL και BOOST, και πώς κάνεις σωστή πειραματική αξιολόγηση και έλεγχο ορθότητας. Η θεωρία είναι σύντομη· το βάρος πέφτει σε προγραμματιστικές εργασίες πάνω στον Διογένη και σε μια τελική ατομική εργασία. Κατά το περίγραμμα, αυτή εξετάζεται προφορικά και γραπτά (στον κώδικα και στην αναφορά), χωρίς ξεχωριστό γραπτό διαγώνισμα· κατά φοιτητές, τον Σεπτέμβριο 2026 δεν έγινε εξέταση στον κώδικα — αρκεί να δείξεις ότι ξέρεις τη θεωρία Discord 2026-09 (διαθέσιμο στο πλήρες πακέτο).

Θέματα Τι λένε οι φοιτητές Περίγραμμα ⬇ Κατέβασε για AI

Με μια ματιά

Κωδικός CEID_NE5078
Εξάμηνο / τύπος Επιλογής, εαρινό Κατάλογος
ECTS 5 Κατάλογος
Ώρες / εβδομάδα 2 θεωρία + 1 φροντιστήριο + 2 εργαστήριο Κατάλογος
Τομέας ΕΘ Κατάλογος
Διδάσκων 2025-26 Χρ. Ζαρολιάγκης Κατάλογος
Αξιολόγηση (περίγραμμα) 30% προγραμματιστικές ασκήσεις + 70% τελική εξέταση Κατάλογος: Περίγραμμα
Γλώσσα / περιβάλλον C++ με LEDA/STL/BOOST, σύνδεση στον Διογένη Κατάλογος: Περίγραμμα

Τι θα μάθεις

Το επίσημο περίγραμμα περιγράφει ένα μάθημα «τεχνολογιών υλοποίησης» και όχι κλασικής θεωρίας αλγορίθμων Κατάλογος: Περίγραμμα:

  • Τεχνικές αποδοτικής υλοποίησης βασικών και προηγμένων αλγορίθμων και δομών δεδομένων.
  • Επιστημονική πειραματική μεθοδολογία: αναπαραγωγή πειραμάτων, παραγωγή και αναζήτηση δεδομένων δοκιμής, μετρολογία και ερμηνεία αποτελεσμάτων.
  • Έλεγχος ορθότητας προγραμμάτων και «προγράμματα πιστοποίησης» (certifying programs).
  • Μελέτες περίπτωσης: αλγόριθμοι γραφημάτων, συντομότερες διαδρομές, μέγιστη ροή· ευρετικές μέθοδοι για αύξηση της απόδοσης.
  • Αριθμητικά σφάλματα και τρόποι περιορισμού τους.
  • Περιβάλλον υλοποίησης: C++ με τις βιβλιοθήκες LEDA, STL και BOOST.
  • Ειδικά θέματα: οπτικοποίηση αλγορίθμων, γενικευμένος προγραμματισμός αρχετύπων, σχεδίαση κλάσεων βασισμένη σε πολιτικές.

Οι διαφάνειες θεωρίας ακολουθούν αυτή τη ροή: εισαγωγή και στόχοι eClass (διαθέσιμο στο πλήρες πακέτο)· κίνητρα και βιβλιοθήκες αλγορίθμων eClass (διαθέσιμο στο πλήρες πακέτο)· έλεγχος ορθότητας eClass (διαθέσιμο στο πλήρες πακέτο)· μετρολογία και αξιολόγηση απόδοσης eClass (διαθέσιμο στο πλήρες πακέτο)· γραφήματα στην LEDA και BFS eClass (διαθέσιμο στο πλήρες πακέτο)· συντομότερες διαδρομές και Dijkstra eClass (διαθέσιμο στο πλήρες πακέτο)· Bellman-Ford και ελεγκτής ορθότητας eClass (διαθέσιμο στο πλήρες πακέτο)· μέγιστη ροή με προροή-προώθηση eClass (διαθέσιμο στο πλήρες πακέτο)· ευρετικές μέθοδοι και αριθμητική κινητής υποδιαστολής eClass (διαθέσιμο στο πλήρες πακέτο).

Πώς βαθμολογείται

  • Το περίγραμμα ορίζει 30% από προγραμματιστικές ασκήσεις και 70% από την τελική εξέταση Κατάλογος: Περίγραμμα.
  • Σύμφωνα με το περίγραμμα, η «τελική εξέταση» είναι προφορική και γραπτή πάνω σε εκτενή προγραμματιστική εργασία που ανατίθεται ατομικά σε κάθε φοιτητή· εξετάζεται ο κώδικας και η αναφορά υλοποίησης/πειραματικής αξιολόγησης Κατάλογος: Περίγραμμα.
  • 2020-21: φοιτητής γράφει «Είναι 30% το εργαστήριο» και ότι είναι υποχρεωτικό μόνο για μεταπτυχιακούς Discord 2021-03 (διαθέσιμο στο πλήρες πακέτο).
  • 2022-23: δεν υπάρχει τελική γραπτή εξέταση· 2–3 εργαστηριακές ασκήσεις και μια τελική εργασία. Ένας φοιτητής αναφέρει κατανομή 0.3·εργαστηριακές + 0.2·παρουσίαση paper + 0.5·τελική εργασία Discord 2023-03 (διαθέσιμο στο πλήρες πακέτο).
  • 2023-24: «2 ασκήσεις και μια εργασία υποχρεωτικές και απαλλακτικές, οι ασκήσεις πιάνουν 15% και τελική 70%», χωρίς εξέταση πάνω στις ασκήσεις Discord 2024-03 (διαθέσιμο στο πλήρες πακέτο). Τα ποσοστά αθροίζουν 85%· το υπόλοιπο 15% δεν διευκρινίζεται (πιθανώς δεύτερη άσκηση/παρουσίαση) και διαφέρουν από το περίγραμμα (30%/70%).
  • 2025-26: στις διαφάνειες η «τελική εξέταση» ταυτίζεται με την τελική εργασία, χωρίς ξεχωριστή παρουσίαση Discord 2026-05 (διαθέσιμο στο πλήρες πακέτο).
  • Οι βαθμοί ανακοινώνονται μέσω Progress Discord 2025-10 (διαθέσιμο στο πλήρες πακέτο)· τον Σεπτέμβριο 2026 φοιτητής έγραψε «Βγήκαν βαθμοί» Discord 2026-09 (διαθέσιμο στο πλήρες πακέτο).

Εργασίες & εργαστήρια

  • Δύο σετ εργαστηριακών ασκήσεων: το πρώτο με LEDA, το δεύτερο με BOOST Discord 2023-03 (διαθέσιμο στο πλήρες πακέτο).
  • Οι ασκήσεις είναι «για εξάσκηση»· το 2026 δεν ήταν σαφές πόσες είναι υποχρεωτικές — ένας φοιτητής υποθέτει «2 θα είναι υποχρεωτικές» Discord 2026-03 (διαθέσιμο στο πλήρες πακέτο).
  • Στις διαλέξεις/εργαστήρια δίνεται από τον διδάσκοντα (διδακτορικό) ένα template για τις ασκήσεις Discord 2024-02 (διαθέσιμο στο πλήρες πακέτο).
  • Τελική εργασία: κάθε φοιτητής παίρνει δικό του θέμα, που δεν διαφέρει πολύ από τις ασκήσεις Discord 2024-03 (διαθέσιμο στο πλήρες πακέτο). Δίνεται περίπου έναν μήνα πριν την εξεταστική του Ιουνίου· ο διδάσκων προτείνει να παραδοθεί τον Σεπτέμβριο για περισσότερο χρόνο Discord 2024-03 (διαθέσιμο στο πλήρες πακέτο).
  • Η υλοποίηση γίνεται σε C++, σε σύνδεση με τον Διογένη, όπου υπάρχει και η LEDA Discord 2025-02 (διαθέσιμο στο πλήρες πακέτο).
  • Εκφωνήσεις παλαιότερων ασκήσεων διασώζονται στο φάκελο: TYA-hw1.pdf (διαθέσιμο στο πλήρες πακέτο) και TYA-hw2.pdf (διαθέσιμο στο πλήρες πακέτο).

Εξετάσεις

  • Δεν υπάρχουν ακόμη μεταγραφές εξεταστικών συνεδριών στον φάκελο Εξετάσεις.
  • Δεν υπάρχει κλασική γραπτή εξέταση· η εξέταση γίνεται πάνω στην ατομική τελική εργασία (κώδικας + αναφορά), προφορικά και γραπτά Κατάλογος: Περίγραμμα.
  • Τον Σεπτέμβριο 2026 φοιτητής ρώτησε αν χρειάζεται κάμερα στην εξέταση και αν θα του ζητήσουν αλλαγές στον κώδικα επιτόπου· απάντηση: ζήτησαν μόνο να μειώσει τις επαναλήψεις των πειραμάτων για να μην αργεί, δεν υπήρχε εξέταση στον κώδικα, αρκεί να δείξει ότι ξέρει τη θεωρία Discord 2026-09 (διαθέσιμο στο πλήρες πακέτο).
  • Τον Φεβρουάριο 2026 η ερώτηση αν το μάθημα έχει απαλλακτική εργασία και πώς είναι η εξέταση έμεινε αναπάντητη Discord 2026-02 (διαθέσιμο στο πλήρες πακέτο).

Δυσκολίες & παγίδες

  • Κατά φοιτητή, «αν ξέρεις C++ και θυμάσαι κάτι από αλγορίθμους, δεν νομίζω να δυσκολευτείς» Discord 2024-02 (διαθέσιμο στο πλήρες πακέτο). Το 2021 «από την περιγραφή φαίνεται εύκολο» Discord 2021-03 (διαθέσιμο στο πλήρες πακέτο). Είναι μεμονωμένες γνώμες, όχι στατιστικό.
  • Ο Διογένης είναι το βασικό σημείο τριβής: έπεφτε/είχε προβλήματα το 2024 Discord 2024-04 (διαθέσιμο στο πλήρες πακέτο) και το 2025 Discord 2025-04 (διαθέσιμο στο πλήρες πακέτο).
  • Η LEDA χρειάζεται άδεια (επί πληρωμή) και υπάρχει στην πράξη μόνο στον Διογένη· η τοπική εγκατάσταση είναι δύσκολη Discord 2025-02 (διαθέσιμο στο πλήρες πακέτο).
  • Ο compiler του Διογένη είναι παλιότερος: σύγχρονα C++ (π.χ. range-based for) δεν υποστηρίζονται Discord 2024-04 (διαθέσιμο στο πλήρες πακέτο).
  • Τα ποσοστά βαθμολογίας που αναφέρουν φοιτητές (15%/70% το 2024, 0.3/0.2/0.5 το 2023) δεν συμφωνούν μεταξύ τους ούτε με το περίγραμμα (30%/70%)· το περίγραμμα δεν έχει ημερομηνία και οι φοιτητές αναφέρουν άλλες κατανομές· ρώτα τον διδάσκοντα Discord 2024-03 (διαθέσιμο στο πλήρες πακέτο).

Υλικό & τρόπος μελέτης

  • Διαφάνειες θεωρίας L1–L9 (η ραχοκοκαλιά της ύλης): L1 (διαθέσιμο στο πλήρες πακέτο), L2 (διαθέσιμο στο πλήρες πακέτο), L3 (διαθέσιμο στο πλήρες πακέτο), L4 (διαθέσιμο στο πλήρες πακέτο), L5 (διαθέσιμο στο πλήρες πακέτο), L6 (διαθέσιμο στο πλήρες πακέτο), L7 (διαθέσιμο στο πλήρες πακέτο), L8 (διαθέσιμο στο πλήρες πακέτο), L9 (διαθέσιμο στο πλήρες πακέτο).
  • Εισαγωγή στη C++ σε τρία μέρη: C++ intro 1 (διαθέσιμο στο πλήρες πακέτο), 2 (διαθέσιμο στο πλήρες πακέτο), 3 (διαθέσιμο στο πλήρες πακέτο).
  • Βιβλιοθήκες: LEDA leda_1 (διαθέσιμο στο πλήρες πακέτο), leda_2 (διαθέσιμο στο πλήρες πακέτο), leda_impl (διαθέσιμο στο πλήρες πακέτο), graphwin (διαθέσιμο στο πλήρες πακέτο)· BOOST BGL BGL_intro (διαθέσιμο στο πλήρες πακέτο)· STL STL_intro (διαθέσιμο στο πλήρες πακέτο).
  • Πλήρες ευρετήριο: eclass_summary.md (διαθέσιμο στο πλήρες πακέτο).
  • Παλιές εκφωνήσεις ασκήσεων: TYA-hw1 (διαθέσιμο στο πλήρες πακέτο), TYA-hw2 (διαθέσιμο στο πλήρες πακέτο).
  • Έτοιμο Makefile για LEDA στον Διογένη υπάρχει ως παράδειγμα στις εργαστηριακές διαφάνειες· φοιτητές πρότειναν και το extension ftp-simple του VS Code για αυτόματο ανέβασμα αρχείων Discord 2023-05 (διαθέσιμο στο πλήρες πακέτο).
  • Επειδή δεν υπάρχουν παλιά θέματα, αξιοποίησε τις ασκήσεις και το demo-περιβάλλον της LEDA.

Συχνές ερωτήσεις

  • Έχει τελική γραπτή εξέταση; Όχι με την κλασική έννοια· εξετάζεται η τελική ατομική εργασία Κατάλογος: Περίγραμμα, Discord 2023-03 (διαθέσιμο στο πλήρες πακέτο).
  • Είναι υποχρεωτικό το εργαστήριο/οι παρουσίες; Το 2021 ήταν υποχρεωτικό μόνο για μεταπτυχιακούς Discord 2021-03 (διαθέσιμο στο πλήρες πακέτο)· το 2026 δεν υπήρχαν υποχρεωτικές παρουσίες («που εστειλα μειλ»), με αμφιβολία για το πόσες ασκήσεις μετράνε Discord 2026-03 (διαθέσιμο στο πλήρες πακέτο).
  • Πού βρίσκεται η LEDA; Μόνο στον Διογένη, λόγω άδειας επί πληρωμή Discord 2025-02 (διαθέσιμο στο πλήρες πακέτο)· οδηγίες στο eclass_summary.md (διαθέσιμο στο πλήρες πακέτο) και στις διαφάνειες LEDA.
  • Είναι ομαδικές οι εργασίες; Δεν ξεκαθαρίστηκε στη συζήτηση· φοιτητής ρώτησε και πήρε αβέβαιη απάντηση («νομίζω ναι») Discord 2024-02 (διαθέσιμο στο πλήρες πακέτο).
  • Πότε βγαίνουν οι βαθμοί; Μέσω Progress· το 2025-26 βγήκαν στα τέλη Σεπτεμβρίου Discord 2026-09 (διαθέσιμο στο πλήρες πακέτο).
  • Χρειάζεται να παρακολουθώ; Κατά φοιτητή «έχει πολύ καλές διαφάνειες αλλά αξίζει πολύ να το παρακολουθήσεις» Discord 2023-02 (διαθέσιμο στο πλήρες πακέτο).

Πηγές & αξιοπιστία

  • Κατάλογος 2025-26: ECTS 5, διδάσκων Χρ. Ζαρολιάγκης, 2+1+2 ώρες, τομέας ΕΘ — συμφωνούν με το επίσημο περίγραμμα Κατάλογος.
  • Περίγραμμα μαθήματος (αντλημένο 2026-10-07): Περίγραμμα. Δίνει 30%/70%, ενώ παλιότερες περιγραφές φοιτητών αναφέρουν άλλα ποσοστά· το περίγραμμα δεν έχει ημερομηνία, ρώτα τον διδάσκοντα.
  • Discord: 242 μηνύματα σε 13 περιόδους, 2021-02 έως 2026-09· όλα ανεπίσημες γνώμες φοιτητών.
  • eClass: 18 αρχεία (θεωρία, C++, LEDA/STL/BOOST), όλα με κείμενο (sidecar) eclass_summary.md (διαθέσιμο στο πλήρες πακέτο).
  • Εξετάσεις: δεν υπάρχουν μεταγραφές παλιών θεμάτων Εξετάσεις, οπότε η μορφή εξέτασης προέρχεται από το περίγραμμα και τη συζήτηση.
  • Δεν βρέθηκαν πληροφορίες για επίσημη κατανομή βάρους ανά εργασία, ποσοστό επιτυχίας ή ακριβή κριτήρια βαθμολόγησης.

Αρχεία του φακέλου

Παράγεται αυτόματα από tools/render_readmes.py — αλλαγές εδώ χάνονται στην επόμενη εκτέλεση.

Φάκελος Περιεχόμενο
discord/ (διαθέσιμο στο πλήρες πακέτο) 13 περίοδοι συζητήσεων Discord · 242 μηνύματα
Previous Exams/ 0 συνεδρίες εξετάσεων · ανακλήσεις από Discord
eclass/ (διαθέσιμο στο πλήρες πακέτο) 18 αρχεία · 18 κείμενα (sidecar)
other/ 5 αρχεία (2 εικόνες) · 2 κείμενα (sidecar)