Δομές Δεδομένων
| Εξάμηνο | 5ο | 
|---|---|
| Κωδικός | Λ08Υ | 
| ECTS | 4 | 
| Διδακτικές Μονάδες | 4 | 
| Ώρες Θεωρίας | 2 | 
| Ώρες Ασκήσεων | 1 | 
| Ώρες Εργαστηρίου | 2 | 
| Τομέας | Λογισμικού και Ανάπτυξης Εφαρμογών | 
| Διδάσκοντες | Εφραιμίδης Παύλος | 
| Συζήτηση | |
| Ενεργειακός | Υ | 
|---|---|
| Ηλεκτρονικός | Υ | 
| Τηλεπικοινωνιακός | Υ | 
| Πίνακας περιεχομένων | 
Περιγραφή
Ανάπτυξη λογισμικού. Βασικές έννοιες αλγορίθμων. Δομές δεδομένων. Ταξινόμηση και αναζήτηση. Υπολογιστικά μοντέλα. Η μηχανή Turing και η Random Access Machine. Πολυπλοκότητα αλγορίθμων. Τεχνικές σχεδιασμού αλγορίθμων. Διαίρει και βασίλευε. Αναδρομή και απαλοιφή αναδρομής. Δυναμικός προγραμματισμός. Απληστία. Αλγόριθμοι γραφημάτωων και δέντρων. Αλγόριθμοι με χρήση τυχαιότητας. Κλάσεις πολυπλοκότητας. Οι κλάσεις P και NP. Προβλήματα πλήρη για την κλάση NP. Αναγωγές. Αναφορά σε ευρετικές τεχνικές και αλγόριθμους προσέγγισης.
Απαιτούμενες Γνώσεις
|   | Αυτή η ενότητα μπορεί να επεκταθεί ή να βελτιωθεί. Πληροφορίες: Χρήσιμες ή απαραίτητες γνώσεις για το μάθημα. Γνώσεις που αναμένεται να αποκτηθούν. Αναφορά σε άλλα σχετικά μαθήματα. | 
Εργαστήρια
Εργασίες
|   | Αυτή η ενότητα μπορεί να επεκταθεί ή να βελτιωθεί. Πληροφορίες: Εργασίες που δίνονται στη διάρκεια του μαθήματος. Περιγραφή, σκοπιμότητα και ύλη που καλύπτει η καθεμιά. Επιρροή στην τελική βαθμολογία. | 
Πρόοδοι
Δεν πραγματοποιούνται πρόοδοι σε αυτό το μάθημα.
Εξετάσεις και Βαθμολογία
Εξετάσεις και τελική βαθμολογία. Τρόπος διεξαγωγής εξετάσεων και υπολογισμού τελικής βαθμολογίας. Ενδιάμεση αξιολόγηση.
Συγγράμματα
-  ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ
-  ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ
-  ΑΛΓΟΡΙΘΜΟΙ
-  ΑΛΓΟΡΙΘΜΟΙ ΣΕ JAVA, ΜΕΡΗ 1-4
Υποστήριξη Μαθήματος
eClass: Το μάθημα βρίσκεται στο eClass με κωδικό ΤΜΑ392.
Σελίδα μαθήματος : http://pericles.ee.duth.gr/courses/2011-12/DS/index.htmlΕπιπρόσθετο Υλικό
Εκπαιδευτικό υλικό για τη γλώσσα Java που καλύπτει τις ανάγκες του μαθήματος δίνεται στα:
- The Java Tutorial, από τη Sun. Μια κλασική, ενημερωμένη πηγή με εκπαιδευτικό υλικό για τη γλώσσα Java.
- Thinking in Java, Bruce Eckel, 3rd Edition (Book Site)
Βιβλιογραφία:
- Αλγόριθμοι, Π. Μποζάνης, Εκδ. ΤΖΙΟΛΑ, 2005
- Data Structures & Algorithms in Java (Second Edition), R. Lafore, SAMS Publishing, 2003 (Ελληνική Έκδοση: Μ. Γκιούρδας).
- Δομές Δεδομένων, Π.Μποζάνης, Εκδ. ΤΖΙΟΛΑ, 2005
- Αλγόριθμοι - Εισαγωγικά θέματα και παραδείγματα, Θ. Παπαθεοδώρου, Καθ. Τμ. Μηχανικών Η/Υ & Πληροφορικής, Εκδόσεις Πανεπιστημίου Πατρών
- Δομές Δεδομένων, Αλγόριθμοι και Εφαρμογές στη C++, S. Sahni, (Μετάφραση: Γ. Θεοδωρίδης και Γ. Μανωλόπουλος για τις Εκδ. ΤΖΙΟΛΑ)
- Προγραμματισμός με Java, Ι. Κάβουρα, Εκδ. Κλειδάριθος, 2003
- Αντικειμενοστραφής προγραμματισμός JAVA, Κλεάνθης Θραμπουλίδης, Τόμος Β', 2η Έκδοση, Εκδόσεις Τζιόλα
- Πλήρες Εγχειρίδιο της Java 2, R. Cadenhead και L. Lemay (Μετάφραση: Εκδ. Κλειδάριθμος)
- Εισαγωγή στην JAVA, Γιώργος Λιακέας, Εκδ. Κλειδάριθμος
- JAVA, ο εύκολος τρόπος, Peter McBride (Μετάφραση: Εκδόσεις ΔΙΑΥΛΟΣ)
- Οδηγός της Java 2, Steven Haines (Μετάφραση: Εκδοτική Β. Γκιούρδας)
- Εισαγωγή στον Προγραμματισμό με C#, M. Michaelis και P. Spokas, (Μετάφραση: Εκδ. Μ. Γκιούρδας, 2001)
- From Java to C# - A Developer's Guide, Heng Ngee Mok, Addisson-Wesley, 2003
- C# for Java Developers, A. Jones and A. Freeman, Microsoft Press, 2003
