ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ Δ.Π.Θ. ΤΜΗΜΑ Μηχανικών Παραγωγής & Διοίκησης ΕΞΑΜΗΝΟ Δ’ Φεβρουάριος – Ιούνιος 2013 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ ΩΡΕΣ : ΘΕΩΡΙΑ (2) & ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ (1) ΤΡΙΤΗ 10:00 – 13:00 ΔΙΔΑΣΚΩΝ Στέφανος Δ. Κατσαβούνης, Επίκουρος Καθηγητής e-mail : skatsav@pme.duth.gr ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΕΞΑΜΗΝΟΥ 1 19/2/2013 2 26/2/2013 3 5/3/2013 4 12/3/2013 5 19/3/2013 6 26/3/2013 7 2/4/2013 8 9/4/2013 9 16/4/2013 10 23/4/2013 30/4/2013 7/5/2013 11 14/5/2013 12 21/5/2013 13 28/5/2013 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΛΗΣ 1Η ΕΝΟΤΗΤΑ εισαγωγή – βασικές έννοιες ιδιότητες αλγορίθμων επιλυσιμότητα – ιστορική αναδρομή υπολογισιμότητα – πολυπλοκότητα – ανάλυση πολυπλοκότητας - παραδείγματα κατηγορίες προβλημάτων ευρετικοί αλγόριθμοι - παραδείγματα ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Ταξινόμηση : insertion – bubble – selection – shell – merge 2Η ΕΝΟΤΗΤΑ Γραμμικές δομές δεδομένων (πίνακες, στοίβες, λίστες, ουρές) – θεμελιώδεις λειτουργίες Δυαδική αναζήτηση Ταξινόμηση : insertion – bubble – selection – shell – merge Αναδρομικότητα Υλοποίηση σε γλώσσα C ή C++ ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
δυαδικά δένδρα & Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) πυκνότητα 3Η ΕΝΟΤΗΤΑ Δένδρα - ορισμοί δυαδικά δένδρα & Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) πυκνότητα αλγόριθμοι ανίχνευσης ΔΔ διάσχιση εισαγωγή – εύρεση – διαγραφή στοιχείου αφηρημένοι τύποι δεδομένων Υλοποίηση σε γλώσσα C ή C++ ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Κατακερματισμός (hashing) Υλοποίηση σε γλώσσα C ή C++ 4Η ΕΝΟΤΗΤΑ Κατακερματισμός (hashing) Υλοποίηση σε γλώσσα C ή C++ ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
5Η ΕΝΟΤΗΤΑ Θεωρία γραφημάτων : ορισμοί και βασικές έννοιες Βασικοί αλγόριθμοι : Minimum Spanning trees – αλγόριθμοι Prim, Dijksta, Kruskal Διάσχιση γραφήματος : αλγόριθμοι Breadth First (BFS), Depth First (DFS) Ροές σε δίκτυα : αλγόριθμος Ford – Fulkerson Σωροί (heaps) - διαχείριση Μοντελοποίηση προβλημάτων – μελέτη περιπτώσεων Υλοποίηση σε γλώσσα C ή C++ ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
6Η ΕΝΟΤΗΤΑ Δομές αρχείων Βασικές έννοιες Σειριακά – σχετικά – ταξινομημένα αρχεία Αρχεία με κατάλογο Αρχεία άμεσης προσπέλασης Επεκτατός κατακερματισμός B - δένδρα, Β+ - δένδρα ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΥΠΟΧΡΕΩΣΕΙΣ ΦΟΙΤΗΤΩΝ - ΦΟΙΤΗΤΡΙΩΝ Το εργαστηριακό μάθημα περιλαμβάνει ασκήσεις και υλοποίηση αλγορίθμων, σε γλώσσα C ή C++ . Οι αλγόριθμοι θα αναζητούνται στο διαδίκτυο ή δίνονται έτοιμοι (κώδικας σε C ή σε C++) και θα απαιτείται η προσαρμογή τους. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΤΡΟΠΟΣ ΒΑΘΜΟΛΟΓΗΣΗΣ ΒΑΘΜΟΣ ΓΡΑΠΤΗΣ ΕΞΕΤΑΣΗΣ – ΣΥΜΜΕΤΟΧΗ ΣΤΟΝ ΤΕΛΙΚΟ ΒΑΘΜΟ 100% ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
ΔΙΔΑΚΤΙΚΟ ΥΛΙΚΟ ΔΙΑΦΑΝΕΙΕΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΦΥΛΛΑΔΙΑ ασκήσεων ΗΛΕΚΤΡΟΝΙΚΟ ΥΛΙΚΟ (e-books, web-sites) ΒΙΒΛΙΟ ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Γενικές παρατηρήσεις Αν και η επιτυχία ή η αποτυχία σε πολλές προσπάθειες ενός μηχανικού είναι πιθανόν να αποδοθεί στην «τύχη», τη «μοίρα» ή ακόμη και στο «πεπρωμένο» η επιστήμη του μηχανικού, σε συντριπτικό ποσοστό δεν βασίζεται σε αυτούς τους παράγοντες. Προφανώς η πιο σπουδαία άποψη σχετικά με την επιστήμη των μηχανικών είναι ότι ο μηχανικός μπορεί με συστηματική και προβλέψιμη προσπάθεια να φθάσει σύντομα σε εφικτές, αποτελεσματικές και χωρίς υπερβολικό κόστος λύσεις σε συνήθη ή εξειδικευμένα προβλήματα. Η τύχη είναι πιθανόν να διαδραματίσει το ρόλο της σε πολλές προσπάθειες ενός μηχανικού, αλλά οι περισσότεροι μηχανικοί προτιμούν να σκέφτονται ότι έχουν κατά κύριο λόγο τον έλεγχο των αποτελεσμάτων που παράγει κάθε αξιόλογη προσπάθεια. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Οι πλέον αξιόλογες τεχνικές που εφαρμόζει ένας μηχανικός είναι εκείνες που μπορούν να : περιγραφούν τόσο ποσοτικά όσο και ποιοτικά, χρησιμοποιηθούν επαναληπτικά και να παράγουν κάθε φορά παρόμοια αποτελέσματα, διδαχθούν σε άλλους σε σχετικά μικρό χρονικό διάστημα, εφαρμοστούν από άλλους με σημαντικό ποσοστό επιτυχίας, παράγουν για ένα συγκεκριμένο πρόβλημα αξιόλογα και συνεπή με την πραγματικότητα καλύτερα αποτελέσματα από άλλες τεχνικές, είναι εφαρμόσιμες σε σχετικά μεγάλο ποσοστό συναφών περιπτώσεων ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Οι πραγματικοί μηχανικοί δεν είναι θαυματοποιοί Οι πραγματικοί μηχανικοί δεν είναι θαυματοποιοί. Αν ένας καλός μηχανικός ανακαλύψει έναν εμφανώς καλύτερο τρόπο αντιμετώπισης ενός προβλήματος θα πρέπει να προσπαθήσει να ενημερώσει τους υπόλοιπους για τη μέθοδό του. Οι θαυματοποιοί πρέπει λόγω της φύσης της δουλειάς τους να περιβάλλουν τις τεχνικές τους με μυστήριο. Ένας καλός μηχανικός δεν είναι μάγος ούτε δάσκαλος απόκρυφης σοφίας. Ένας καλός μηχανικός ίσως πρέπει να είναι «ταλαντούχος," «γενναιόδωρος," ή «διαισθητικός," αλλά σε κάθε περίπτωση, ένας καλός μηχανικός πρέπει να μπορεί, απλά και αποτελεσματικά να μεταδίδει τις τεχνικές που χρησιμοποιεί για να απολαμβάνει μεγαλύτερο μερίδιο των επιτυχιών. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00
Οι μηχανικοί διαφέρουν από τους επιστήμονες Οι μηχανικοί διαφέρουν από τους επιστήμονες. Χρησιμοποιούν τη φυσική, τα μαθηματικά και άλλες επιστημονικές περιοχές (ανάλυση σφαλμάτων, διοίκηση, εκτίμηση κινδύνων) καθώς και εξαιρετικές επικοινωνιακές ικανότητες για να αναπτύξουν εφικτές, αποτελεσματικές και χωρίς υπερβολικό κόστος λύσεις σε συνήθη ή εξειδικευμένα προβλήματα. Ένας επιστήμονας συχνά δεν είναι μηχανικός, αλλά ένας μηχανικός πρέπει να θεμελιώνει τη γνώση του στην επιστήμη. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 00