Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος: www.tem.uoc.gr/~vagelis/courses/em240/em240.html
Αντικείμενο Μαθήματος Τι είναι οι Δομές Δεδομένων (ΔΔ); Μια ΔΔ αποτελείται από: ένα αντικείμενο δεδομένων: δηλαδή ένα σύνολο από στοιχεία/στιγμιότυπα ή τιμές και από τις συσχετίσεις/λειτουργίες μεταξύ των ξεχωριστών στοιχείων. Λειτουργίες σε ΔΔ: ορισμός-εισαγωγή δεδομένων, διαγραφή, αναζήτηση, τροποποίηση, ταξινόμηση, κλπ. Εφαρμογές των ΔΔ σε αλγόριθμους και προγράμματα. Υλοποίηση παραδειγμάτων-εφαρμογών ΔΔ και προγραμμάτων σε C ή C++. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 2
Διάρθρωση Μαθήματος / Περιεχόμενα Κεφάλαιο 1: Εισαγωγή στην ανάλυση των ΔΔ. Επισκόπηση της C++. Κεφάλαιο 2: Ανάλυση απόδοση αλγορίθμων. Χωρική και χρονική πολυπλοκότητα. Κεφάλαιο 3: Βασικές έννοιες, βασικοί τύποι δομών δεδομένων. Κεφάλαιο 4: Βασικές δομές δεδομένων: Πίνακες και μήτρες. Στοίβες και ουρές. Λειτουργίες εντοπισμού. Λίστες παράλειψης και κατακερματισμός. Κεφάλαιο 5: Προχωρημένα ζητήματα υλοποίησης: Δυωνυμικά και άλλα δένδρα. Ορισμός, ιδιότητες, αναπαράσταση. Δένδρα αναζήτησης. Κεφάλαιο 6: Προχωρημένα θέματα: Γράφοι. Ανάλυσης και σχεδιασμός αλγορίθμων. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 3
Προαπαιτούμενα / Σχετικά Μαθήματα Προαπαιτούμενα: Εισαγωγή στους Η/Υ (ΤΕΜ-101) ή Γλώσσα προγραμματισμού Η/Υ (ΤΕΜ-102) Σχετικά μαθήματα: Σχεδίαση και ανάλυση αλγορίθμων (ΤΕΜ-202) Γραμμικός και μη προγραμματισμός (ΤΕΜ-231) Θεωρία υπολογισμού (ΤΕΜ-203) Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 4
Αξιολόγηση / Βαθμολογία Τελική εξέταση: 50/% και Ασκήσεις/Εργαστήριο: 50/% ή Τελική εξέταση: 30/%, Ασκήσεις/Εργαστήριο: 30/% και Τελική Εργασία (Project): 40/%. Προσοχή: ο βαθμός τόσο του εργαστηρίου όσο και της τελικής εξέτασης πρέπει να είναι > 5 (50/%). Οι βαθμοί των ασκήσεων/εργαστηριών ισχύουν μέχρι το Σεπτέμβριο. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 5
Διδασκαλία Μαθήματος Διαλέξεις. Φροντιστήρια / Εργαστήρια: Παρουσίαση παραδειγμάτων. Υλοποίηση αλγορίθμων σε C ή C++. Σημειώσεις σε μορφή Powerpoint. 6 ώρες την εβδομάδα (θεωρία + ασκήσεις/εργαστήριο). Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 6
Διδασκαλία Μαθήματος Για το μάθημα θα χρειαστούμε: Βασικές γνώσεις προγραμματισμού σε C++ Βασικές γνώσεις ανάλυσης - θεωρίας αλγορίθμων. Τα παραπάνω θέματα θα παρουσιασθούν και μέσα στο μάθημα για την καλύτερη κατανόηση των Δομών Δεδομένων. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 7
Εργαστήριο Μαθήματος Το εργαστήριο του μαθήματος συμπεριλαμβάνει: Εισαγωγή Εξοικείωση με τη γλώσσα προγραμματισμού C++ Υλοποίηση Δομών Δεδομένων, χρησιμοποιώντας C++. Κατά τη διάρκεια του εξαμήνου θα δοθούν (4-5) σειρές ασκήσεων. Προσοχή: οι ασκήσεις είναι ατομικές. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 8
Στόχοι Μαθήματος Μετά την ολοκλήρωση του μαθήματος θα πρέπει να έχετε κατανοήσει Βασικές έννοιες και ιδιότητες των δομών δεδομένων, και να είστε σε θέση: Να χρησιμοποιείται υπάρχουσες βασικές δομές δεδομένων. Να τροποποιήσετε/υλοποιήσετε δομές δεδομένων σε γλώσσα C++. Να συνδυάζετε δομές για την δημιουργία αλγορίθμων και την επίλυση προβλημάτων. Να κατανοήσετε καλύτερα μαθήματα όπως Ανάλυση και Σχεδίαση Αλγορίθμων. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 9
Βιβλιογραφία Δομές Δεδομένων, Αλγόριθμοι και Εφαρμογές στη C++, S. Sahni, Εκδόσεις Τζιόλα, 2004. Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση, Αναζήτηση), Robert Sedgewick, Τρίτη Αμερικάνικη Έκδοση, Εκδόσεις Κλειδάριθμός 2005. Δομές Δεδομένων, Έννοιες, Τεχνικές και Αλγόριθμοι, Γ.Φ. Γεωργακόπουλος., Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2002. Εισαγωγή στους αλγορίθμους Τόμος Ι, T.H. Cormen, C.E. Leiserson, R.L. Rivest, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2006. Δομές Δεδομένων, Π. Μποζάνης, Εκδόσεις Τζιόλα 2006. Δομές Δεδομένων 2010/11, Κεφάλαιο 1: Εισαγωγή 10