@di.uoa.gr
email σας αυστηρά)Το design competition έχει ανοίξει!
Εισαγωγή & τεχνικές αποδοτικού προγραμματισμού | |
---|---|
Εισαγωγή | html pdf 4up youtube |
Modules, Makefiles, Editors, Git | html pdf 4up youtube |
Recap: memory allocation, pointers, structs, typedefs | html pdf 4up youtube [2] |
Code style, Naming convensions, Tests | html pdf 4up youtube |
Αφηρημένοι Τύποι Δεδομένων και εφαρμογές | |
Εισαγωγή στους Αφηρημένους Τύπους Δεδομένων | html pdf 4up youtube |
Vectors, Λίστες, Στοίβες, Ουρές | html pdf 4up youtube |
Ουρές προτεραιότητας, Maps, Σύνολα | html pdf 4up youtube |
Φροντιστήριο | |
Δομές δεδομένων | |
Εισαγωγή την υλοποίηση ΑΤΔ, Συνδεδεμένες λίστες | youtube |
Ανάλυση αλγορίθμων, πολυπλοκότητα | html pdf 4up youtube |
Δυναμικοί Πίνακες | html pdf 4up youtube [2] |
Εξαρτημένες Δομές | youtube |
Δέντρα, σωροί | html pdf 4up youtube [2] |
Δυαδικά δέντρα αναζήτησης | html pdf 4up youtube [2] |
AVL δέντρα | html pdf 4up youtube [2] |
Δέντρα αναζήτησης m δρόμων, δέντρα 2-3, δέντρα 2-3-4 | html pdf 4up youtube |
B-δέντρα | html pdf 4up youtube |
Κατακερματισμός | html pdf 4up youtube [2] [3] |
Γράφοι | html pdf 4up youtube [2] [3] |
Γράφοι με βάρη | html pdf 4up youtube [2] |
Στο μάθημα χρησιμοποιείται ο editor VS Code (χωρίς να απαγορεύεται η χρήση
άλλων editors), καθώς και τα εργαλεία gcc
, make
, git
και valgrind
.
Σημείωση: το c_programs
directory που δημιουργείται όταν εκτελέσετε τις οδηγίες
αφορά την Εισαγωγή στον Προγραμματισμό και δεν χρησιμοποιείται στο μάθημα.
Παράδειγμα δομής ενός C project, για χρήση στις πρώτες 2 ενότητες του μαθήματος. Επιδεικνύει modules, Makefiles και tests, καθώς και τη χρήση των ADTs που διδάσκονται στο μάθημα.
Για να το χρησιμοποιήσετε:
Κάντε clone το sample-project
μέσω git (διαφάνειες)
στον υπολογιστή σας.
(Το project είναι αυτόνομο, μην το βάλετε μέσα σε κάποιο άλλο, πχ στο c_programs
.)
Aνοίξτε το sample-project
directory από το VS Code : File
/ Open Folder
/ <sample-project>
.
Kάντε compile με Ctrl-Shift-B
(διαφάνειες)
ή τρέχοντας make
στο αντίστοιχο directory.
Ο βασικός κώδικας που χρησιμοποιείται στις διαλέξεις της τρίτης ενότητας του μαθήματος. Περιέχει υλοποιήσεις από όλους τους 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. [Εύδοξος]