|
ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός
Συμβόλαιο Μαθήματος
|
'Ανοιξη 2010 |
Ευρετήριο
ΕΠΛ233 | Συμβόλαιο | Πρόγραμμα Μαθημάτων | Χρήσιμο Υλικό | Ανακοινώσεις | Ιστολόγιο | Blackboard
| Τίτλος μαθήματος |
Αντικειμενοστρεφής Προγραμματισμός |
| Κωδικός |
233 |
| Πιστωτικές Μονάδες |
7,5 |
| Εξάμηνο |
Εαρινό |
| Διαλέξεις |
Τρίτη, Παρασκευή, 10:30-12:00
ΧΩΔ01, 006 |
| Εργαστήριο |
Παρασκευή, 13:30-15:00, 15:00-16:30,
ΘΕΕ01, Β121 |
| Διδάσκων |
Μάριος Δικαιάκος |
Γενική Περιγραφή
Το μάθημα αυτό αποτελεί μιαν εισαγωγή στον αντικειμενοστρεφή προγραμματισμό και στη χρήση της αντικειμενοστρεφούς μεθοδολογίας για την επίλυση υπολογιστικών προβλημάτων. Κύριος στόχος του μαθήματος είναι η διδασκαλία των αρχών του αντικειμενοστρεφούς προγραμματισμού και η εφαρμογή των με χρήση της γλώσσας προγραμματισμού JAVA. Θεωρείται δεδομένη η καλή γνώση διαδικασιακού προγραμματισμού και δομών δεδομένων.
Μαθησιακοί Στόχοι
Ένας φοιτητής που ολοκληρώνει επιτυχώς το μάθημα θα πρέπει:
- Να γνωρίζει και να κατανοεί τις θεμελειώδεις αρχές αντικειμενοστρεφούς προγραμματισμού και την υλοποίησή τους στη γλώσσα προγραμματισμού JAVA.
- Να μπορεί να επινοήσει αντικειμενοστρεφείς λύσεις σε υπολογιστικά προβλήματα περιγεγραμμένα σε φυσική γλώσσα, χρησιμοποιώντας τεχνικές αντικειμενοστρεφούς σχεδιασμού. Να μπορεί να περιγράψει το σχέδιο της λύσης ενός προβλήματος με αντικειμενοστρεφή τρόπο, κάνοντας χρήση διαγραμμάτων UML.
- Να έχει εξοικειωθεί με το συντακτικό, την σημασιολογία και τα εγχειρίδια του API της JAVA και να έχει τη δυνατότητα επίλυσης ενός προβλήματος με τη JAVA.
- Να διαθέτει ευχέρεια ανάπτυξης, τεκμηρίωσης, ελέγχου και αποσφαλμάτωσης προγραμμάτων JAVA για την αποδοτική υλοποίηση αλγορίθμων. Να διαθέτει δεξιότητες επίλυσης πολύπλοκων υπολογιστικών προβλημάτων με χρήση του αντικειμενοστρεφούς προγραμματισμού.
- Να είναι εξοικειωμένος με τη χρήση του περιβάλλοντος ανάπτυξης Eclipse.
- Να μπορεί να επικοινωνήσει με αποτελεσματικό τρόπο τα πορίσματα της εργασίας του (αντικειμενοστρεφή σχέδια, προγράμματα JAVA) σε άλλους προγραμματιστές.
Προαπαιτούμενα Μαθήματα
- ΕΠΛ132 (Αρχές Προγραμματισμού ΙΙ)
- ΕΠΛ231 (Δομές Δεδομένων και Αλγόριθμοι)
Τρόπος Διδασκαλίας
Το μάθημα καλύπτει θεωρία και πρακτική και αποτελείται από 180 λεπτά διαλέξεων και 90 λεπτά εργαστηρίου εβδομαδιαίως. Οι φοιτητές θα εξοικειωθούν με το αντικείμενο του μαθήματος μέσω εργαστηριακών ασκήσεων και εργασιών. Ο προγραμματισμός ως διανοητική δραστηριότητα και επιδεξιότητα δεν διδάσκεται αλλά καλλιεργείται μέσω επίπονης εξάσκησης. Για τον λόγο αυτό οι φοιτητές πρέπει να δώσουν μεγάλη έμφαση στις εβδομαδιαίες προγραμματιστικές εργασίες, οι οποίες θα συμβάλλουν στην κατανόηση της διδακτέας ύλης και στην εξοικείωση με την γλώσσα προγραμματισμού JAVA.
Αξιολόγηση και Βαθμολογία
Οι επίτευξη των μαθησιακών στόχων του μαθήματος θα αξιολογηθούν με βάση ένα σύνολο εβδομαδιαίων εργασιών και δύο γρατπές εξετάσεις, την ενδιάμεση και την τελική. Οι γραπτές εξετάσεις θα επικεντρωθούν στην αξιολόγηση των μαθησιακών στόχων 1, 2, 3 και 6, ενώ οι εργασίες αποσκοπούν στην αξιολόγηση των στόχων 2, 3, 4, 5, και 6.
Ο τελικός βαθμός διαμορφώνεται με βάση τα ακόλουθα ποσοστά:
Εβδομαδιαίες Εργασίες: 20%
Ενδιάμεση Εξέταση: 30%
Γραπτή Τελική Εξέταση: 50%
Ωστόσο, για την εξασφάλιση προβιβάσιμου βαθμού στο μάθημα (δηλ. τουλάχιστον πέντε) απαιτείται η επίτευξη προβιβάσιμου βαθμού στον σταθμισμένο μέσο όρο ενδιάμεσης και τελικής εξέτασης. Σε περίπτωση αποτυχίας, ο τελικός βαθμός του μαθήματος θα είναι αυτός του σταθμισμένου μέσου όρου ενδιάμεσης και τελικής.
Βιβλιογραφία
- "Thinking in Java." Bruce Eckel, 4th edition, Prentice Hall, 2006.
- "Introduction to Programming in Java." Robert Sedgewick and Kevin Wayne, Addison Wesley, 2006.
- "Eclipse in Action. A guide for Java developers." David Gallardo, Ed Burnette, Robert McGovern. Manning, 2003.
- "Απόλυτη JAVA" του W. Savitch (μετάφραση Δ. Ιακωβίδη, Εκδόσεις Ίων, 2008).
Για την μελέτη μεθοδολογιών αντικειμενοστρεφούς σχεδιασμού (CRC, UML) μπορείτε να συμβουλευθείτε το βιβλίο "Object-Oriented Design and Patterns," του Cay Horstmann (Wiley, 2nd edition, 2006. Για μια σύντομη εισαγωγή στη UML μπορείτε να ανατρέξετε και στο βιβλίο "UML Distilled: A Brief Guide to the Standard Object Modeling Language", του M. Fowler (Addison Wesley, 3nd Edition, 2000).
Χρήσιμο εγχειρίδιο για τη γλώσσα προγραμματισμού JAVA και τις βιβλιοθήκες της είναι και βιβλίο "JAVA in a Nutshell" του David Flanagan, O'Reilly. 5th Edition, 2005. Πολύ χρήσιμα είναι επίσης και τα Διδακτικά Εγχειρίδια της Sun Microsystems "JAVA Tutorials".
Πληροφόρηση
Η ενημέρωση των φοιτητών σχετικά με τις εβδομαδιαίες εργασίες, τις εξετάσεις κλπ θα γίνεται μέσω του World-Wide Web και της ιστοσελίδας του μαθήματος.
Προγραμματιστικές Ασκήσεις
- Η παράδοση των προγραμματιστικών ασκήσεων θα γίνεται σε ηλεκτρονική μορφή, μέσω της ιστοσελίδας και του συστήματος Blackboard.
- Ημερομηνία παραλαβής θεωρείται η ημερομηνία λήψης του ηλεκτρονικού μηνύματος με την άσκηση. Καθυστέρηση εως και 24 ώρες στην παράδοση μιάς άσκησης, μειώνει την συμμετοχή της στη διαμόρφωση του συνολικού βαθμού στο μάθημα κατά 15%. Η ποινή καθυστερημένης παράδοσης για κάθε επιπλέον 24-ωρο είναι 20%.
- Η βαθμολόγηση των ασκήσεων θα γίνεται ενίοτε κατόπιν προφορικής εξέτασης στη διάρκεια των εργαστηρίων. Οι προγραμματιστικές ασκήσεις θα κρίνονται με βάση τα ακόλουθα τρία κριτήρια:
- Ορθότητα: προγράμματα τα οποία δεν μεταφράζονται, δεν εκτελούνται, ή δεν δίνουν τα σωστά αποτελέσματα θεωρούνται λανθασμένα. Στην πρώτη και στην δεύτερη περίπτωση το πρόγραμμα μηδενίζεται, ενώ στην τρίτη περίπτωση χάνει το 60% του βαθμού του. Βεβαιωθείτε ότι έχετε ελέγξει την ορθότητα των προγραμμάτων σας πριν τα παραδώσετε.
- Σαφήνεια και εφαρμογή των προγραμματιστικών συμβάσεων : βασικό στοιχείο ενός καλού προγράμματος είναι η ευαναγνωσιμότητά του, η οποία επιτυγχάνεται με την σωστή επιλογή ονομάτων μεταβλητών, με την καλή στοίχιση των εντολών, με την κατάλληλη χρήση διαδικασιών και δομών δεδομένων, και με την διάνθιση του κώδικα με επεξηγηματικά σχόλια. Ασαφή ή κρυπτικά προγράμματα θα χάνουν μονάδες.
- Χρόνος Εκτέλεσης: οι προγραμματιστικές εργασίες θα εκτελεσθούν πάνω σε μεγάλα σύνολα δεδομένων εισροής (input data). Προγράμματα τα οποία εκτελούνται σε σωστά αλλά είναι πολύ αργά λόγω χρήσης λανθασμένων προγραμματιστικών τεχνικών ή αργών αλγορίθμων, θα χάνουν βαθμούς.
- Σεβαστείτε τους κανόνες συνεργασίας που έχουν καθοριστεί για το ΕΠΛ233. Οι προγραμματιστικές ασκήσεις θα ελέγχονται από ειδικό πρόγραμμα για την ανίχνευση των αντιγραφών. Οι αντιγραμμένες εργασίες θα μηδενίζονται και για τους αντιγραφείς θα εφαρμόζονται οι κανόνες τού Πανεπιστημίου. Αποφύγετε λοιπόν την αντιγραφή προγραμμάτων από άλλους συναδέλφους σας, διότι έτσι εκτίθετε και αυτούς και τον εαυτό σας στον κίνδυνο μηδενισμού και πειθαρχικής δίωξης.
Γενικές οδηγίες
- Κάθε φοιτητής δικαιούται να παρακολουθεί τις διαλέξεις και τα εργαστήρια χωρίς ενοχλήσεις και αδικαιολόγητες διακοπές. Παρακαλούνται λοιπόν όλοι να διαφυλάξουν το δικαίωμα αυτό, σεβόμενοι τον χρόνο ενάρξεως και λήξεως των μαθημάτων, την καθαριότητα των αμφιθεάτρων και των εργαστηριακών χώρων και γενικώς την ακαδημαϊκή ελευθερία.
- Οι φοιτητές καλούνται να σεβαστούν τους κανόνες πνευματικής ιδιοκτησίας αναφορικά με την αντιγραφή και χρήση λογισμικού και την φωτοαντιγραφή βιβλίων.
- Η απουσία από εξέταση και η καθυστέρηση παράδοσης εργασιών γίνονται αποδεκτές μόνο σε έκτακτες περιστάσεις και κατόπιν προηγουμένης συννενοήσεως με τον καθηγητή. Ο καθηγητής δεν υποχρεούται να δώσει εξετάσεις σε άτομα που απουσίασαν αδικαιολόγητα από μία εξέταση. Η καθυστερημένη παράδοση εργασιών συνεπάγεται βαθμολογική ποινή, ασχέτως της ποιότητας της παραδεδομένης εργασίας.
- Ενστάσεις στα αποτελέσματα εξετάσεων και στην βαθμολογία εργαστηριακών ασκήσεων γίνονται δεκτές βάσει των κανονισμών του Πανεπιστημίου.
- Η αντιγραφή ή η προσπάθεια αντιγραφής μεταξύ φοιτητών σε εξετάσεις ή εργασίες, απαγορεύεται αυστηρά. Τυχούσες αντιγραφές θα συνεπάγονται την αποπομπή των αναμεμιγμένων φοιτητών από την τάξη, τον μηδενισμό του βαθμού τους στις εν λόγω εξετάσεις ή εργασίες και την καταγγελία τους στο Συμβούλιο του Τμήματος για την εφαρμογή περαιτέρω πειθαρχικών κανόνων.
[ΕΠΛ233]
Μάριος Δικαιάκος, © 2000-2010