ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Χαρίδημος Κονδυλάκης Εισαγωγή
ΟΡΓΑΝΩΣΗ ΜΑΘΗΜΑΤΟΣ
Πληροφορίες Διδάσκοντα Διδάσκοντας: Χαρίδημος Κονδυλάκης Email: Kondylak@ics.forth.gr Εβδομαδιαίες Ώρες Διδασκαλίας: 2 ώρες θεωρία + 2 ώρες εργαστήριο + 1 ώρα άσκηση
Γενικές Πληροφορίες Αυτό το μάθημα παρέχει μια εισαγωγή στον αντικειμενοστραφή προγραμματισμό (object oriented programming) χρησιμοποιώντας τη γλώσσα προγραμματισμού Java. Ο σκοπός του είναι να διδάξει τις βασικές έννοιες και τεχνικές που συνιστούν το υπόδειγμα του αντικειμενοστραφούς προγραμματισμού. Φοιτητές που ολοκληρώνουν το μάθημα θα είναι σε θέση να γνωρίζουν: Το μοντέλο του αντικειμενοστραφούς προγραμματισμού: αφαιρετικοί τύποι δεδομένων, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός Τα βασικά στοιχεία μιας γλώσσας αντικειμενοστραφούς προγραμματισμού όπως η Java: κλάσεις και διεπαφές αντικειμένων, εξαιρέσεις μεθόδων και χειρισμός συλλογών αντικειμένων Πώς από την περιγραφή ενός προβλήματος να καθορίζουν την λογική για την επίλυση του προβλήματος σύμφωνα με το υπόδειγμα του αντικειμενοστραφούς προγραμματισμού και κατόπιν να είναι σε θέση να την υλοποιούν σε ένα Java πρόγραμμα Πώς να δοκιμάζουν, τεκμηριώνουν και προετοιμάζουν ένα επαγγελματικό πρόγραμμα χρησιμοποιώντας τα εργαλεία της Java (assertions, javadoc, packages) καθώς και ολοκληρωμένα περιβάλλοντα ανάπτυξης λογισμικού
Υλικό Μαθήματος Συνιστώμενη Βιβλιογραφία Απόλυτη Java, W. Savitch, ΙΩΝ, 2008. Συμπληρωματική σελίδα εδώ. Java με UML: Αντικειμενοστραφής Σχεδίαση και Προγραμματισμός, E. Lervik, V Havdal Κλειδάριθμος, 2005 Ανάπτυξη Προγραμμάτων σε Java: Αφαιρέσεις, προδιαγραφές και αντικειμενοστραφής σχεδιασμός, B. Liskov, J. Guttag, Κλειδάριθμος, 2007 Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms, David A. Watt,Deryck F. Brown and Dave Watt, John Wiley & Sons 2001
Τρόπος βαθμολόγησης Aπαιτείται η επιτυχημένη ολοκλήρωση τόσο της θεωρίας όσο και του εργαστηρίου Βαθμός Θεωρίας= 10 % * Άσκηση 1 + 10% * Άσκηση 2 + 20% * Άσκηση 3 + 60% * Τελικό διαγώνισμα. Βαθμός Εργαστηρίου= 50% *Εργασία + 50%*Τελικό διαγώνισμα.
Προγραμματισμός Διαλέξεων Εβδομάδα 1 - Διαδικαστικά και Γενική Εισαγωγή Θεωρία: Εισαγωγή, Επισκόπηση και Ιστορική Αναδρομή και Αντικειμενοστραφής Προγραμματισμός. Εργαστήριο: Eclipse & Netbeans και εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό. Εβδομάδα 2 Java Classes & Objects Θεωρία: Ορισμός κλάσεων και δημιουργία, αλλαγή και χρήση αντικειμένων. Εργαστήριο: Ασκήσεις πάνω στον ορισμό και την χρήση κλάσεων. Εβδομάδα 3 Java Arrays & Strings Θεωρία: Java Arrays & Strings. Εργαστήριο: Ασκήσεις πάνω σε Java Arrays & Strings. Εβδομάδα 4 Ενθυλάκωση και πολυμορφισμός Θεωρία: Ενθυλάκωση κληρονομικότητα και πολυμορφισμός. Εργαστήριο: Ασκήσεις πάνω σε Ενθυλάκωση, Κληρονομικότητα και πολυμορφισμό. Εβδομάδα 5 Abstract Classes & Interfaces Θεωρία: Abstract Classes & Interfaces. Εργαστήριο: Ασκήσεις πάνω σε Abstract Classes & Interfaces. Εβδομάδα 6 - Abstract Data Types Θεωρία: Abstract Data Types. Εργαστήριο: Ασκήσεις πάνω σε Abstract Data Types.
Προγραμματισμός Διαλέξεων Εβδομάδα 7 Exceptions Θεωρία: Exceptions. Εργαστήριο: Ασκήσεις πάνω σε Exceptions. Εβδομάδα 8 UML Θεωρία: Σχεδίαση με χρήση UML. Εργαστήριο: Ασκήσεις πάνω σε σχεδίαση με UML. Εβδομάδα 9 Swing I Θεωρία: Σχεδίαση GUI με το SWING, Components & Layout Managers Εργαστήριο: Ασκήσεις πάνω σε σχεδίαση GUI. Εβδομάδα 10 Swing II Θεωρία: Χρήση Events & Action Listeners. Εργαστήριο: Ασκήσεις πάνω στη χρήση Events & Action Listeners. Εβδομάδα 11 JDBC Θεωρία: Βασικές έννοιες JDBC και διαχείριση δεδομένων Εργαστήριο: Ασκήσεις πάνω στη χρήση JDBC. Εβδομάδα 12 Threads Θεωρία: Δημιουργία και χρήση threads Εργαστήριο: Ασκήσεις πάνω στη δημιουργία και χρήση threads.
Εργασίες Ημ/νια Εβδομάδα 2 Εβδομάδα 5 Εβδομάδα 8 Εργασίες 1 η Σειρά Ασκήσεων Πρώτη επαφή με Java. Στην άσκηση αυτή θα ζητούνται μικρές ασκήσεις ελέγχου ροής, είσοδου/εξόδου από κονσόλα και παράθυρα διαλόγου Διάρκεια: 2 εβδομάδες Παράδοση: Τέλος 4 ης εβδομάδας 2 η Σειρά Ασκήσεων Συνδεδεμένες κλάσεις, δημιουργία αντικειμένων, shadowing, overriding Στην άσκηση αυτή οι φοιτητές καλούνται να δημιουργήσουν κλάσεις και αντικείμενα και να επιδείξουν ενθυλάκωση, κληρονομικότητα, shadowing και overriding. Διάρκεια: 2 εβδομάδες Παράδοση: Τέλος 7 ης εβδομάδας 3 η Σειρά Ασκήσεων GUI and Events Στην άσκηση αυτή οι φοιτητές καλούνται να υλοποιήσουν μικρές εφαρμογές με GUIs που να λαμβάνουν και να χρησιμοποιούν Events. Διάρκεια: 2 εβδομάδες Παράδοση: Τέλος 10 ης εβδομάδας
Εβδομάδα 4 Κεντρική εργασία Stratego Στόχος της εργασίας είναι η σχεδίαση και η υλοποίηση μιας παραλλαγής του κλασσικού παιχνιδιού Stratego. Η εργασία θα γίνει από ομάδες 2 ατόμων. Επιπλέον θα γίνει σε δυο φάσεις Φάση 1 Σχεδίαση. Θα περιλαμβάνει ανάπτυξη use-cases, UML διαγραμμάτων και mock-ups των οθονών της εφαρμογής. Επιπλέον θα πρέπει να αναγνωριστούν οι κλάσεις και οι διεπαφές για όλες τις συνιστώσες του προγράμματος, οι συμπεριφορές, οι κλήσεις και οι υπογραφές για όλες τις μεθόδους. Φάση 2 Υλοποίηση. Θα περιλαμβάνει την κυρίως υλοποίηση του συστήματος. Παράδοση Φάση 1: Τέλος 6 ης εβδομάδας. Παράδοση Φάση 2: Τέλος 12 ης εβδομάδας.