Παρουσίαση/Προβολή
Δομές Δεδομένων (Ε 2024-2025)
(352) - Δημήτρης Ζώρος
Περιγραφή Μαθήματος
Στόχος του μαθήματος είναι η λεπτομερής παρουσίαση και η μελέτη των βασικότερων δομών δεδομένων. Η κύρια έμφαση θα δοθεί στην ανάλυση του τρόπου λειτουργίας των δομών και την εφαρμογή τους σε βασικούς αλγόριθμους. Οι διαλέξεις θα βασίζονται σε μία στοιχειώδη «ψευδογλώσσα» προγραμματισμού.
Ημερομηνία δημιουργίας
Τετάρτη 25 Σεπτεμβρίου 2019
-
Προαπαιτούμενα
Παρ’ ότι το μάθημα είναι αυτοτελές και οι έννοιες θα ορίζονται και αναλύονται εκ του μηδενός, θα είναι χρήσιμη η εμπειρία από προγραμματισμό, είτε με ψευδογλώσσα είτε με οποιαδήποτε γλώσσα προγραμματισμού. Χρήσιμες θα είναι επίσης βασικές γνώσεις Διακριτών Μαθηματικών, Θεωρίας Γραφημάτων και Σχεδιασμού Αλγορίθμων. Δεν είναι απαραίτητη η γνώση συγκεκριμένης γλώσσας προγραμματισμού για την παρακολούθηση και την επιτυχή εξέταση του μαθήματος.
Μέθοδοι διδασκαλίας
Θα δίνονται δύο δίωρες διαλέξεις την εβδομάδα στις οποίες θα παρουσιάζεται η ύλη του μαθήματος. Όταν προχωράει αρκετά η παρουσίαση της ύλης κάποια από τις διαλέξεις αυτές (ή τμήμα τους) θα αφιερώνεται για την επίλυση ασκήσεων.
Για την οργάνωση του μαθήματος και την εξ αποστάσεως επικοινωνία φοιτητών/τριών και διδάσκοντα θα χρησιμοποιηθεί η πλατφόρμα «η-τάξη» του ΕΚΠΑ. Επιπλέον, για την αλληλεπίδραση των φοιτητών/τριων με τον διδάσκοντα μέσω ασκήσεων, θα αξιοποιηθούν τα εργαλεία «Ασκήσεις» και «Εργασίες» της πλατφόρμας. Τέλος, το περιεχόμενο της κάθε διάλεξης θα ανακοινώνεται στο «Ημερολόγιο» του μαθήματος.
Ως επιπλέον κίνητρο, οι φοιτητές/τριες θα κληθούν να επιλύσουν 3 πακέτα ασκήσεων που θα λειτουργούν βελτιωτικά στον συνολικό βαθμό που θα επιτύχουν στο μάθημα. Πιο συγκεκριμένα, οι φοιτητές/τριες θα κληθούν να σχηματίσουν ομάδες συνεργασίας (μέχρι 2 άτομα ανά ομάδα), οι ομάδες αυτές θα πρέπει να επιλύσουν τις ασκήσεις, να γράψουν τις απαντήσεις τους (κατά προτίμηση σε LaTeX) και να τις καταθέσουν στον διδάσκοντα μέσω της πλατφόρμας «η-τάξη».
Στο τέλος του εξαμήνου οι φοιτητές/τριες θα κληθούν να συμμετάσχουν στην εξέταση του μαθήματος.
Μέθοδοι αξιολόγησης
Ασκήσεις: Το πολύ 1,5 μονάδες (μισή μονάδα για κάθε πακέτο ασκήσεων)
Εξετάσεις: 10 μονάδες
Τελικός βαθμός: min{βαθμός εξέτασης+βαθμός ασκήσεων, 10}
Η επίλυση των πακέτων ασκήσεων είναι προαιρετική και δίνει τη δυνατότητα στους φοιτητές που θα ασχοληθούν με αυτές να βελτιώσουν τον τελικό βαθμό τους κατά το πολύ 1,5 μονάδες.
Περιεχόμενο μαθήματος
- Εισαγωγή (Αλγοριθμική γλώσσα, Ασυμπτωτική ανάλυση)
- Πίνακες
- Συνδεδεμένες Λίστες (Απλά συνδεδεμένες, Διπλά συνδεδεμένες, Κυκλικά συνδεδεμένες)
- Στοίβες και Ουρές
- Δέντρα (Δυαδικά Δέντρα, Δυαδικά Δέντρα Αναζήτησης, Σωροί, Δέντρα AVL, Ξένα Σύνολα)
- Γραφήματα
- Αλγόριθμοι ταξινόμησης
Προτεινόμενα συγγράμματα
- Γεώργιος Φρ. Γεωργακόπουλος: Δομές Δεδομένων Έννοιες, Τεχνικές και Αλγόριθμοι, Πανεπιστημιακές Εκδόσεις Κρήτης
- Παναγιώτης Δ. Μποζάνης: Δομές Δεδομένων, Εκδόσεις Τζιόλα
- Λουκάκης Μανόλης: Δομές Δεδομένων, Αλγόριθμοι, Εκδόσεις Σοφία
Βιβλιογραφία
- Νικόλαος Μισυρλής: Δομές δεδομένων με C
- Αθανάσιος Κ. Τσακαλίδης Δομές Δεδομένων
- Δ. Ζώρος (Πρόχειρες) σημειώσεις στις ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
- Michael T. Goodrich, Roberto Tamassia: Δομές Δεδομένων & Αλγόριθμοι σε JAVA, Εκδόσεις Δίαυλος
- Sahnii Sartaj: Δομές δεδομένων, αλγόριθμοι και εφαρμογές C++, Εκδόσεις Τζιόλα