ΜΥΥ 205/ΠΛΥ212 – Τεχνικές Αντικειμενοστραφούς Προγραμματισμού

Εαρινό Εξάμηνο, 2014

 

Αρχική

Διδακτέα Ύλη

Ασκήσεις

Ασκήσεις – Εργαστήρια

 

Οδηγίες για σύνδεση με τα συστήματα της σχολής από το Windows-based PC σας (τερματικό και μεταφορά αρχείων):

·         Κατεβάστε το πρόγραμμα SSH SFTP Secure Shell Client 3.2.9 (για αρχεία εγκατάστασης πατήστε εδώ)

·          Εγκαταστήστε το πρόγραμμα

·         Κατά την εκτέλεση του προγράμματος επιλέξτε "Quick Connect"

·          Host Name: scylla.cs.uoi.gr, User Name: το login του λογαριασμού σας

·         Όταν σας ζητήσει Password: τον προσωπικό κωδικό σας

·         Στο τερματικό εμφανίζεται μήνυμα που σας λέει σε ποια συστήματα των εργαστήριων προγραμματισμού μπορείτε να συνδεθείτε στη συνέχεια

·         π.χ.  δίνοντας στο τερματικό τις εντολές: "ssh hp6000ws03" ή "ssh ultra20ws07"

·         Στο μενού Window, μπορείτε να ανοίξετε επιπλέον τερματικά (New Terminal) ή παράθυρα μεταφοράς αρχείων (New File Transfer)

·         Εναλλακτικό πρόγραμμα σύνδεσης: PuTTY: A Free Telnet/SSH Client  (για αρχεία εγκατάστασης πατήστε εδώ).

·         Συχνό Πρόβλημα: Χρήση ελληνικών χαρακτήρων μέσα σε κάποιο αρχείο μπορεί να προκαλέσει πρόβλημα στο turnin γιατί διαβάζονται ως binary. Χρησιμοποιήστε greeklish.

Επίσης χρήσιμες οδηγίες για τη μεταφορά αρχείων μπορείτε να βρείτε στη σελίδα που ετοίμασε ο Γιώργος Ζάχος

 

Τρίτη Σειρά Ασκήσεων

Μπορείτε να κατεβάσετε την εκφώνηση της τρίτης σειράς ασκήσεων εδώ. Η σειρά αυτή έχει δύο τύπους ασκήσεων: κανονικές και bonus. Η προθεσμία παράδοσης για τις κανονικές ασκήσεις είναι Δευτέρα 2 Ιουνίου πριν τις 3 μ.μ.. Για τις bonus ασκήσεις η προθεσμία είναι στις 17/6 πριν τις 6:00 μ.μ. Οι ασκήσεις είναι ατομικές.

Το αρχείο για την δεύτερη άσκηση μπορείτε να το κατεβάσετε από εδώ.

Θα παραδώσετε τα αρχεία σας ηλεκτρονικά. Για τις κανονικές ασκήσεις θα κάνετε turnin στο assignment3@ply212. Για τις bonus ερωτήσεις θα κάνετε turnin στο bonus@ply212. Μην ξεχάσετε να βάλετε το όνομα σας και τον ΑΜ σε σχόλια στον κώδικα σας (σε greeklish). Επειδή το turnin εκτός πανεπιστημίου μπορεί να είναι προβληματικό, βεβαιωθείτε ότι μπορείτε να κάνετε turnin πριν από την προθεσμία. Η παράδοση των ασκήσεων πρέπει να γίνει ηλεκτρονικά.

 

Δεύτερη Σειρά Ασκήσεων

Μπορείτε να κατεβάσετε την εκφώνηση της δεύτερης σειράς ασκήσεων εδώ. Η προθεσμία παράδοσης είναι Δευτέρα 12 Μαΐου πριν το μάθημα. Οι ασκήσεις είναι ατομικές.

Ένα παράδειγμα της SortedListTest είναι εδώ. Ο κώδικας που θα χρησιμοποιήσουμε για να σας εξετάσουμε μπορεί να είναι διαφορετικός (και κατά πάσα πιθανότητα πιο περίπλοκος). Επίσης εδώ είναι η βάση για την κλάση Person (τα πεδία και ο constructor). Μπορείτε (και πρέπει) να προσθέσετε επιπλέον μεθόδους αλλά δεν πρέπει να προσθέσετε επιπλέον πεδία.

Διαφάνειες που δείχνουν πως θα πρέπει να γίνει η δημιουργία του λαβύρινθου εδώ. Θα βοηθήσει να δείτε και το animation των διαφανειών.

Θα παραδώσετε τα αρχεία σας ηλεκτρονικά κάνοντας turnin στο assignment2@ply212. Π.χ.,

turnin assignment2@ply212 SortedPersonList.java

για να κάνετε turnin το αρχείο για την πρώτη ερώτηση. Μην ξεχάσετε να βάλετε το όνομα σας και τον ΑΜ σε σχόλια στον κώδικα σας (σε greeklish). Επειδή το turnin εκτός πανεπιστημίου μπορεί να είναι προβληματικό, βεβαιωθείτε ότι μπορείτε να κάνετε turnin πριν από την προθεσμία. Η παράδοση των ασκήσεων πρέπει να γίνει ηλεκτρονικά.

 

Πρώτη Σειρά Ασκήσεων

Μπορείτε να κατεβάσετε την εκφώνηση της πρώτης σειράς ασκήσεων εδώ. Η προθεσμία παράδοσης είναι Παρασκευή 4 Απριλίου 11:59 μ.μ. Οι ασκήσεις είναι ατομικές.

Ένα παράδειγμα της TestSortedArray είναι εδώ. Ο κώδικας που θα χρησιμοποιήσουμε για να σας εξετάσουμε μπορεί να είναι διαφορετικός (και κατά πάσα πιθανότητα πιο περίπλοκος).

Θα παραδώσετε τα αρχεία σας ηλεκτρονικά κάνοντας turnin στο assignment1@ply212. Π.χ.,

turnin assignment1@ply212 SortedArray.java

για να κάνετε turnin το αρχείο για την πρώτη άσκηση. Μην ξεχάσετε να βάλετε το όνομα σας και τον ΑΜ σε σχόλια στον κώδικα σας (σε greeklish). Επειδή το turnin εκτός πανεπιστημίου μπορεί να είναι προβληματικό, βεβαιωθείτε ότι μπορείτε να κάνετε turnin πριν από την προθεσμία.

Διευκρινήσεις για την πρώτη ερώτηση:

·         Για να πάρετε όλους τους βαθμούς, η μέθοδος insert θα πρέπει να τοποθετεί το στοιχείο στην κατάλληλη θέση χωρίς να καλείτε μία μέθοδο sort που ταξινομεί όλο τον πίνακα.

·         Η καλύτερη λύση για τις containsElement, insert και delete χρησιμοποιεί την μέθοδο find. Γενικά είναι καλό να αποφεύγετε την επανάληψη κώδικα.

·         Όπου αναφερόμαστε στα στοιχεία του πίνακα εννοούμε τα στοιχεία που έχετε προσθέσει (μείον αυτά που έχετε αφαιρέσει) εσείς στον πίνακα. Ο αριθμός των στοιχείων και η χωρητικότητα είναι διαφορετικά πράγματα.

·         Ανεξάρτητα από τη χωρητικότητα, ο αρχικός αριθμός των στοιχείων όταν δημιουργείται ο πίνακας θα πρέπει να είναι μηδενικός. Η αρχικοποίηση των θέσεων του πίνακα δεν θα πρέπει να κάνει διαφορά στην υλοποίηση σας. Θα πρέπει να μπορείτε να αποθηκεύετε και αρνητικά στοιχεία και το στοιχείο μηδέν.

·         Θα παραδώσετε μόνο την κλάση SortedArray. Δεν χρειάζεται να έχει μέθοδο main αλλά αν την έχετε δημιουργήσει για να τεστάρετε την κλάση σας μπορείτε να την παραδώσετε. Εμείς θα δημιουργήσουμε μια δικιά μας κλάση που θα δημιουργεί ένα αντικείμενο SortedArray της κλάσης σας και θα εξετάζει διάφορες περιπτώσεις (περισσότερες από το παράδειγμα που έχουμε στη σελίδα του μαθήματος).

·         Δώστε σωστά ονόματα στις μεταβλητές και τις μεθόδους, σύμφωνα με τις συμβάσεις, και φροντίστε ο κώδικα σας να είναι απλός και σωστά δομημένος. Βαθμολογείται και η ποιότητα του κώδικα.