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

Χρήστος Ζαρολιάγκης

Περιγραφή

Στόχος μαθήματος: Η εισαγωγή των φοιτητών σε τεχνικές, ιδιότητες, υλοποιήσεις και εφαρμογές βασικών αλλά και προηγμένων αλγορίθμων και δομών δεδομένων.

 

Ύλη: Αποδοτική υλοποίηση και πειραματική αξιολόγηση βασικών και προηγμένων αλγορίθμων και δομών δεδομένων. Δημιουργία περιβαλλόντων και βιβλιοθηκών λογισμικού που επιτρέπουν την εύκολη υλοποίηση και πειραματική αξιολόγηση αλγορίθμων. Ζητήματα μεθοδολογίας σε ότι αφορά την πειραματική έρευνα αλγορίθμων και δομών δεδομένων, καθώς και σε ότι αφορά τη διαδικασία μετατροπής των απαιτήσεων του χρήστη σε αποδοτικές αλγοριθμικές λύσεις και υλοποιήσεις.

 

Τμηματική Ομάδα Εργασίας:

Παρασκευόπουλος Ανδρέας

 

CC - Αναφορά - Μη Εμπορική Χρήση - Όχι Παράγωγα Έργα

Ενότητες

  • εισαγωγή στις Τεχνολογίες Υλοποίησης Αλγορίθμων
  • πλάνο και στόχοι μαθήματος
  • κίνητρα, στόχοι
  • βασικά στοιχεία της C++
  • αφαίρεση δεδομένων - κλάσεις
  • ιεραρχίες κλάσεων και Κληρονομικότητα
  • παράγωγες κλάσεις
  • διασυνδέσεις - interfaces
  • υπερφόρτωση τελεστών
  • πρότυπα
  • βιβλιοθήκες, περιβάλλοντα, εργαλεία
  • δοκιμή και έλεγχος ορθότητας προγραμμάτων
  • πειραματική αξιολόγηση αλγορίθμων
  • κλάσεις & σχεδιασμός βασισμένος σε αντικείμενα (Classes & Object-Based Design)
  • κληρονομικότητα & αντικειμενοστρεφής σχεδιασμός (Inheritance & Object-Oriented Design)
  • εικονικές συναρτήσεις (Virtual Functions)
  • φίλες συναρτήσεις και κλάσεις (Friends)
  • γενικευμένος σχεδιασμός χρησιμοποιώντας αρχέτυπα (Generic Design using Templates)
  • δοκιμή προγραμμάτων (program testing)
  • μέθοδοι Black-Box, White-Box
  • πρόγραμμα πιστοποίησης
  • διαδικασία αποσφαλμάτωσης
  • τύποι δεδο?ένων και προδιαγραφές της βιβλιοθήκης LEDA
  • βασικοί σχεδιαστικοί κανόνες στη LEDA
  • γενικευ?ένοι αλγόριθ?οι για γραφή?ατα
  • σχεδιασμός πειραμάτων
  • μετρολογία
  • αξιολόγηση απόδοσης
  • παραμετροποίηση τύπων στη LEDA
  • έλεγχος ορθότητας προγραμμάτων
  • διαχείριση μνήμης
  • γραφήματα - βασικές έννοιες
  • αναπαράσταση γραφημάτων
  • αναπαράσταση δικτύων
  • γραφήματα στη LEDA
  • βασικοί αλγόριθμοι γραφημάτων
  • αρχέτυπα
  • εισαγωγή στο Γενικευμένο Προγραμματισμό (Generic Programming)
  • concepts στον προγραμματισμό
  • βιβλιοθήκη STL
  • βασικοί containers και iterators της STL
  • αλγόριθμοι Συντομότερων ?ιαδρομών και βασικές υλοποιήσεις
  • αλγόριθμος Dijkstra
  • ελεγκτής ορθότητας αλγορίθμων συντομότερων διαδρομών
  • γραφικά περιβάλλοντα (Graph Windows) στη LEDA
  • χαρακτηριστικά σχεδίασης
  • συναρτήσεις χειρισμού γεγονότων
  • αλγόριθμος Bellman-Ford
  • ελεγκτής ορθότητας αλγορίθμων συντομότερων διαδρομών
  • αρχέτυπα για αλγορίθμους γραφημάτων
  • τύποι δεδο?ένων για γραφήματα της βιβλιοθήκης BOOST
  • Boost Graph Library - γενικευ?ένοι αλγόριθ?οι για γραφή?ατα
  • Μέγιστη Ροή & ελεγκτής ορθότητας
  • αριθμητικοί τύποι και ορθότητα αλγορίθμων γραφημάτων & δικτύων
  • αλγόριθμος Προροής-Προώθησης
  • ευρετικές βελτιώσεις του αλγορίθμου Προροής-Προώθησης
  • ροή δικτύου & αριθμητική κινητής υποδιαστολής

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A-

Αρ. Επισκέψεων :  2192
Αρ. Προβολών :  20326