Η/Υ 432: Δομές Δεδομένων - Υποχρεωτικό μάθημα 3ου εξαμήνου  

Χειμερινό Εξάμηνο Ακ. Έτους 2005-2006

Τμήμα Πληροφορικής



Γενικά | Ανακοινώσεις | Ημερολόγιο | Διαφάνειες Διαλέξεων & Άλλο Υλικό


Για το τελικό διαγώνισμα

Για όσους διαβάζουν αγγλικά, από το βιβλίο Lewis & Dennenberg θα πρέπει να διαβαστούν οι ακόλουθες ενότητες:

Chapter 1
1.1
1.2: όλη η ενότητα εκτός από
Locatives
1.3
: σελ. 17 - 29 (όχι αποδείξεις θεωρημάτων)

Chapter 2
2.1

Chapter 3
Όλο το κεφαλαίο εκτός από Ενότητα 3.3 και σελίδες 89-90 (καθώς και η μισή σελίδα 88).

Chapter 4
Όλο το κεφάλαιο εκτός από την ενότητα "Scanning a Tree in Constant Space"

Chapter 5
Μόνο ενότητα 5.4

Chapter 6
6.1
6.2: όχι η ανάλυση που ξεκινά από το τέλος της σελίδας 179 και καταλήγει προς το τέλος της σελίδας180.
6.3: Μόνο
Binary Search & Skip Lists (χωρίς αποδείξεις θεωρημάτων)
6.4 (όχι αποδείξεις θεωρημάτων)

Chapter 7
7.1
7.2: 2-3
Trees
7.3 (όχι αποδείξεις θεωρημάτων)

Chapter 8
8.3
8.4
8.5 (όχι αποδείξεις θεωρημάτων)

Chapter 9
9.1 (όχι Leftist Trees)
9.2 (όχι αποδείξεις θεωρημάτων)

Chapter 12
12.1 (όχι Trees)

 


Γενικές Πληροφορίες

Διδάσκουσα:                                           Παναγιώτα Φατούρου
Γραφείο:                                                  26 (Α´ ορόφου)
Ώρες Γραφείου:                                      Δευτέρα: 12:00-14:00, Τετάρτη: 12:00 – 14:00 
Ηλεκτρονική Διεύθυνση:                        
Τηλέφωνο:                                               (26510) 98808


Βοηθοί Μαθήματος:                                  Καλλιμάνης Νικόλαος & Καλογήρου Χάρης & Χριστοδουλίδου Μαρία
Γραφείο Βοηθών:                                      Α25
Ώρες Γραφείου Βοηθών:                          Πέμπτη, 15:00-17:00, Παρασκευή, 12:00-14:00
Ηλεκτρονική Διεύθυνση Μαθήματος:      

 

Ώρες και Αίθουσες Διδασκαλίας

Δευτέρα, 15:00-17:00, στο αμφιθέατρο.
Τετάρτη, 15:00-17:00, στο αμφιθέατρο.

 

Ώρες και Αίθουσα Φροντιστηρίου

Τρίτη, 12:00-14:00 (θα πραγματοποιείται περιστασιακά). 

 

Σύνοψη Μαθήματος

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

 

Βιβλία

q       Harry Lewis and Larry Denenberg, “Data Structures and Their Algorithms”, HarperCollins Publishers, Inc., New York, 1991.     

q       Ιωάννης Μανωλόπουλος, Δομές Δεδομένων: Μια προσέγγιση με Pascal, Εκδόσεις Art of Text, Θεσσαλονίκη.

Το βιβλίο που θα σας μοιραστεί είναι το 2ο από τα παραπάνω. Ωστόσο, το μάθημα θα βασιστεί σε μεγάλο βαθμό στο 1ο βιβλίο. Οι διαφάνειες του μαθήματος μαζί με τις σημειώσεις που μπορείτε να κρατάτε κατά την παράδοση και οποιοδήποτε άλλο υλικό σας μοιραστεί θα είναι αρκετά για να διεκπεραιώσετε επιτυχώς το μάθημα.

 

Πρόγραμμα

1η εβδομάδα

Εισαγωγή, Ανάλυση Αλγορίθμων, Δείκτες & Δυναμική Αποθήκευση στη C, Πίνακες

2η εβδομάδα

Λίστες

3η εβδομάδα

Λίστες

4η εβδομάδα

Δένδρα

5η εβδομάδα

Λίστες & Δένδρα: Υλοποίηση Συνόλων

6η εβδομάδα

Λίστες & Δένδρα: Υλοποίηση Συνόλων

7η εβδομάδα

Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών

8η εβδομάδα

Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών

9η εβδομάδα

Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών

10η εβδομάδα

Κατακερματισμός
11η εβδομάδα Κατακερματισμός
12η εβδομάδα Σύνολα που υποστηρίζουν ειδικές λειτουργίες

 

Εργασίες και Βαθμολόγηση

Κατά τη διάρκεια του εξαμήνου θα δοθούν 3 εργασίες. Κάθε εργασία θα έχει ένα σύνολο από θεωρητικές ασκήσεις και ένα προαιρετικό προγραμματιστικό μέρος. Ο προγραμματισμός θα γίνει σε γλώσσα C. Κάθε εργασία θα πρέπει να επιστρέφεται πριν από την αναγραφόμενη ημερομηνία και ώρα (προκειμένου να μπορεί να βαθμολογηθεί με άριστα). Το θεωρητικό μέρος μπορεί να παραδοθεί με καθυστέρηση τριών 24ώρων με μείωση βαθμού κατά 1.0/10.0 μονάδα για κάθε μέρα καθυστέρησης.

Το προγραμματιστικό μέρος μπορεί να παραδοθεί καθυστερημένα βάσει του εξής αλγόριθμου:

§         Αν η παράδοση της άσκησης γίνει μέχρι και τρία 24ωρα μετά την προθεσμία, η άσκηση βαθμολογείται με μείωση βαθμού κατά 1.0/10.0 μονάδα για κάθε μέρα καθυστέρησης. 

§         Αν η παράδοση της άσκησης γίνει αφού έχουν περάσει τρία 24ωρα μετά τη λήξη της προθεσμίας, η άσκηση βαθμολογείται με άριστα το 5.0/10.0.

Όλες οι ασκήσεις θα πρέπει να έχουν παραδοθεί πριν από την εξέταση ή την επίλυσή τους. Για τις ασκήσεις ενδεχόμενα να υπάρχει γραπτή εξέταση. Πολύ καλές ασκήσεις μπορεί να βαθμολογηθούν με βαθμό μεγαλύτερο του 10.

Ο προγραμματισμός, όπως και η έκθεση, είναι μια ατομική εργασία. Καθένας πρέπει ατομικά να κατανοήσει το πρόβλημα και να σκιαγραφήσει μια πιθανή λύση του. Οι λύσεις των ασκήσεων, καθώς και τα προγράμματα που θα σας ζητηθούν πρέπει να είναι αποτέλεσμα προσωπικής σας δουλειάς (μπορείτε όμως να ρωτάτε τους βοηθούς του μαθήματος για τις απορίες σας).

Μπορείτε να χρησιμοποιήσετε οποιονδήποτε υπολογιστή για τις προγραμματιστικές ασκήσεις σας. Για τη βαθμολόγηση της άσκησής σας όμως, το πρόγραμμα θα εκτελείται στα μηχανήματα κάποιου εργαστηρίου του Τμήματος. Επομένως, όσοι από εσάς επιθυμούν να εργαστούν σε άλλα μηχανήματα θα πρέπει να σιγουρευτούν ότι ο κώδικας τους τρέχει σωστά και στα παραπάνω μηχανήματα.

Είστε υπεύθυνοι για την κακή χρήση του λογαριασμού σας. Το password σας θα πρέπει να παραμείνει μυστικό και ο λογαριασμός σας να χρησιμοποιείται μόνο από εσάς. Φροντίστε η προστασία του καταλόγου στον οποίο βρίσκονται οι ασκήσεις σας να μην επιτρέπει ανάγνωση (ή ακόμη χειρότερα εγγραφή) από άλλους (χρησιμοποιήστε την εντολή chmod).

Στην τελική εξέταση επιτρέπεται να έχετε μαζί σας το βιβλίο και τις διαφάνειες του μαθήματος (δεμένες). Στην τελική εξέταση θα πρέπει όλοι οι εξεταζόμενοι φοιτητές να έχουν μαζί τους το πάσο (ή οποιοδήποτε άλλο αναγνωριστικό).

Ο τελικός βαθμός θα εξαρτηθεί τόσο από τη βαθμολογία των ασκήσεων, όσο και από την επίδοση των φοιτητών στην τελική εξέταση, ως εξής:

Σειρές Ασκήσεων: 25%

Τελική Εξέταση: 75%

Ο ίδιος αλγόριθμος για την διεξαγωγή της βαθμολογίας ισχύει και στην εξέταση του Σεπτεμβρίου.

 

Παρακολούθηση

Η παρακολούθηση στις διαλέξεις αναμένεται, αλλά δεν είναι υποχρεωτική. Ωστόσο, οι φοιτητές θα πρέπει να γνωρίζουν κατά την τελική εξέταση οτιδήποτε παρουσιάζεται ή αναφέρεται στις παραδόσεις. Κάποιο ποσοστό της ύλης δεν περιέχεται σε βιβλία ή παρουσιάζεται με άλλη σειρά, για αυτό η παρακολούθηση συνίσταται ισχυρά.

 

Παρατήρηση

Θα βοηθήσει πολύ να έχετε διεκπεραιώσει με επιτυχία τα μαθήματα της «Εισαγωγής στον Προγραμματισμό» και της «Εισαγωγής στους Η/Υ» (καθώς και το «Προγραμματισμός σε C» για όσους θέλουν να προσπαθήσουν τις προγραμματιστικές ασκήσεις).

 

Άλλη σχετική βιβλιογραφία

 


Ανακοινώσεις

  To 3ο Σετ Ασκήσεων είναι έτοιμο (ds-homework3.pdf). Ημερομηνία παράδοσης του 1ου Μέρους: Τρίτη, 20 Δεκεμβρίου 2005, ώρα 12:00 (στους βοηθούς του μαθήματος, γραφείο Α25). Ημερομηνία παράδοσης του 2ου Μέρους: Τρίτη, 10 Ιανουαρίου 2005, ώρα 12:00 (στους βοηθούς του μαθήματος, γραφείο Α25). Ημερομηνία παράδοσης προγραμματιστικού μέρους: Πέμπτη, 22 Δεκεμβρίου 2005.

Για το  μάθημα υπάρχει e-mailing λίστα η οποία θα χρησιμοποιείται για την αποστολή e-mail σε όλους τους φοιτητές που έχουν δηλώσει το μάθημα. Οι φοιτητές υποχρεούνται να εγγραφούν στη λίστα.

Οι φοιτητές θα πρέπει να εγγραφούν στη λίστα  μέχρι τις 14/10/05. Για να εγγραφείτε στη λίστα αρκεί να στείλετε ένα ηλεκτρονικό μήνυμα (e-mail) στη διεύθυνση 

με κενό θέμα και σώμα:

 

Όποιος φοιτητής δεν εγγραφεί στη λίστα, δεν θα λαμβάνει τα e-mails που αποστέλονται και δεν θα γνωρίζει σημαντικά θέματα που αφορούν το μάθημα. Το e-mail address της λίστας είναι . Όλα τα e-mails προς αυτή τη διεύθυνση θα λαμβάνονται από όλους τους φοιτητές που έχουν εγγραφεί στη λίστα.


Ημερολόγιο

Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή
3/10

Syllabus. 

 

 

 

 

 

 

 


 

 4/10 

 

 

 

 

 

 

 

 


 

5/10

 

Εισαγωγή.

Μελέτη διαφανειών & κεφ. 1, Μανωλόπουλου (επιλεκτικά). Εισαγωγή.

Διαφάνειες: (ds_1+2.pdf)


Επανάληψη στη C (για όσους σκοπεύουν να δουλέψουν τις προγραμματιστικές ασκήσεις)

 

6/10

 

 

 

 

 


 

 

 

 

7/10

 

 

 

 

 


 

 

 

 

10/10

Αλγόριθμοι - Δομές δεδομένων, , Μαθηματικό Υπόβαθρο

Μελέτη διαφανειών & κεφ. 1-2, Μανωλόπουλου (επιλεκτικά). 

11/10

 

 

 

 

 

12/10

Πολυπλοκότητες (Ο-Ω-Θ), Αναδρομικές Σχέσεις

 

Μελέτη διαφανειών & Κεφ. 1-2, Μανωλόπουλου (επιλεκτικά).

13/10

 

 

 

 

 

14/10

 

 

 

 

 

17/10

Πίνακες - Στατικές Στοίβες - Στατικές Ουρές

Μελέτη διαφανειών & Μανωλόπουλο: Κεφ. 2 & Ενότητα 3.1

18/10

 


 

 

19/10

Συνδεδεμένες Στοίβες - Συνδεδεμένες Ουρές

Μελέτη διαφανειών &  Ενότητων 3.2, 3.4.1, Κεφ. 3, Μανωλόπουλου

20/10

 


 

 

21/10
 

 

 

 

24/10

Συνδεδεμένες Ουρές - Λίστες

Εφαρμογές σειριακών γραμμικών λιστών,  Μελέτη διαφανειών και Ενοτήτων 3.3, 3.4.2 και 3.4.3, Μανωλόπουλου

25/10

 

 

 


 

26/10

Αναβολή Μαθήματος

 

 


 

27/10

 

 

 


 

28/10

 

 

 


 

31/10

Κόμβος Φρουρός. Διασχίσεις zig-zag σε λίστες. Μελέτη διαφανειών & Ενότητας 3.4.1, Μανωλόπουλου

 

 


 

1/11

 

 


 

 

 

 

2/11

Αντιστροφή Λιστών, Διπλά Συνδεδεμένες Λίστες, Εισαγωγή στα Δένδρα: Βασικοί ορισμοί, Είδη δένδρων

Μελέτη διαφανειών & Ενοτήτων 3.4.4, 4.1 και 4.1, 4.2, Μανωλόπουλου


 

3/11

Αναπλήρωση Μαθήματος Τετάρτης 26/10.

Υλοποίηση Δένδρων (δυαδικά δένδρα, διατεταγμένα δένδρα, πλήρη δυαδικά δένδρα). Διασχίσεις.

Μελέτη διαφανειών και Ενοτήτων 4.3.1, Μανωλόπουλου.

4/11

 

 

 


 

 

 

7/11

Διασχίσεις σε δένδρα.

Μελέτη διαφανειών & Ενότητας 4.5, Μανωλόπουλου

8/11

 

9/11

Νηματικά Δένδρα.

Μελέτη διαφανειών & Ενότητας 4.3.2, Μανωλόπουλου

10/11

 

11/11

 

14/11

Υλοποίηση συνόλων με στατικές και δυναμικές λίστες. Ευριστικά Move-to-Front και Transpse.

Μελέτη Διαφανειών & Ενότητας 3.4.1, Μανωλόπουλου

15/11

 

 

 

 

16/11

Λίστες Παράλειψης.

Μελέτη Διαφανειών & Ενότητας 3.4.5, Μανωλόπουλου

 

17/11

 

 

 

 

18/11

 

 

 

 

21/11

Ταξινομημένα Δυαδικά Δένδρα.

Μελέτη διαφανειών και Ενότητας 4.4, Μανωλόπουλου

22/11

 

 

 

23/11

AVL Δένδρα

Μελέτη διαφανειών και Ενοτήτων 5.1 και 5.2, Μανωλόπουλος.

 

24/11

 

 

 

25/11

 

 

 

28/11

2-3 Δένδρα

Μελέτη διαφανειών.

29/11

 

30/11

Splay Δένδρα

Μελέτη Διαφανειών.

1/12

 

2/11

 

5/12

Κόκκινα-Μαύρα Δένδρα

Μελέτη διαφανειών.

Λήξη Προθεσμίας 1ου Μέρους 2ης Σειράς Ασκήσεων

6/12

 

7/12

Hashing - Μέθοδος Αλυσιδών, Μικτών Αλυσιδών, Ανοιχτός Κατακερματισμός

Μελέτη διαφανειών και Ενοτήτων 9.1 και 9.3, Μανωλόπουλου

8/12

 

9/12

Λήξη Προθεσμίας 2ου Μέρους 2ης Σειράς Ασκήσεων

12/12

Ταξινομημένος Κατακερματισμός - Επεκτάσιμος Κατακερματισμός

Μελέτη διαφανειών.

13/12

 

14/12

Επεκτάσιμος Κατακερματισμός - Συναρτήσεις Κατακερματισμού, Ουρές Προτεραιότητας

Μελέτη διαφανειών και Ενοτήτων 6.1, 6.2 και 9.1, Μανωλόπουλου.

15/12

 

16/12

 

19/12

Ξένα σύνολα με ένωση - Αλφαριθμητικά

Μελέτη διαφανειών και Ενότητας 4.7, Μανωλόπουλου.

 

 

20/12

 

21/12

Γράφοι

Μελέτη διαφανειών και Ενοτήτων 7.1, 7.2 και 7.3, Μανωλόπουλου

22/12

Λήξη Προθεσμίας 1ου Μέρους 3ης Σειράς Ασκήσεων

23/12

 

Διακοπές Χριστουγέννων
9/1

----------

10/1

 

11/1

-------------

12/1

 

13/1

Λήξη Προθεσμίας 2ου Μέρους 3ης Σειράς Ασκήσεων

Λήξη Προθεσμίας Προγραμματιστικού Μέρους 3ης Σειράς Ασκήσεων

 


Διαφάνειες Διαλέξεων & Άλλο Υλικό

  3ο Σετ Ασκήσεων (ds-homework3.pdf)

 


Τελευταία  τροποποίηση: 9/12/05
Κατασκευή και συντήρηση των σελίδων:  Παναγιώτα Φατούρου