Γενικά

K08 - Εαρινό εξάμηνο 2019-2020 - Τμήμα περιττών ΑΜ

Καθηγητής

Διαλέξεις
  • Δευτέρα: 15:00-17:00
  • Τετάρτη: 15:00-17:00
  • Ζωντανή μετάδοση και καταγραφή μέσω YouTube
  • Οι διαλέξεις στο αμφιθέατρο υπάρχουν στο delos
Βαθμολογία
  • Εργαστήριο & Εργασίες: 50%
    • Κοινή εξέταση για εργαστήριο & εργασίες στο τέλος
    • Οι βαθμοί σε εργαστήριο και εργασίες ισχύουν για την εξεταστική του Σεπτεμβρίου της ίδιας χρονιάς, αλλά όχι για τις επόμενες χρονίες.
  • Τελική εξέταση: 50%
    • Ο βαθμός της τελικής εξέτασης πρέπει να είναι πάνω από 5.
Εργαστήρια
  • Πρόγραμμα. Γραφτείτε στην ομάδα που σας βολεύει (πριν συμπληρωθεί).
  • Μεγαλύτερα έτη: οι παρουσίες είναι προαιρετικές, αλλά προσοχή, οι ασκήσεις κάθε εργαστηρίου θα πρέπει να υποβάλλονται μέσω github στο τέλος των 2 εβδομάδων που διαρκεί το εργαστήριο (ακριβείς ημερομηνίες στις εκφωνήσεις των εργαστηρίων).
Φροντιστήρια
  • Θα ανακοινωθούν
Forum για συζητήσεις και ανακοινώσεις (piazza)
  • Υποχρεωτική εγγραφή (με το @di.uoa.gr email σας αυστηρά)
  • Ολες οι ανακοινώσεις θα γίνονται στο piazza!
  • Είσοδος

Διαλέξεις

Εισαγωγή & τεχνικές αποδοτικού προγραμματισμού
Εισαγωγήhtml  pdf  4up  delos  [2]
Modules, Makefiles, Editors, Githtml  pdf  4up  delos  [2]
Recap: memory allocation, pointers, structs, typedefshtml  pdf  4up  delos  [2]  [3]
Code style, Naming convensions, Testshtml  pdf  4up  delos  [2]
Αφηρημένοι Τύποι Δεδομένων και εφαρμογές
Εισαγωγή στους Αφηρημένους Τύπους Δεδομένωνhtml  pdf  4up  delos
Vectors, Λίστες, Στοίβες, Ουρέςhtml  pdf  4up  delos  [2]  [3]
Ουρές προτεραιότητας, Maps, Σύνολαhtml  pdf  4up  delos  [2]
Φροντιστήριο Εργασίας 1youtube
Δομές δεδομένων
Εισαγωγή την υλοποίηση ΑΤΔ, Συνδεδεμένες λίστεςyoutube  [2]
Ανάλυση αλγορίθμων, πολυπλοκότηταhtml  pdf  4up  youtube  [2]
Δυναμικοί Πίνακεςhtml  pdf  4up  youtube
Εξαρτημένες Δομέςyoutube
Δέντρα, σωροίhtml  pdf  4up  youtube  [2]
Δυαδικά δέντρα αναζήτησηςhtml  pdf  4up  youtube  [2]
Διευκρινήσεις για την Εργασία 2youtube
AVL δέντραhtml  pdf  4up  youtube
Δέντρα αναζήτησης m δρόμων, δέντρα 2-3, δέντρα 2-3-4html  pdf  4up  youtube
Δέντρα (a,b), B-δέντραhtml  pdf  4up  youtube
Κατακερματισμόςhtml  pdf  4up  youtube  [2]  [3]
Γράφοιhtml  pdf  4up  youtube  [2]  [3]
Γράφοι με βάρηhtml  pdf  4up  youtube

Visualizations

  • Οσα υπάρχουν στις διαφάνειες μπορείτε να τα εκτελείτε βήμα-βήμα πατώντας space
  • Interactive εκδόσεις υπάρχουν εδώ (και για πολλές ακόμα δομές)

Εργασίες

Διαβάσετε προσεκτικά τις οδηγίες (κοινές για όλες τις εργασίες).

Κώδικας

Εργαλεία

Στο μάθημα χρησιμοποιείται ο editor VS Code (χωρίς να απαγορεύεται η χρήση άλλων editors), καθώς και τα εργαλεία gcc, make, git και valgrind. Αφού εγκαταστήσουμε τα εργαλεία αυτά, ακολουθώντας τις παρακάτω οδηγίες, κάνουμε compile τον κώδικα του μαθήματος μέσα από το VS Code ή τρέχοντας make στο αντίστοιχο directory.

Sample Project

Παράδειγμα δομής ενός C project. Επιδεικνύει τη χρήση modules, Makefiles και tests.

Κώδικας διαλέξεων

Ο βασικός κώδικας που χρησιμοποιείται στις διαλέξεις του μαθήματος. Περιέχει υλοποιήσεις από όλους τους ADTs που διδάσκονται στο μάθημα

Βιβλιογραφία

Η βασική ύλη του μαθήματος περιλαμβάνεται στις διαφάνειες των διαλέξεων και τον κώδικα που διδάσκεται στο μάθημα. Τα παρακάτω βασικά συγγράμματα χρησιμοποιούνται βοηθητικά στο μάθημα.

Βασικά συγγράμματα

  • Robert Sedgewick: Αλγόριθμοι σε C, Εκδόσεις Κλειδάριθμος, 2006. [Εύδοξος]

  • Thomas A. Standish: Data Structures, Algorithms and Software Principles in C, Addison-Wesley. 1995.

Πλήρης λίστα προτεινόμενων συγγραμμάτων στην υπηρεσία Εύδοξος

  • Robert Sedgewick: Αλγόριθμοι σε C, Εκδόσεις Κλειδάριθμος, 2006. [Εύδοξος] (προτεινόμενο)

  • Michael T. Goodrich, Roberto Tamassia: Δομές Δεδομένων & Αλγόριθμοι σε JAVA, Εκδόσεις Δίαυλος, 2013. [Εύδοξος]

  • Bruno R. Preiss: Δομές Δεδομένων και Αλγόριθμοι με Αντικειμενοστρεφή Σχεδιαστικά Μορφήματα στη C++, Εκδόσεις Πεδίο, 2016. [Εύδοξος]

  • Ν. Μισυρλής: Δομές Δεδομένων με C. [Εύδοξος]

Άλλα βιβλία διαθέσιμα online

  • Kyle Loudon, Mastering Algorithms with C, O'Reilly, 1999. [pdf]

  • Clifford A. Shaffer: Data Structures and Algorithm Analysis, Dover, 2013. [pdf]

Team

Καθηγητής

Υπεύθυνος εργαστηρίων

  • Σαράντης Πασκαλής (paskalis@di….)

Μεταπτυχιακοί συνεργάτες

  • Γιώργος Καραπάτσας
  • Ελένη Μαντζάνα
  • Δημήτρης Σιδέρης

Προπτυχιακοί συνεργάτες

  • Νίκος Γαλάνης
  • Βαγγέλης Δανιάς
  • Βαγγέλης Δημητριάδης
  • Γιάννης Ζερβάκης
  • Χάρης Μαραζιάρης
  • Βησσαρίων Μουτάφης
  • Αγγελική Παναγοπούλου
  • Γιούλη Παύλου
  • Μαρία-Δέσποινα Σιάμπου
  • Γιώργος Σίττας
  • Σοφοκλής Στρόμπολας
  • Σπύρος Χαλκιάς