Τίτλος Μαθήματος Δομές Δεδομένων
Κωδικός Μαθήματος 321-3004
Εξάμηνο 3
ECTS 5
Ώρες (Θεωρία) 3
Ώρες (Εργαστηρίο) 2
Διδάσκοντας 321-3004

Ύλη μαθήματος

Εισαγωγή - Βασικές έννοιες αλγορίθμων και δομών δεδομένων, Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ), Απόδοση αλγορίθμων, Ανάλυση αλγορίθμων, Ασυμπτωτικοί συμβολισμοί, Πίνακες (πολυδιάστατοι, ειδικές μορφές, αραιοί), Λίστες (απλά συνδεδεμένη, κυκλική, διπλά συνδεδεμένη), Στοίβες (υλοποίηση με πίνακα, υλοποίηση με λίστα, εφαρμογές), Ουρές (υλοποίηση με κυκλικό πίνακα, υλοποίηση με λίστα, εφαρμογές), Δένδρα (ποσοτικά στοιχεία, αναπαράσταση με πίνακες και δείκτες, διασχίσεις), Ουρά προτεραιότητας, Δομή σωρού, Αναζήτηση (γραμμική, δυαδική, με παρεμβολή), Ταξινόμηση (με επιλογή, με εισαγωγή, φυσαλίδας, quicksort, σωρού, με συγχώνευση), Δυαδικά δένδρα αναζήτησης, Ζυγισμένα δένδρα αναζήτησης, Κόκκινα-μαύρα δένδρα, Β-δένδρα, Κατακερματισμός (λεξικό, συνάρτηση και πίνακας κατακερματισμού, συγκρούσεις, κατακερματισμός με αλυσίδες, γραμμικός και διπλός κατακερματισμός), Γραφήματα (αναπαράσταση με πίνακα/ λίστα γειτνίασης, αναζήτηση πρώτα σε πλάτος, αναζήτηση πρώτα σε βάθος). Η σχεδίαση ή επιλογή των κατάλληλων δομών δεδομένων για συγκεκριμένα προγραμματιστικά προβλήματα. Η υλοποίηση και αξιολόγηση διαφορετικών δομών. Βασικές αλγοριθμικές τεχνικές.

Επιδιωκόμενα μαθησιακά αποτελέσματα

Ο/Η φοιτητής/-τρια που θα ολοκληρώσει επιτυχώς το εν λόγω μάθημα, αναμένεται ότι θα είναι σε θέση να:
- Αναφέρει τα χαρακτηριστικά των βασικών δομών δεδομένων.
- Αναφέρει βασικούς αλγόριθμους εύρεσης και ταξινόμησης στοιχείων σε βασικές γραμμικές και δενδροειδείς δομές δεδομένων.
- Αναφέρει βασικούς αλγόριθμους διέλευσης και διαχείρισης δέντρων.
- Αναφέρει βασικούς αλγόριθμους σε γράφους.
- Αναφέρει τρεις ασυμπτωτικούς συμβολισμούς.
- Εξηγεί βασικούς αλγόριθμους εύρεσης και ταξινόμησης στοιχείων σε βασικές γραμμικές και δενδροειδείς δομές δεδομένων.
- Εξηγεί βασικούς αλγόριθμους σε διέλευσης και διαχείρισης δέντρων.
- Εξηγεί βασικούς αλγόριθμους σε γράφους.
- Επιλέγει κατάλληλους αλγόριθμους για την επίλυση ενός προβλήματος.
- Τροποποιεί κατάλληλα γνωστούς αλγόριθμους για να μπορούν να αξιοποιηθούν στην λύση ενός προβλήματος.
- Σχολιάζει την ποιότητα μιας λύσης σε σχέση με τον χρόνο εκτέλεσης του αντίστοιχου αλγορίθμου.
- Υλοποιεί γνωστούς και νέους αλγόριθμους.
- Τροποποιεί γνωστούς αλγορίθμους.
- Αναλύει ένα σύνθετο πρόβλημα.
- Σχεδιάζει την λύση σε αφηρημένο επίπεδο.
- Αξιολογεί την ποιότητα της λύσης που προτείνει και κάνει διορθωτικές ενέργειες αν χρειάζονται.
- Συγκρίνει ανάμεσα σε διάφορες εναλλακτικές επιλογές για την λύση ενός προβλήματος.
- Αναλύει την ποιότητα μιας λύσης σε σχέση με τον χρόνο εκτέλεσης των επιμέρους διαδικασιών της.
- Συνθέτει την λύση ενός προβλήματος με βάση επιμέρους κομμάτια της λύσης.
- Υλοποιεί την λύση ενός προβλήματος.
- Αξιολογεί την ποιότητα του σχεδιασμού της λύσης ενός προβλήματος.
- Αξιολογεί την ποιότητα της υλοποίησης της λύσης ενός προβλήματος.
- Ελέγχει την ορθότητα μιας λύσης.
- Επαληθεύει την ορθότητα μιας λύσης ενός προβλήματος.
- Συγκρίνει και σχολιάζει διάφορες εναλλακτικές λύσεις ενός προβλήματος.
- Εντοπίζει, αξιολογεί και αποτιμά σχετικές πληροφορίες μέσω των προτεινόμενων βιβλιογραφικών πηγών και τη χρήση του Διαδικτύου.

Προαπαιτούμενα

Δεν απαιτούνται.

Εγχειρίδια του μαθήματος

1. Robert Sedgewick. Αλγόριθμοι σε C, Μέρη 1-4: Θεμελιώδεις Εννοιες, Δομές Δεδομένων, Ταξινόμηση, Ααναζήτηση. 3η έκδοση/2006, Εκδόσεις Κλειδάριθμος ΕΠΕ, ISBN: 960-209-896-1.
2. Sahnii Sartaj. Δομές δεδομένων, αλγόριθμοι και εφαρμογές C++. 1η έκδοση/2004, Εκδόσεις Α. ΤΖΙΟΛΑ Ο.Ε., ISBN: 978-960-418-030-1.

Συμπληρωματική βιβλιογραφία

1. Τ. Cormen, E. Leiserson, L. Rivest, C. Stein, Εισαγωγή στους Αλγορίθμους, Τόμος Ι, 1η Εκδοση/2009 Παν/κές Εκδόσεις Κρήτης, ISBN: 978-960-524-225-1.
2. M. A. Weiss, Data Structures and Algorithm Analysis in Java, Prentice Hall; 3rd edition, 2011. ISBN 978-0132576277.
3. M. Goodrich και R. Tamassia, Data Structures and Algorithms in Java, Wiley; 5th edition, 2010. ISBN 978-0470383261.

Διδακτικές και μαθησιακές μέθοδοι

Ατομικές και ομαδικές εργασίες, πρακτική εξάσκηση στο εργαστήριο, μικρά τεστ στη μορφή κουίζ, τελική γραπτή εξέταση.

Δραστηριότητα Φόρτος Εργασίας Εξαμήνου
Διαλέξεις 39 ώρες
Εργαστηριακές Ασκήσεις 26 ώρες
Προσωπική μελέτη 56 ώρες
Πρόοδος 1 ώρα
Τελική εξέταση 3 ώρες
Σύνολο Μαθήματος 125 ώρες (5 ECTS)

Μέθοδοι αξιολόγησης / βαθμολόγησης

Πρόοδος

Γραπτή τελική εξέταση

Γλώσσα διδασκαλίας

Ελληνικά (Αγγλικά αν υπάρχουν φοιτητές/φοιτήτριες ERASMUS)

Τρόπος παράδοσης μαθήματος

Φυσική Παρουσία.