Στόχοι

Σκοπός του μαθήματος είναι η παρουσίαση τεχνικών, ιδιοτήτων, υλοποιήσεων και εφαρμογών βασικών αλλά και προηγμένων αλγορίθμων και δομών δεδομένων. Θα συζητηθούν επίσης: (α) ζητήματα δημιουργίας περιβαλλόντων και βιβλιοθηκών λογισμικού που επιτρέπουν την εύκολη υλοποίηση και πειραματική αξιολόγηση αλγορίθμων, και (β) ζητήματα μεθοδολογίας σε ότι αφορά την πειραματική έρευνα αλγορίθμων και δομών δεδομένων, καθώς και σε ότι αφορά τη διαδικασία μετατροπής των απαιτήσεων του χρήστη σε αποδοτικές αλγοριθμικές λύσεις και υλοποιήσεις. Σαν πραγματικό περιβάλλον υλοποίησης, χρησιμοποιείται η γλώσσα C++ μαζί με τις βιβλιοθήκες LEDA, STL και BOOST.

Διδασκαλία και Εργαστήριο

Διαλέξεις:
Δευτέρα, 09-11, Β3 και Τετάρτη, 15-17, B3 [Έναρξη: 25.02.2019]
Εργαστήριο:
Τρίτη, 15-17 και Τετάρτη, 13-15, EHY (Υπολογιστικό Κέντρο)

Βιβλιογραφία

Βασικά Συγγράμματα

Βοηθητικές Αναφορές

Σχολιασμένη Βιβλιογραφία

LEDA, STL, και BOOST

Οι βιβλιοθήκες λογισμικού LEDA, STL, και BOOST είναι απαραίτητες για αυτό το μάθημα. Τα manuals μπορείτε να τα βρείτε στους ακόλουθους συνδέσμους:

Άλλοι σύνδεσμοι με χρήσιμες πληροφορίες

Υλικό Διαλέξεων

Παραδόσεις και Φροντιστήρια

Eνότητα 1.
Εισαγωγικά [PDF]
Εισαγωγή στη C++ - 1 [PDF]
Εισαγωγή στη C++ - 2 [PDF]
 
Eνότητα 2.
Tεχνολογίες Υλοποίησης Αλγορίθμων: Κίνητρα/Στόχοι, Βιβλιοθήκες/Περιβάλλοντα, Εργαλεία [PDF]
Εισαγωγή στη C++ - 3 [PDF]
 
Eνότητα 3.
Δοκιμή Προγραμμάτων, Έλεγχος Ορθότητας Προγραμμάτων [PDF]
STL και Γενικευμένος Προγραμματισμός [PDF]
 
Eνότητα 4.
Πειραματική αξιολόγηση Αλγορίθμων [PDF]
Βιβλιοθήκες Λογισμικού Αλγορίθμων και Δομών Δεδομένων: Το παράδειγμα της Leda Ι [PDF]
 
Eνότητα 5.
Γραφήματα και Αλγόριθμοι Γραφημάτων [PDF]
Βιβλιοθήκες Λογισμικού Αλγορίθμων και Δομών Δεδομένων: Το παράδειγμα της Leda II [PDF]
 
Eνότητα 6.
Συντομότερες Διαδρομές Ι [PDF]
Υλοποίηση Παραμετρικών Τύπων [PDF]
 
Eνότητα 7.
Συντομότερες Διαδρομές ΙI [PDF]
 
Eνότητα 8.
Η Βιβλιοθήκη Boost [PDF]
 
Eνότητα 9.
Μέγιστη Ροή I: Αλγόριθμος Προροής-Προώθησης και Αριθμητική Ορθότητα Αλγορίθμων [PDF]
 
Eνότητα 10.
Μέγιστη Ροή II: Ευρετικές Μέθοδοι Αλγορίθμου Προροής-Προώθησης και Αριθμητική Κινητής Υποδιαστολής [PDF]
 

Βοηθητικό Υλικό

Λίστα Ηλεκτρονικού Ταχυδρομείου

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

alg-eng-list @ ceid . upatras . gr

Στην λίστα αυτή μπορείτε να στέλνετε τυχόν απορίες σας (οι οποίες μπορεί να είναι και απορίες άλλων).

ΠΡΟΣΟΧΗ: Όλη η επικοινωνία που θα αφορά το μάθημα (π.χ. ανακοινώσεις ασκήσεων, διάφορα διαδικαστικά θέματα, λεπτομέρειες για τις εξετάσεις, κλπ) θα γίνεται αποκλειστικά μέσω της λίστας alg-eng-list. Για τό λόγο αυτό, παρακαλούμε να εγγραφείτε άμεσα στην παραπάνω λίστα.

Εγγραφή στη λίστα: Στείλτε ένα κενό μήνυμα στην διεύθυνση     alg-eng-list-subscribe @ ceid . upatras . gr

Προβλήματα με τη λίστα: Στείλτε μήνυμα στην διεύθυνση    alg-eng-list-owner @ ceid . upatras . gr


Τελικοί Βαθμοί


Τελική βαθμολογία Ιουνίου 2019

Τελική βαθμολογία Σεπτεμβρίου 2019

Ασκήσεις

Άσκηση 1 [PDF] (04.04.2019) Προθεσμία Υποβολής: 08.05.2019, 13:00 Βαθμολογία

Άσκηση 2 [PDF] (15.05.2019) Προθεσμία Υποβολής: 05.06.2019, 23:30 Βαθμολογία