ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Εργαστήριο Συστημάτων Υπολογιστών - ΕΣΥ

Τομέας Η&Η/Υ

Εξάμηνο: 7ο

Διδάσκων: Ευθύμιος Χούσος

Ιστοσελίδα Μαθήματος στον Κόμβο του Τμήματος


[Ύλη]     [Εργαστήριο]     [Εργασίες]     [Πληροφορίες/Βοηθητικό Υλικό Μαθήματος]

ΥΛΗ ΜΑΘΗΜΑΤΟΣ

Θεμελιώδεις δομές δεδομένων: Εισαγωγή, Αναπαράσταση των δομών πίνακα, εγγραφής και συνόλου, Ακολουθία, Αναζήτηση. Ταξινόμηση: Εισαγωγή, Ταξινόμηση πινάκων, Εξελιγμένες μέθοδοι ταξινόμησης, Ταξινόμηση ακολουθιών. Αναδρομικοί αλγόριθμοι. Δυναμικές δομές πληροφοριών: Αναδρομικοί τύποι δεδομένων, Δείκτες, Γραμμικές λίστες, Δομές δέντρου, Ισορροπημένα δέντρα, Βέλτιστα δέντρα αναζήτησης. Μετασχηματισμοί κλειδιών (Κατακερματισμός).

[Αρχή]

ΕΡΓΑΣΤΗΡΙΟ

Τα εργαστήρια του μαθήματος θα πραγματοποιούνται στο ΑΠ3 κάθε Τετάρτη 6-8 μ.μ. Σε κάθε φοιτητή παρέχεται λογαριασμός πρόσβασης στους Η/Υ και δικάιωμα χρήσης του περιβάλλοντος ανάπτυξης Dev-C++ (http://www.bloodshed.net/devcpp.html, ΠΡΟΣΟΧΗ: χρησιμοποιείται η πλήρης έκδοση του προγράμματος η οποία έχει ενσωματωμένους τον compiler και debugger και έχει μέγεθος περίπου 13 Mb). Το Dev-C++ έχει εγκατασταθεί κεντρικά στον server του Εργαστηρίου Συστημάτων Υπολογιστών και εκτελείται από εκεί. Ο τρόπος πρόσβασης σε αυτό γίνεται μέσω της δικτυακής διεύθυνσης \\clab-nt\apps\DevCpp, όπου εκτελείται το αρχείο "DevCpp.exe". Ο προσωπικός μόνιμος αποθηκευτικός χώρος κάθε φοιτητή θα βρίσκεται στον server στον κατάλογο \\clab-nt\users\lab\<login-name> όπου <login-name> είναι το login κάθε φοιτητή.
ΠΡΟΣΟΧΗ: Μην αποθηκεύετε αρχεία σε κάθε υπολογιστή αλλά μόνο στον προσωπικό σας χώρο, καθώς αυτά είναι προσωρινά και μπορεί να χαθούν.
Οι φοιτητές πρέπει να συμμορφώνονται με τους κανονισμούς του Εργαστηρίου.

Για την ύλη που παρουσιάζεται στο εργαστήριο οι φοιτητές μπορούν να ανατρέξουν στα:

  • Κ. Θραμπουλίδης: Διαδικαστικός Προγραμματισμός C: Από τη C στη Java (Τόμος Α, Δεύτερη έκδοση) 
    ΚΕΦ 9 (Δομές)
    ΚΕΦ10 (Είσοδος - Έξοδος)

  • Β. W. Kernighan, D. M. Ritchie: Η Γλώσσα προγραμματισμού C, Δεύτερη έκδοση 
    Κεφ 6 (Δομές) 
    Κεφ 7 (Είσοδος και Έξοδος)

  • Κ. Θραμπουλίδης: Από τη C στη Java: Από τον διαδικαστικό στον object-oriented προγραμματισμό, Πρώτη έκδοση 
    [Σημείωση: Στην δεύτερη δίτομη έκδοση, τα συγκεκριμένα θέματα καλύπτονται εκτενέστερα] 
    ΚΕΦ 9 (Δομές) 
    ΚΕΦ10 (Είσοδος - Έξοδος)

Εξέταση Εργαστηρίου / Τελική Παρουσίαση:

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

Για την εξέταση του εργαστηρίου θα πρέπει ο κάθε φοιτητής, δύο τουλάχιστον μέρες πριν την εξέταση, να στείλει e-mail που να περιέχει τα εξής:

 - Τον πηγαίο κώδικα
 - Εκτελέσιμο από το συγκεκριμένο κώδικα
 - Τεχνική αναφορά [το πολύ 6 σελίδες, χωρίς τον πηγαίο κώδικα]

Ο πηγαίος κώδικας θα πρέπει να είναι ευανάγνωστος, όπως διδάσκεται στο μάθημα 4ου εξαμήνου, "Αρχές & Γλώσσες Προγραμματισμού", και να περιλαμβάνει τουλάχιστον τα απαραίτητα σχόλια. 
Η αναφορά θα πρέπει να περιλαμβάνει:

 - Αναλυτική περιγραφή των δομών που χρησιμοποιήθηκαν και αιτιολόγηση (γιατί χρησιμοποιήθηκε αυτή και όχι κάποια άλλη)
 - Σύντομη λειτουργική περιγραφή του προγράμματος (αν κρίνεται απαραίτητο)

[Αρχή]

ΕΡΓΑΣΙΕΣ

Project 2011

Example of a file with cards to delete

Examples of files with visits

 

[Αρχή]

ΠΛΗΡΟΦΟΡΙΕΣ / ΒΟΗΘΗΤΙΚΟ ΥΛΙΚΟ ΜΑΘΗΜΑΤΟΣ

Για απορίες ή πληροφορίες σχετικά με το εργαστήριο μπορείτε να απευθείνεστε στους μεταπτυχιακούς φοιτητές Κολώνια Βασίλη (bakoloni@ece.upatras.gr) και Γκόγκο Χρήστο (cgogos@ece.upatras.gr) . Για απορίες σχετικές με το μάθημα στον Καθηγητή Χούσο Ευθύμιο (housos@ece.upatras.gr).

Βοηθητικό Υλικό:

Παραδείγματα που Παρουσιάστηκαν στα Εργαστήρια

Ergasthria 2011
Ergasthrio 9/3/11 (Updated)

Ergasthria 2011
Ergasthrio 2/3/11 (Updated)

Εργαστήρια 2009
Παραδείγματα

Εργαστήριο 15/10/08
Pointer Examples

Εργαστήριο 24/10/07
Input/Output Routines

Εργαστήριο 31/10/07
Memory Allocation Routines

Εργαστήριο 07/11/07
List Example
Hash Example

Επιπλέον Βοηθητικό Υλικό

Παραδείγματα λειτουργίας Δομών-Αλγορίθμων (Java Applets)

http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm
http://www.site.uottawa.ca/~stan/csi2514/applets/avl/BT.html
http://www.cs.brockport.edu/cs/javasort.html
http://www.cs.wpi.edu/~cs2005/e00/handouts/sorting/sorting.html
http://ciips.ee.uwa.edu.au/%7Emorris/Year2/PLDS210/Java/q_sort/tqs_new.html 

Προτεινόμενα Βιβλία

http://algorithmdesign.net/
Fundamentals of Data Structures in C, E. Horowitz, S. Sahni, S. Anderson-Freed
Data Structures Using C and C++, Y. Langsam, M. Augenstein, A. Tenenbaum

Σχετικά Links

http://www.williamstallings.com/StudentSupport.html

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm

[Αρχή]

Εργαστήριο Συστημάτων Υπολογιστών, © 2002-2006