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

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

Εισαγωγή - Βασικές έννοιες αλγορίθμων και δομών δεδομένων, Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ), Απόδοση αλγορίθμων, Ανάλυση αλγορίθμων, Ασυμπτωτικοί συμβολισμοί, Πίνακες (πολυδιάστατοι, ειδικές μορφές, αραιοί), Λίστες (απλά συνδεδεμένη, κυκλική, διπλά συνδεδεμένη), Στοίβες (υλοποίηση με πίνακα, υλοποίηση με λίστα, εφαρμογές), Ουρές (υλοποίηση με κυκλικό πίνακα, υλοποίηση με λίστα, εφαρμογές), Δένδρα (ποσοτικά στοιχεία, αναπαράσταση με πίνακες και δείκτες, διασχίσεις), Ουρά προτεραιότητας, Δομή σωρού, Αναζήτηση (γραμμική, δυαδική, με παρεμβολή), Ταξινόμηση (με επιλογή, με εισαγωγή, φυσαλίδας, 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)

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

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