Γενικές Πληροφορίες

Γενικά

Διδάσκουσα: Παναγιώτα Φατούρου
Γραφείο: 215 (Λευκά Κτίρια Α´ όροφος)
Ώρες Γραφείου: Τετάρτη: 11:00-13:00, Πέμπτη: 15:00 – 17:00
Ηλεκτρονική Διεύθυνση:
Τηλέφωνο: +30 2810 393549
Βοηθοί Μαθήματος: Κοσμάς Ελευθέριος, Ρίζου Χριστίνα, Τουρλάκης Παναγιώτης, Ψαράκη Μαρία, Δημητράκης Μάνος
Γραφείο Βοηθών: Εργαστήριο Μεταπτυχιακών, Υπόγειο Λευκών Κτιρίων
Ώρες Γραφείου Βοηθών: Δευτέρα, 18:00-19:00 (οι ώρες γραφείου των βοηθών θα πραγματοποιούνται μόνο όταν ζητείται από τους φοιτητές μέσω ηλεκτρονικού μηνύματος στο λογαριασμό του μαθήματος).
Ηλεκτρονική Διεύθυνση Μαθήματος:

Ώρες και Αίθουσες Διδασκαλίας

Τετάρτη, 15:00-17:00, στο αμφιθέατρο Γ. Πέμπτη, 17:00-19:00, στο αμφιθέατρο Γ.

Ώρες και Αίθουσα Φροντιστηρίου-Εργαστηρίου

Δευτέρα, 19:00-21:00, στην αίθουσα Λ202.

Σύνοψη Μαθήματος

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

Βιβλία

Το μάθημα θα βασιστεί σε περισσότερα από ένα βιβλία (και κυρίως στα ξενόγλωσσα βιβλία που αναφέρονται στην παραπάνω λίστα). Οποιοδήποτε από τα παραπάνω βιβλία καλύπτει το σημαντικότερο μέρος της ύλης που θα διδαχθεί. Για την επιτυχή διεκπεραίωση του μαθήματος, οι φοιτητές θα πρέπει να βασιστούν και στις διαφάνειες του μαθήματος, καθώς και σε οποιοδήποτε άλλο υλικό μοιρασθεί κατά τη διάρκεια αυτού.

Πρόγραμμα

Εβδομάδα Θέμα
Εισαγωγή - Βασικές έννοιες αλγορίθμων και δομών δεδομένων
Χρονικές Πολυπλοκότητες - Επιμερισμένο Κόστος, Απλά παραδείγματα αναδρομικών σχέσεων - Πίνακες
Βασικές Δομές Δεδομένων: Λίστες, Στοίβες, Ουρές
Λίστες
Δένδρα
Δένδρα
Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών
Κατακερματισμός
Κατακερματισμός - Σύνολα που υποστηρίζουν ειδικές λειτουργίες
10η Ουρές Προτεραιότητας - Γράφοι
11η Γράφοι
12η Ταξινόμηση
13η Τεχνικές Σχεδίασης Αλγορίθμων

Εργασίες και Βαθμολόγηση

Κατά τη διάρκεια του εξαμήνου θα δοθούν πέντε σειρές θεωρητικών ασκήσεων και μια προγραμματιστική εργασία. Κάθε άσκηση θα πρέπει να επιστρέφεται πριν από την αναγραφόμενη ημερομηνία και ώρα προκειμένου να μπορεί να βαθμολογηθεί με άριστα. Αν η παράδοση της άσκησης γίνει μέχρι και δύο 24ωρα μετά την προθεσμία, η εργασία βαθμολογείται με μείωση βαθμού κατά 1.0/10.0 μονάδα για κάθε μέρα καθυστέρησης. Μεγαλύτερη παράταση στην παράδοση ασκήσεων δεν μπορεί να δοθεί γιατί οι ασκήσεις θα λύνονται μετά την παράδοσή τους. Πολύ καλές ασκήσεις μπορεί να βαθμολογηθούν με βαθμό μεγαλύτερο του 10.

Η προγραμματιστική εργασία θα είναι χωρισμένη σε τρία μέρη με διαφορετική ημερομηνία παράδοσης το καθένα. Το κάθε μέρος θα πρέπει να παραδοθεί πριν από την αναγραφόμενη ημερομηνία και ώρα. Για τη βαθμολόγηση μερών της εργασίας που παραδίδονται καθυστερημένα ισχύει ο αλγόριθμος που περιγράφεται παραπάνω για τις θεωρητικές ασκήσεις. Για τα μέρη της προγραμματιστικής εργασίας θα υπάρχει προφορική εξέταση. Κατά τη διάρκεια της προφορικής εξέτασης, οι φοιτητές θα λαμβάνουν σχόλια βάσει των οποίων οι φοιτητές θα μπορούν να βελτιώνουν το συγκεκριμένο μέρος της εργασίας τους (δηλαδή κάθε φοιτητής έχει δικαίωμα να βελτιώσει οποιοδήποτε μέρος της εργασίας του μετά την λήξη της προθεσμίας παράδοσης αυτού και να συμπεριλάβει τη βελτιωμένη έκδοση στο επόμενο μέρος της εργασίας). Ο βαθμός των διαφόρων μερών της εργασίας θα αποφασιστεί μετά την παράδοση και του τελευταίου μέρους (και θα ληφθούν υπόψη για κάθε μέρος και οι βελτιώσεις που έχουν γίνει εκ των υστέρων). Ο βαθμός κάθε μέρους θα καθοριστεί ως εξής:

30% * Β1 + 70% * Β2, όπου Β1 είναι ο βαθμός με τον οποίο βαθμολογήθηκε ένα μέρος κατά την προφορική του εξέταση και Β2 είναι ο βαθμός με τον οποίο βαθμολογήθηκε το ίδιο μέρος της εργασίας μετά τις όποιες βελτιώσεις παραδόθηκαν με την τελική παράδοση της εργασίας).

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

Ο προγραμματισμός, όπως και η έκθεση, είναι μια ιδιαίτερη ατομική εργασία. Κάθε φοιτητής πρέπει ατομικά να κατανοήσει το πρόβλημα και να σκιαγραφήσει μια πιθανή λύση του (αν και μπορεί να ρωτάει τους βοηθούς του μαθήματος για τις απορίες του ή για προβλήματα στη μετάφραση του κώδικά του). Είναι επίσης σημαντικό ο κώδικάς του να είναι ευανάγνωστος. Η βαθμολογία στα προγράμματα θα αντικατοπτρίζει την πληρότητα και την ορθότητα, αλλά και τα συνοδεύοντα σχόλια. Οι αντιγραφές και οι στενές συνεργασίες απαγορεύονται αυστηρά και θα τιμωρούνται με μείωση ή μηδένιση βαθμού. Είναι καλύτερα να παραδοθεί μια ημιτελής άσκηση παρά μια παραλλαγμένη αντιγραφή. Οι φοιτητές μπορούν ωστόσο να απασχολούν τους βοηθούς του μαθήματος και τη διδάσκουσα στις ώρες γραφείου τους για τις απορίες τους.

Οι φοιτητές μπορούν να χρησιμοποιήσουν οποιονδήποτε υπολογιστή για τα προγραμματιστικά τους καθήκοντα. Για τη βαθμολόγηση των εργασιών τους όμως, το πρόγραμμα θα δοκιμάζεται στα μηχανήματα κάποιου εργαστηρίου του Τμήματος. Σε αυτούς τους σταθμούς εργασίας εκτελείται το λειτουργικό σύστημα unix. Επομένως, όσοι από τους φοιτητές επιθυμούν να εργαστούν σε άλλα μηχανήματα θα πρέπει να σιγουρευτούν ότι ο κώδικας τους τρέχει σωστά και στα παραπάνω μηχανήματα.

Οι φοιτητές είναι υπεύθυνοι για την κακή χρήση του λογαριασμού τους. Το password τους θα πρέπει να παραμείνει μυστικό και ο λογαριασμός τους να χρησιμοποιείται μόνο από αυτούς. Θα πρέπει τέλος να φροντίζουν η προστασία του καταλόγου στον οποίο βρίσκονται τα προγράμματά τους να μην επιτρέπει ανάγνωση (ή εγγραφή) από άλλους (η εντολή chmod είναι πολύ χρήσιμη).

Στην τελική εξέταση επιτρέπεται στους φοιτητές να έχουν μαζί τους το βιβλίο και τις διαφάνειες του μαθήματος (δεμένες ως ένα ενιαίο πακέτο). Άλλου είδους χαρτιά και σημειώσεις απαγορεύονται. Επίσης, στην τελική εξέταση απαγορεύεται η χρήση κινητού τηλεφώνου και θα πρέπει όλοι οι εξεταζόμενοι φοιτητές να έχουν μαζί τους το πάσο ή την ταυτότητα ή το δίπλωμα οδήγησης ή το διαβατήριο τους ή οποιοδήποτε άλλο αναγνωριστικό.

Ο τελικός βαθμός θα εξαρτηθεί τόσο από τη βαθμολογία των ασκήσεων και των εργασιών, όσο και από την επίδοση των φοιτητών στην τελική εξέταση, ως εξής:


Σειρές Ασκήσεων: 15%
Εργασία: 20%
Τελική Εξέταση: 65%

Προκειμένου ένας φοιτητής να περάσει το μάθημα πρέπει να γράψει τουλάχιστον 4 στο τελικό διαγώνισμα, ανεξάρτητα από το πόσο καλές είναι οι ασκήσεις που έχει παραδώσει.

Ο ίδιος αλγόριθμος για την διεξαγωγή της βαθμολογίας ισχύει και στην εξέταση του Σεπτεμβρίου.

Λίστα Ηλεκτρονικού Ταχυδρομείου & Λογαριασμός Μαθήματος

Για το μάθημα υπάρχει e-mailing λίστα η οποία θα χρησιμοποιείται για την αποστολή e-mail σε όλους τους φοιτητές που έχουν δηλώσει το μάθημα. Για την εγγραφή στη λίστα απαιτείται η αποστολή ενός ηλεκτρονικού μηνύματος (e-mail) στη διεύθυνση:

με κενό θέμα και σώμα:

Η εγγραφή στη λίστα είναι υποχρεωτική. Όποιος φοιτητής δεν εγγραφεί στη λίστα, δεν θα λαμβάνει τα e-mails που αποστέλλονται και δεν θα γνωρίζει σημαντικά θέματα που αφορούν το μάθημα. Το e-mail address της λίστας είναι:

Όλα τα e-mails προς αυτή τη διεύθυνση θα λαμβάνονται από όλους τους φοιτητές που έχουν εγγραφεί στη λίστα. Οι φοιτητές υποχρεούνται να εξετάζουν καθημερινά το e-mail τους ώστε να ενημερώνονται έγκαιρα για τα μηνύματα που αποστέλλονται στη λίστα. Οι φοιτητές υποχρεούνται να εγγραφούν στη λίστα μέχρι τις 10/10.

Για το μάθημα υπάρχει επίσης λογαριασμός στον οποίο οι φοιτητές μπορούν να στέλνουν ηλεκτρονικά μηνύματα με τις απορίες τους. Η ηλεκτρονική διεύθυνση του λογαριασμού είναι:

Παρακολούθηση

Η παρακολούθηση στις διαλέξεις αναμένεται, αλλά δεν είναι υποχρεωτική. Ωστόσο, οι φοιτητές θα πρέπει να γνωρίζουν κατά την τελική εξέταση οτιδήποτε παρουσιάζεται ή αναφέρεται στις παραδόσεις. Κάποιο ποσοστό της ύλης δεν περιέχεται στην ελληνική βιβλιογραφία ή παρουσιάζεται με άλλη σειρά, για αυτό η παρακολούθηση συνίσταται ισχυρά.

Προαπαιτούμενα

Τα μαθήματα που είναι προαπαιτούμενα για τη δήλωση του μαθήματος ΗΥ240 είναι το ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών και το ΗΥ-150: Προγραμματισμός. Είναι επίσης καλό οι φοιτητές να έχουν διεκπεραιώσει επιτυχώς το μάθημα ΗΥ-118: Διακριτά Μαθηματικά. Οι φοιτητές που δεν έχουν διεκπεραιώσει επιτυχώς τα μαθήματα αυτά δεν έχουν το υπόβαθρο που απαιτείται για να επιτύχουν στο μάθημα.

Άλλη σχετική βιβλιογραφία