Παρουσίαση/Προβολή
Τεχνολογίες Υλοποίησης Αλγορίθμων 2025-2026
(ΝΕ5078) - Χρήστος Ζαρολιάγκης
Περιγραφή Μαθήματος
Σκοπός του μαθήματος είναι η παρουσίαση τεχνικών, ιδιοτήτων, υλοποιήσεων και εφαρμογών βασικών αλλά και προηγμένων αλγορίθμων και δομών δεδομένων. Θα συζητηθούν επίσης: (α) ζητήματα δημιουργίας περιβαλλόντων και βιβλιοθηκών λογισμικού που επιτρέπουν την εύκολη υλοποίηση και πειραματική αξιολόγηση αλγορίθμων, και (β) ζητήματα μεθοδολογίας σε ότι αφορά την πειραματική έρευνα αλγορίθμων και δομών δεδομένων, καθώς και σε ότι αφορά τη διαδικασία μετατροπής των απαιτήσεων του χρήστη σε αποδοτικές αλγοριθμικές λύσεις και υλοποιήσεις. Σαν πραγματικό περιβάλλον υλοποίησης, χρησιμοποιείται η γλώσσα C++ μαζί με τις βιβλιοθήκες LEDA, STL και BOOST.
Ημερομηνία δημιουργίας
Πέμπτη 12 Φεβρουαρίου 2026
-
Διδασκαλία & Εργαστήριο
Διαλέξεις: Τετάρτη, 11:00 - 13:00, αίθουσα Δ1 [Έναρξη: 25.02.2026]
Εργαστήριο/Φροντιστήριο: Τρίτη, 11:00 - 13:00, αίθουσα Δ1 & Υπολογιστικό Κέντρο
Μαθησιακοί Στόχοι
Στο πλαίσιο του μαθήματος, οι φοιτητές/τριες καλούνται να:
- Aφομοιώσουν τεχνικές, ιδιότητες, υλοποιήσεις και εφαρμογές βασικών αλλά και προηγμένων αλγορίθμων και δομών δεδομένων.
- Eφαρμόσουν τεχνικές αποδοτικής υλοποίησης βασικών και προηγμένων αλγορίθμων και δομών δεδομένων.
- Eφαρμόσουν την επιστημονική πειραματική μεθοδολογία για την συγκριτική και πρακτική αξιολόγηση αλγορίθμων και δομών δεδομένων.
- Χρησιμοποιήσουν βιβλιοθήκες και περιβάλλοντα λογισμικού αλγορίθμων για την ανάπτυξη νέων αποδοτικών υλοποιήσεων.
- Αναπτύξουν υλοποιήσεις σύνθετων αλγορίθμων και δομών δεδομένων με πρακτική χρησιμότητα και εφαρμοσιμότητα.
- Αφομοιώσουν τη διαδικασία μετατροπής των απαιτήσεων του χρήστη σε αποδοτικές αλγοριθμικές λύσεις και υλοποιήσεις.
Παράλληλα, το μάθημα στοχεύει στην εξοικείωση των φοιτητών/τριών με την:
- Αποδοτική υλοποίηση αλγορίθμων και δομών δεδομένων.
- Χρήση προηγμένων τεχνικών υλοποίησης αλγορίθμων.
- Χρήση περιβαλλόντων και βιβλιοθηκών λογισμικού για την αποδοτική υλοποίηση αλγορίθμων και δομών δεδομένων.
- Εφαρμογή της σωστής πειραματικής μεθοδολογίας για την συγκριτική και πρακτική αξιολόγηση αλγορίθμων και δομών δεδομένων.
- Ανάπτυξη αποδοτικών και πρακτικών υλοποιήσεων σύνθετων αλγορίθμων και δομών δεδομένων.
- Αποτελεσματική εφαρμογή της μεθοδολογίας μετατροπής απαιτήσεων χρηστών σε αποδοτικές αλγοριθμικές λύσεις και υλοποιήσεις.
Βιβλιογραφία
Βασικά Συγγράμματα
- Τεχνολογίες Υλοποίησης Αλγορίθμων
- K. Mehlhorn and S. Naeher, LEDA: A platform for combinatorial and geometric computing, Cambridge University Press, 1999.
- M. Mueller-Hannemann and S. Schirra, Algorithm Engineering - Bridging the Gap between Algorithm Theory and Practice, Springer 2010.
- C.C. McGeoch, A Guide to Experimental Algorithmics, Cambridge University Press, 2012.
- Υλοποίηση Αλγορίθμων και Δομών Δεδομένων
- J. Siek, L.Q. Lee, and A. Lumsdaine, The Boost Graph Library, Addison-Wesley, 2002.
- A.Alexandrescu, Modern C++ design: Programming and Design Patterns Applied, Addison-Wesley, 2001.
- M.A. Weiss, Data structures and problem solving with C++, 2nd Edition, Addison-Wesley, 2000.
- H Γλώσσα C++
- A.Koenig and B.Moo, Accelerated C++, Addison-Wesley, 2000.
- S.B. Lippman and J. Lajoie, C++ Primer, 3rd Edition, Addison-Wesley, 1998.
Βοηθητικές Αναφορές
- Υλοποίηση Αλγορίθμων και Δομών Δεδομένων
- T. Budd, Data structures in C++ using the standard template library, Addison-Wesley, 1998.
- F. Carrano, P. Helman, and R. Veroff, Data abstraction and problem solving with C++, 2nd Edition, Addison-Wesley, 1998.
- N.Jossutis, The C++ standard library: a tutorial and a reference, Addison Wesley, 1999.
- E. Horowitz, S. Sahni, and D. Mehta, Fundamentals of data structures in C++, Computer Science Press, 1995.
- S. Sahni, Data structures, algorithms and applications in C++, WCB/McGraw-Hill, 1998.
- C++ και Αντικειμενοστρεφής Προγραμματισμός
- T. Budd, An Introduction to Object-Oriented Programming, 2nd Edition, Addison-Wesley, 1997.
- H.M. Deitel and P.J. Deitel, C++ : How to Program, 2nd Edition, Prentice-Hall, 1998.
- E. Gamma, R. Helms, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
- S. Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1997.
- B. Stroustrup, The C++ Programming Language, 3rd Edition, Addison-Wesley, 1997.
Μέθοδοι Αξιολόγησης
Η αξιολόγηση του μαθήματος πραγματοποιείται με εξέταση σε εργαστηριακές (προγραμματιστικές) ασκήσεις που θα διεξαχθούν κατά τη διάρκεια του εαρινού εξαμήνου και με εξέταση στο τέλος του εαρινού εξαμήνου σε τελική εργασία (υλοποίηση και γραπτή αναφορά).
Η τελική βαθμολογία του μαθήματος προκύπτει από τον παρακάτω τύπο:
Τελικός Βαθμός = 0.7 x ΒΤΕ + 0.3 x ΒΕΡ
όπου ΒΤΕ = Βαθμός Τελικής Εξέτασης και ΒΕΡ = Μ.Ο. Βαθμού Εργαστηριακών Ασκήσεων