Παρουσίαση/Προβολή

Δομές Δεδομένων
(AIC205) - ΜΑΡΙΑ ΑΙΚΑΤΕΡΙΝΗ ΣΑΤΡΑΤΖΕΜΗ, ΓΕΩΡΓΙΑ ΚΟΛΩΝΙΑΡΗ, ΣΠΥΡΙΔΩΝ ΧΑΛΚΙΔΗΣ
Περιγραφή Μαθήματος
Τιμώντας τους Aho, Ullman
ACM Turing Award Honors Innovators Who Shaped the Foundations of Programming Language Compilers and Algorithms
Columbia’s Aho and Stanford’s Ullman Developed Tools and Seminal Textbooks Used by Millions of Software Programmers around the World
Κάθε φορά που συνδέεστε στο μάθημα συμβουλευτείτε τις Ανακοινώσεις!
Σκοπός του μαθήματος είναι να εισάγει στους φοιτητές τις θεμελιώδεις δομές δεδομένων ως Αφηρημένους Τύπους Δεδομένων (ΑΤΔ), να δείξει τη χρησιμότητα αυτών των δομών στην επίλυση προβλημάτων καθώς και πως αυτές οι αφηρημένες έννοιες μπορούν να συγκεκριμενοποιηθούν χρησιμοποιώντας μια γλώσσα προγραμματισμού. Δίνεται η ίδια έμφαση τόσο στην αφηρημένη έννοια όσο και στην υλοποίησή της έτσι ώστε οι φοιτητές να μάθουν για τις αφηρημένες έννοιες των Δ.Δ. αλλά και για τις υλοποίηση τους καθώς και για τις εφαρμογές τους.
Ημερομηνία δημιουργίας
Τρίτη 9 Φεβρουαρίου 2021
-
Μαθησιακοί στόχοι
Ο στόχος του μαθήματος είναι η μελέτη των δομών δεδομένων και εστιάζεται σε δύο αλληλοσυμπληρούμενους άξονες: α) την αναγνώριση και ανάπτυξη χρήσιμων μαθηματικών μοντέλων (Αφηρημένοι Τύποι Δεδομένων, ΑΤΔ) και των πράξεων τους, καθώς και τον προσδιορισμό των κατηγοριών των προβλημάτων που μπορούν να επιλύσουν και β) την ανάπτυξη μεθόδων αναπαράστασης και υλοποίησης των ΑΤΔ και των πράξεων τους στη διαδικαστική γλώσσα προγραμματισμού C.
Μετά την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα είναι σε θέση:
- να γνωρίζουν την κατάλληλη χρήση των δομών δεδομένων. (Εξοικείωση)
- να περιγράφουν κοινές εφαρμογές για κάθε μία από τις ακόλουθες δομές δεδομένων: σύνολο , στοίβα, ουρά, συνδεδεμένη λίστα, Δυαδικό Δένδρο Αναζήτησης, Σωρό, κατακερματισμό. (Εξοικείωση)
- να αναπτύσσουν προγράμματα όπου θα χρησιμοποιούν κάθε μία από τις παραπάνω δομές δεδομένων. (Χρήση)
- να συγκρίνουν τις εναλλακτικές υλοποιήσεις των δομών δεδομένων σε σχέση με τις επιδόσεις. (Εκτίμηση)
- να συγκρίνουν και να αντιπαραβάλουν το κόστος και τα οφέλη των υλοποιήσεων των δυναμικών και στατικών δομών δεδομένων. (Εκτίμηση)
- να επιλέγουν την κατάλληλη δομή δεδομένων για τη μοντελοποίηση ενός δεδομένου προβλήματος. (Εκτίμηση)
- να υλοποιούν έργα (projects) που απαιτούν την εφαρμογή των παραπάνω δομών δεδομένων (Εφαρμογή)
Περιεχόμενο μαθήματος
- Εισαγωγή στις δομές δεδομένων, Αφηρημένος Τύπος Δεδομένων (ΑΤΔ).
- Βασικοί τύποι δεδομένων (ΑΤΔ ακέραιος, πραγματικός, χαρακτήρας, λογικός).
- ΑΤΔ πίνακας, εγγραφή, σύνολο.
- Στοίβα (stack), βασικές πράξεις, υλοποίηση στοίβας με πίνακα, εφαρμογές με τη χρήση στοίβας (μετατροπή ακέραιου από το δεκαδικό στο δυαδικό σύστημα, υπολογισμός αριθμητικών παραστάσεων).
- Ουρά (queue), βασικές πράξεις, υλοποίηση ουράς με πίνακα, εφαρμογές με τη χρήση ουράς.
- Λίστα (list), βασικές πράξεις, υλοποίηση λίστας με σειριακή αποθήκευση.
- Συνδεδεμένη λίστα (linked list), υλοποίηση με χρήση δεικτών, υλοποίηση στοίβας, ουράς ως ΣΛ, εφαρμογές ΣΛ.
- Δένδρα, Δυαδικά δένδρα (binary trees)(ΔΔ), βασικές πράξεις, υλοποίηση ΔΔ με πίνακα, με δείκτες και με αναδρομή, εφαρμογές ΔΔ: κώδικες Huffman. Β-ΔΔ, βασικές πράξεις.
- Κατακερματισμός (hashing), τεχνικές κατακερματισμού: ανοιχτής διεύθυνσης (open probing) και αλυσίδες συνωνύμων (chaining), υλοποίηση της τεχνικής αλυσίδες συνωνύμων με πίνακα.
Μέθοδοι αξιολόγησης
Ο τελικός βαθμός διαμορφώνεται από:
- Εβδομαδιαίες & Εργαστηριακές Εργασίες: Oι οποίες θα παραδίδονται στους φοιτητές κατά τη διάρκεια του εξαμήνου και θα πρέπει να επιστρέφονται λυμένες μέχρι την καταληκτική ημερομηνία που θα ανακοινώνεται σε κάθε περίπτωση. Σε κάθε εργασία οι φοιτητές έχουν να αναπτύξουν κατά μέσο όρο 2-3 προγράμματα.
- Γραπτές Εξετάσεις. Το ένα από τα θέματα των εξετάσεων είναι μια από τις ασκήσεις του τρέχοντος ακαδημαϊκού έτους. Κάθε χρόνο οι ασκήσεις είναι διαφορετικές απ΄ αυτές του προηγούμενου έτους
Ο τελικός βαθμός προκύπτει κατά 80% από το βαθμό της τελικής γραπτής εξέτασης (κλίμακα 0 – 10) και κατά 20% από το βαθμό των επιπλέον μεθόδων αξιολόγησης - εργαστηριακών και εβδομαδιαίων εργασιών - (κλίμακα 0 – 10), μόνο στην περίπτωση που ο βαθμός της τελικής εξέτασης είναι προβιβάσιμος (>=5). Διαφορετικά, ο τελικός βαθμός ισοδυναμεί με το 80% του βαθμού της τελικής εξέτασης.
Οι φοιτητές/τριες παλαιοτέρων εξαμήνων που έχουν αποστείλει ασκήσεις μπορούν να διατηρήσουν τον παλαιό τους βαθμό και να μην ξαναστείλουν ασκήσεις. Αν καταθέσουν ασκήσεις σε περισσότερες από 1 χρονιά τότε ο τελικός βαθμός υπολογίζεται με βάση το μεγαλύτερο βαθμό ασκήσεων.
Τη βαθμολογία των εργασιών των παρελθόντων ετών μπορείτε να τη βρείτε ΕΔΩ.
Προφανώς, για να συμμετέχει ο/η φοιτητής/φοιτήτρια στην όποια διαδικασία εξέτασης (τελικές εξετάσεις, κατάθεση ασκήσεων), θα πρέπει να έχει δηλώσει το μάθημα μέσω της υπηρεσίας Student Web στο τρέχον εξάμηνο (δηλ. στο εξάμηνο στο οποίο θέλει να βαθμολογηθεί είτε σε ασκήσεις, είτε σε τελικές εξετάσεις).
Βαθμολόγηση εργασιών Υποβολή εργασιών
Η υποβολή των εργασιών γίνεται μέσω της πλατφόρμας openeclass.
Εκπρόθεσμες εργασίες μέσω email δε γίνονται δεκτές και δε βαθμολογούνται.
Οι εργασίες θα πρέπει να λύνονται αποκλειστικά και μόνο με βάση τον κώδικα που σας δίνεται και υλοποιεί τον κάθε ΑΤΔ.
Η βαθμολόγηση των εργασιών πραγματοποιείται με τη χρήση κατάλληλου λογισμικού το οποίο αξιολογεί την κάθε εργασία χωριστά και τη βαθμολογεί βάσει της ποιότητας του κώδικα και της εξόδου που παράγεται κατά την εκτέλεση του προγράμματος.
Οι εργασίες βαθμολογούνται ως ακολούθως:
Η εργασία μεταγλωττίζεται ορθά και εκτελείται ορθά σε όλες τις περιπτώσεις: 10
Η εργασία δεν μεταγλωττίζεται ορθά:0
Η εργασία μεταγλωττίζεται ορθά, αλλά δεν εκτελείται: 0
Η εργασία μεταγλωττίζεται και εκτελείται αλλά με σφάλματα ή προειδοποιήσεις που αφορούν χρήση δεικτών: 0Η εργασία μεταγλωττίζεται και εκτελείται αλλά χωρίς τη χρήση των ΑΤΔ από τον κώδικα που συνοδεύει το μάθημα: 0
Η εργασία μεταγλωττίζεται και εκτελείται με άλλες προειδοποιήσεις: αναλογικά [1,10)
Η εργασία μεταγλωττίζεται και εκτελείται αλλά όχι για όλες τις περιπτώσεις ελέγχου: αναλογικά [1,10)
Προσοχή. Το λογισμικό που χρησιμοποιείται πραγματοποιεί και έλεγχο αντιγραφής. Σε τέτοια περίπτωση μηδενίζονται όλοι οι εμπλεκόμενοι στην αντιγραφη
Για απορίες/ερωτήσεις που αφορούν στα λάθη που εντοπίστηκαν στις εργασίες σας μπορείτε να αποστείλετε εμαιλ αναφέροντας τις συγκεκριμένες εργασίες που έχετε απορίες ή να επισκεφτείτε στις ώρες γραφείου τον/την διδάσκοντα/σκουσα ως εξής
φοιτητές/τριες από το τμήμα Α' θεωρίας στον κ. Χαλκίδη
φοιτητές/τριες από το τμήμα Β' θεωρίας στην κ. Σατρατζέμη
φοιτητές/τριες από το τμήμα Γ' θεωρίας στην κ. Κολωνιάρη
Τμήματα Θεωρίας - Εργαστηρίων - Παρουσίες
Οι φοιτητές/τριες χωρίζονται σε 3 τμήμα για τις διαλέξεις θεωρίας σύμφωνα με τον παρακάτω πίνακα:
Τμήμα Α. Δευτερά 9.00-11.00
Αμφ. 12
Διδάσκουσα: Μ. Σατρατζέμη
Φοιτητές/τριες µε επώνυμο
Α - ΚΑΤ
Τμήμα Β. Δευτερά 11.00-13.00
Αμφ. 12
Διδάσκουσα: Μ. Σατρατζέμη
Φοιτητές/τριες µε επώνυμο
ΚΑΦ - ΠΑΠΑΔ
Τμήμα Γ. Δευτερά 15.00-17.00
Αμφ. 12
Διδάσκουσα: Γ. Κολωνιάρη
Φοιτητές/τριες µε επώνυμο
ΠΑΠΑΙ - Ω
Οι φοιτητές/τριες χωρλιζονται σε 6 τμήματα για τα εργαστήρια σύμφωνα με τον παρακάτω πίνακα:
ΤΜΗΜΑ Α : ΠΕΜΠΤΗ 8.00-9.00
ΚΥΔΧΑΛΚΙΔΗΣ
Φοιτητές/τριες µε επώνυμο
Α - ΔΑ
ΤΜΗΜΑ Β : ΠΕΜΠΤΗ 9.00-10.00
ΚΥΔΧΑΛΚΙΔΗΣ
Φοιτητές/τριες µε επώνυμο
ΔΕ - ΚΑΤ
ΤΜΗΜΑ Γ : ΠΕΜΠΤΗ 10.00-11.00
ΚΥΔΧΑΛΚΙΔΗΣ
Φοιτητές/τριες µε επώνυμο
ΚΑΦ - ΜΗ
ΤΜΗΜΑ Δ : ΠΕΜΠΤΗ 11.00-12.00
ΚΥΔΣΑΤΡΑΤΖΕΜΗ
Φοιτητές/τριες µε επώνυμο
ΜΙ - ΠΑΠΑΔ
ΤΜΗΜΑ Ε : ΠΕΜΠΤΗ 12.00-13.00
ΚΥΔΣΑΤΡΑΤΖΕΜΗ
Φοιτητές/τριες µε επώνυμο
ΠΑΠΑΙ - ΤΑΚ
ΤΜΗΜΑ ΣΤ : ΠΕΜΠΤΗ 15.00-16.00
ΕΡΓΑΣΤΗΡΙΟ 334ΚΟΛΩΝΙΑΡΗ
Φοιτητές/τριες µε επώνυμο
ΤΑΟΥ - Ω
- ∆εν επιτρέπεται φοιτητής / φοιτήτρια να αλλάξει τµήµα. Αν για κάποιο σοβαρό λόγο χρειαστεί να γίνει τότε θα πρέπει ο φοιτητής / φοιτήτρια να κάνει αμοιβαία αλλαγή με συμφοιτητή /τρια και να το δηλώσει στους διδάσκοντες κ. Μ. Σατρατζέµη ή Γ. Κολωνιάτη ή Α. καρακασίδη..
- Για τους φοιτητές του Β' εξαμήνου (κανονική φοίτηση) επιτρέπονται μέχρι και 2 απουσίες στα εργαστηριακά µαθήµατα. Σε περίπτωση που πραγµατοποιηθούν πάνω από 2 απουσίες τότε ο φοιτητής / φοιτήτρια δεν μπορεί να δώσει εξετάσεις την 1η εξεταστική (του ιουνίου). Μπορεί να εξεταστεί στην εξεταστική του Σεπτεμβρίου καθώς θα έχει όλο το χρόνο να αναπληρώσει με προσωπική μελέτη τα εργαστήρια που έχασε.
- Φοιτητές μεγαλύτερων εξαμήνων που χρωστούν το μάθημα και δεν παρακολούθησαν ως φοιτητές του Β' εξαμήνου είτε μερικώς είτε εξ ολοκλήρου τα εργαστήρια δεν υποχρεούνται να τα παρακολουθήοσουν για να συμμετάσχουν σε εξετάσεις. Αυτοί θα καλύψουν το κενό της μη παρακολούθησης των εργαστηρίων με προσωπική μελέτη.
Αναλυτικό Πρόγραμμα Διαλέξεων και Εργασιών
Το αναλυτικό πρόγραμμα διαλέξεων θα το βρείτε ΕΔΩ
Διδάσκοντες
Μάγια Σατρατζέμη, (maya@uom.edu.gr), Καθηγήτρια
Γεωργία Κολωνιάρη, (gkoloniari@uom.edu.gr), Αναπληρώτρια Καθηγήτρια
Σπυρίδων Χαλκίδης, (halkidis@uom.edu.gr), ΕΔΙΠ
Βιβλιογραφία
- Δομές Δεδομένων με C, Ν. Μισυρλής
- Σημειώσεις μαθήματος. Μπορείτε να κατεβάσετε αυτές τις σημειώσεις από ΕΔΩ