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

Σχετικά έγγραφα
Τεχνολογίες Υλοποίησης Αλγορίθµων

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

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

οµηµένος Προγραµµατισµός ΙΙΙ - Java

Δομές Δεδομένων. Παύλος Εφραιμίδης

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

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

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

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

Προγραμματισμός ΙΙ Ενότητα 5:

Δομημένος Προγραμματισμός ΙΙΙ - Java

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ

Προγραμματισμός ΙΙ. Ενότητα 8: Πρότυπες συναρτήσεις και πρότυπες κλάσεις - Μέρος 1 Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός ΙΙ. Ενότητα 2: Διαχείριση μνήμης. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

Προγραμματισμός ΙΙ. Ενότητα 7: Βιβλιοθήκες - Μέρος 2. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

Tεχνολογία Λογισµικού II

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα

Εισαγωγή στην πληροφορική

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα

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

Αλγόριθμοι και Πολυπλοκότητα

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

Μοτίβα Σχεδίασης (Design Patterns)

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

Δομές Δεδομένων (Data Structures)

Προγραμματισμός ΙΙ. Ενότητα 7: Βιβλιοθήκες - Μέρος 1. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός ΙΙ Ενότητα 4:

Αλγόριθμοι και Πολυπλοκότητα

Προγραμματισμός ΙΙ Ενότητα 3:

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Σχεδίαση & Ανάλυση Αλγορίθμων

Προγραμματισμός ΙΙ. Ενότητα 9: Πρότυπες συναρτήσεις και πρότυπες κλάσεις - Μέρος 2 Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Προγραμματισμός ΙΙ. Ενότητα 6: Βιβλιοθήκες - Μέρος 1. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Δομές Δεδομένων. Ενότητα 2: Περισσότερα για τους δείκτες. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός ΙΙ. Ενότητα 1: Προαπαιτούμενα. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Προγραμματισμός ΙΙ. Ενότητα 1: Βασικοί τύποι δεδομένων. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός ΙΙ. Ενότητα 9: Πρότυπες συναρτήσεις και πρότυπες κλάσεις - Μέρος 1 Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός ΙΙ. Ενότητα 4: Διαχείριση μνήμης. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1

Προγραμματισμός ΙΙ Ενότητα 5:

Εισαγωγή στους Αλγορίθμους Ενότητα 8η

Εισαγωγή στους Αλγορίθμους Ενότητα 4η

Δομές Δεδομένων Ενότητα 1

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Προγραμματιστική Εργασία

Αλγόριθμοι. Μάρθα Σιδέρη. epl333 lect

Προγραµµατισµός Η/Υ. Δρ. Δ.Ν. Παγώνης. Καθηγητής Εφαρµογών. Τηλ: Τµήµα Ναυπηγών Μηχανικών ΤΕ, ΤΕΙ Αθήνας

ΕΞΟΡΥΞΗ ΔΕΔΟΜΕΝΩΝ. Εισαγωγή

Προγραμματισμός Διαδικτύου

ΕΞΟΡΥΞΗ ΔΕΔΟΜΕΝΩΝ. Διαδικαστικά

Προγραμματισμός Διαδικτύου

Προγραμματισμός ΙΙ. Ενότητα 8: Βιβλιοθήκες - Μέρος 2. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Το πρόγραμμα είναι εγκεκριμένο από το Υπουργείο Παιδείας και Θρησκευμάτων, Πολιτισμού και Αθλητισμού (Αρ / Ε5 ΦΕΚ 764/ ) και λειτουργεί

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

Ανοικτά Ακαδημαϊκά Μαθήματα

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Χειµερινό Εξάµηνο 2013

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Προγραμματισμός Διαδικτύου

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

ΜΟΝΤΕΛΑ ΛΗΨΗΣ ΑΠΟΦΑΣΕΩΝ

ιακριτές Μέθοδοι για την Επιστήμη των Υπολογιστών

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Δομές Δεδομένων. Ενότητα 3: Διαχείριση μνήμης. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο

Αντικειμενοστραφής Προγραμματισμός

Καθηγητής Παν Πειραιά, Δρ Φούντας Ευάγγελος. Δρ ΦΟΥΝΤΑΣ ΕΥΑΓΓΕΛΟΣ. Καθηγητής Πανεπιστημίου Πειραιώς Πρόεδρος Τμήματος Πληροφορικής

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αθήνα, 13/06/2014 Αριθ. Πρωτ.:49793 Τα μέλη της Ειδικής Επταμελούς Επιτροπής (σύμφωνα με τον πίνακα αποδεκτών) Π Ρ Ο Σ Κ Λ Η Σ Η

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Προγραμματισμός ΙΙ. Ενότητα 2: Επανάληψη στον Προγραμματισμό Ι. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

Ανάλυση & Μοντελοποίηση Επιχειρηματικών Συστημάτων & ιαδικασιών

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

ΥΠΟ ΕΙΓΜΑ ΑΠΟΓΡΑΦΙΚΟΥ ΕΛΤΙΟΥ ΕΞΑΜΗΝΙΑΙΟΥ ΜΑΘΗΜΑΤΟΣ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Δομές Δεδομένων Boost C++ Libraries. 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Transcript:

Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 1 Εισαγωγικά 1 / 17

Ενότητα 1 - Εισαγωγικά Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) - τι είναι; Υπόβαθρο Στόχοι µαθήµατος Πρακτικά Ϲητήµατα Υλη Βιβλιογραφία 2 / 17

Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) Modelling with realistic computer models Algorithm Design Experimentation Applications Analysis Implementation Libraries Συστηµατικό πλαίσιο αντιµετώπισης της διαδικασίας µετατροπής (ϑεωρητικώς) αποδοτικών αλγορίθµων και δοµών δεδοµένων σε χρήσιµο λογισµικό 3 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός Συνδυαστικές δοµές και αλγόριθµοι 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός Συνδυαστικές δοµές και αλγόριθµοι πίνακες (arrays) 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός Συνδυαστικές δοµές και αλγόριθµοι πίνακες (arrays) λίστες, στοίβες, ουρές, ουρές προτεραιότητας,... 4 / 17

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός Συνδυαστικές δοµές και αλγόριθµοι πίνακες (arrays) λίστες, στοίβες, ουρές, ουρές προτεραιότητας,... γραφήµατα 4 / 17

Υπόβαθρο - Γραφήµατα 5 / 17

Στόχοι Μαθήµατος Τεχνικές και ιδιότητες για σχεδιασµό, αποτελεσµατική υλοποίηση, ϱύθµιση (fine tuning), αποσφαλµάτωση, και εκτενή πειραµατική αξιολόγηση αλγορίθµων 6 / 17

Στόχοι Μαθήµατος Τεχνικές και ιδιότητες για σχεδιασµό, αποτελεσµατική υλοποίηση, ϱύθµιση (fine tuning), αποσφαλµάτωση, και εκτενή πειραµατική αξιολόγηση αλγορίθµων Ορθότητα υλοποιήσεων - Προγράµµατα πιστοποίησης (Certifying programs) 6 / 17

Στόχοι Μαθήµατος Τεχνικές και ιδιότητες για σχεδιασµό, αποτελεσµατική υλοποίηση, ϱύθµιση (fine tuning), αποσφαλµάτωση, και εκτενή πειραµατική αξιολόγηση αλγορίθµων Ορθότητα υλοποιήσεων - Προγράµµατα πιστοποίησης (Certifying programs) Πλατφόρµες/Βιβλιοθήκες Λογισµικού 6 / 17

Στόχοι Μαθήµατος Τεχνικές και ιδιότητες για σχεδιασµό, αποτελεσµατική υλοποίηση, ϱύθµιση (fine tuning), αποσφαλµάτωση, και εκτενή πειραµατική αξιολόγηση αλγορίθµων Ορθότητα υλοποιήσεων - Προγράµµατα πιστοποίησης (Certifying programs) Πλατφόρµες/Βιβλιοθήκες Λογισµικού Μεθοδολογικά Ϲητήµατα στην πειραµατική έρευνα αλγορίθµων και δοµών δεδοµένων διαδικασία µετατροπής απαιτήσεων χρήστη σε αποδοτικές αλγοριθµικές λύσεις και υλοποιήσεις 6 / 17

Πρακτικά Ζητήµατα Επικουρικό Εργο Ανδρέας Παρασκευόπουλος, Γιώργος Μιχαλόπουλος και Νίκος Γιαννόπουλος Μεταπτυχιακοί Φοιτητές Τµήµα Μηχ/κων Υπολογιστών & Πληροφορικής Πανεπιστήµιο Πατρών email: {paraskevop,michalog,ngiannopou}@ceid.upatras.gr 7 / 17

Πρακτικά Ζητήµατα Ιστοσελίδα Μαθήµατος ΠΠΣ: www.ceid.upatras.gr/webpages/faculty/zaro/teaching/alg-eng/ ΠΜΣ: www.ceid.upatras.gr/webpages/faculty/zaro/teaching/adv-alg-eng/ Βιβλιογραφία Υλικό παραδόσεων και ϕροντιστηρίων Λίστα ηλεκτρονικού ταχυδροµείου Αλλο χρήσιµο υλικό 8 / 17

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 9 / 17

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 Εργαστήριο: 2-3 προγραµµατιστικές ασκήσεις 9 / 17

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 Εργαστήριο: 2-3 προγραµµατιστικές ασκήσεις Παρουσίαση Εξειδικευµένου Θέµατος / Ερευνητικής Εργασίας Μεταπτυχιακοί: υποχρεωτική Προπτυχιακοί: προαιρετική 9 / 17

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 Εργαστήριο: 2-3 προγραµµατιστικές ασκήσεις Παρουσίαση Εξειδικευµένου Θέµατος / Ερευνητικής Εργασίας Μεταπτυχιακοί: υποχρεωτική Προπτυχιακοί: προαιρετική Τελική Εξέταση: τελική εργασία (υλοποίηση και γραπτή αναφορά) 9 / 17

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 Εργαστήριο: 2-3 προγραµµατιστικές ασκήσεις Παρουσίαση Εξειδικευµένου Θέµατος / Ερευνητικής Εργασίας Μεταπτυχιακοί: υποχρεωτική Προπτυχιακοί: προαιρετική Τελική Εξέταση: τελική εργασία (υλοποίηση και γραπτή αναφορά) Τελικός Βαθµός Τ.Β. Προπτυχ. = (0.3 Βαθ. Ασκ.) + (0.7 Βαθ. Τελ. Εξετ.) Τ.Β. Μεταπτυχ. = (0.3 Βαθ. Ασκ.)+(0.2 Βαθ. Παρ.)+(0.5 Βαθ. Τελ. Εξετ.) 9 / 17

Πρακτικά Ζητήµατα Προγραµµατιστικές Ασκήσεις Υποχρεωτικές και ϑα µετράνε 30% στον τελικό ϐαθµό Λεπτοµέρειες ϑα ανακοινωθούν αργότερα στην ιστοσελίδα του µαθήµατος Συνεργασία δεν συνιστάται. Μπορεί να γίνει αποδεκτή αν δηλωθεί ΚΑΙ αριθµός ϕοιτητών 2 C++ compiler (diogenis): g++/gcc (GCC) 4.4.7. 10 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων οκιµή προγραµµάτων (program testing) 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων οκιµή προγραµµάτων (program testing) Ελεγχος Ορθότητας προγραµµάτων (correctness checking) 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων οκιµή προγραµµάτων (program testing) Ελεγχος Ορθότητας προγραµµάτων (correctness checking) Πειραµατικη αξιολόγηση αλγορίθµων & δοµών δεδοµένων 11 / 17

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων οκιµή προγραµµάτων (program testing) Ελεγχος Ορθότητας προγραµµάτων (correctness checking) Πειραµατικη αξιολόγηση αλγορίθµων & δοµών δεδοµένων Περιβάλλοντα υλοποίησης: C++, STL, LEDA, BOOST 11 / 17

Υλη Περίπτωση Μελέτης LEDA - Library for Efficient Data types & Algorithms Τύποι δεδοµένων και προδιαγραφές τους Βασικοί σχεδιαστικοί κανόνες και λεπτοµέρειες υλοποίησης τύπων δεδοµένων Ελεγχος ορθότητας προγράµµατος Προηγµένες δοµές δεδοµένων Γραφήµατα και αλγόριθµοι γραφηµάτων (συντοµότερες διαδροµές, ϱοές, κλπ.) Graphwin 12 / 17

Βιβλιογραφία Τεχνολογίες Υλοποίησης Αλγορίθµων 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, LNCS Vol. 5971, Springer, 2010. C.C. McGeoch, A Guide to Experimental Algorithmics, Cambridge University Press, 2012. Αλγόριθµοι και οµές εδοµένων R. Ahuja, T. Magnanti, and J. Orlin, Network Flows, Prentice-Hall, 1993. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Εισαγωγή στους Αλγορίθµους, ελληνική έκδοση, Πανεπιστηµιακές Εκδόσεις Κρήτης, 2012. J. Kleinberg and E. Tardos, Σχεδιασµός Αλγορίθµων, ελληνική έκδοση, Εκδόσεις Κλειδάριθµος, 2008. R.E. Tarjan, Data Structures and Network Algorithms, SIAM, 1983. 13 / 17

Βιβλιογραφία Υλοποίηση Αλγορίθµων & οµών εδοµένων J. Siek, A. Lumsdaine, L. Lee, The Boost Graph Library: User Guide and Reference Manual, Addison Wesley, 2002. A. Alexandrescu, Modern C++ design: Programming and Design Patterns Applied, Addison-Wesley, 2001. N. Jossutis, The C++standard library: a tutorial and a reference, Addison Wesley Longman, 1999. D. Abrahams and A. Gurtovoy, C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond, Addison-Wesley, 2004. T. Budd, Data structures in C++ using the standard template library, Addison-Wesley, 1998. M.A. Weiss, Data structures and problem solving with C++, 2nd Edition, Addison-Wesley, 2000. 14 / 17

Βιβλιογραφία Γλώσσα C++ A. Koenig and B. Moo, Accelerated C++, Addison-Wesley, 2000. S.B. Lippman and J. Lajoie, C++ Primer, 3rd Edition, Addison-Wesley, 1998. H.M. Deitel and P.J. Deitel, C++: How to Program, 2nd Edition, Prentice-Hall, 1998. S. Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1997. I. Pohl, Object-Oriented Programming using C++, 2nd Edition, Addison-Wesley, 1997. B. Stroustrup, The C++ Programming Language, 3rd Edition, Addison-Wesley, 1997. 15 / 17

Βιβλιογραφία - Αντικειµενοστρεφής Προγραµµατισµός T. Budd, An Introduction to Object-Oriented Programming, 2nd Edition, Addison-Wesley, 1997. E. Gamma, R. Helms, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. G. Booch, Object Oriented Design with Applications, 2nd Edition, Benjamin Cummings, 1994. B. Meyer, Object Oriented Software Construction, Prentice-Hall, 1988. J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorenson, Object Oriented Modelling and Design, Prentice Hall, 1991. 16 / 17

Ερωτήσεις ; 17 / 17