Skip to main content

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

Μαθησιακά Αποτελέσματα: Με την ολοκλήρωση του μαθήματος οι φοιτητές θα μπορούν να: (1) Περιγράφουν και να υλοποιούν σε Python βασικές δομές δεδομένων και αλγόριθμους. (2) Υλοποιούν προγραμματιστικές τεχνικές που απαντώνται συχνά στη λύση αλγοριθμικών προβλημάτων. (3) Αναλύουν την πολυπλοκότητα αλγορίθμων και να εκτιμούν το υπολογιστικό κόστος των αλγορίθμων. (4) Επιλέγουν τις κατάλληλες δομές δεδομένων και αλγόριθμους για την επίλυση συγκεκριμένων προγραμματιστικών προβλημάτων. (5) Συνδυάζουν αλγόριθμους και δομές δεδομένων για την επίλυση πολύπλοκων υπολογιστικών προβλημάτων.

Περιεχόμενο Μαθήματος: Ανάλυση Αλγορίθμων, Προγραμματισμός σε Python και Αντικειμενοστραφείς Προγραμματισμός, Αναδρομή, Πίνακες, Στοίβες (Stacks), Ουρές (Queues), Συνδεδεμένες Λίστες (Linked List), Δέντρα και Δυαδικά Δέντρα, Ουρές Προτεραιότητας και Σωροί (Heaps), Χάρτες (Maps), Λεξικά (Dictionaries), Πίνακες Κατακερματισμού (Hash Maps), Σύνολα, Δέντρα Αναζήτησης και AVL Δέντρα, Δέντρα Splay, Δέντρα (2,4), Ταξινόμηση και Επιλογή, Γράφοι και Αλγόριθμοι Συντομότερου Μονοπατιού.