ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

Σχετικά έγγραφα
ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Αρχές Τεχνολογίας Λογισμικού

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

Προγραμματισμός Διαδικτύου

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης

Χειµερινό Εξάµηνο 2013

Δομές Δεδομένων (Data Structures)

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ιεραρχία Οργανισµών Οι οργανισµοί που ζουν στο οικοσύστηµά µας κατατάσσονται σύµφωνα µε την παρακάτω ιεραρχία: Organisms

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

Γλώσσες Προγραμματισμού

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

ΗΜΕΡΟΜΗΝΙΑ ΩΡΑ ΚΩΔ. ΜΑΘ. ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ ΔΙΔΑΣΚΩΝ ΑΙΘΟΥΣΕΣ ΑΡ. ΦΟΙΤΗΤΩΝ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Εισαγωγή Χειμερινό Εξάμηνο Παναγιώτης Τσαπάρας

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Προγραμματισμός. Εαρινό Εξάμηνο 2011

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Προγραμματισμός Διαδικτύου

ΗΥ252 - Οντοκεντρικός Προγραµµατισµός Προγραµµατιστική Εργασία Εαρινού Εξαµήνου 2004 Περιγραφή Παραδοτέων

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

1

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Προγραµµατιστικές τεχνικές

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Οντοκεντρικός Προγραμματισμός

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Εισαγωγή στην πληροφορική

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Εισαγωγή Χειµερινό Εξάµηνο 2014

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή

HY112 Φυσική Ι. Μια πρώτη εισαγωγή

Τεχνολογίες Υλοποίησης Αλγορίθµων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή

Αλγόριθµοι και Πολυπλοκότητα

Outline. 4 Object-Oriented Programming

Αλγόριθμοι και Πολυπλοκότητα

ΧΡΗΣΙΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Διαγράμματα Κλάσεων στη Σχεδίαση

Βασικά της γλώσσας JAVA

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας ΥΛΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA.

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

02 Αντικειμενοστρεφής Προγραμματισμός

Προγραμματισμός Χειμερινό Εξάμηνο 2014

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης)

Αντικειμενοστρεφής Προγραμματισμός

Διάλεξη 1. Εισαγωγή Επισκόπηση άσκησης

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

ΠΑΡΑΛΑΒΗ ΣΥΓΓΡΑΜΜΑΤΩΝ - ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΏΝ

Α. Ερωτήσεις Ανάπτυξης

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόμενα. Πρόλογος 15

Μοτίβα Σχεδίασης (Design Patterns)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

3. Περιγράμματα Μαθημάτων Προγράμματος Σπουδών

Αντικειμενοστρεφής Προγραμματισμός

Κλάσεις και Αντικείµενα

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Week. 6: Java Collections

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης)

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος

2.1 Αντικειµενοστρεφής προγραµµατισµός

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Προγραµµατισµός Η/Υ. Δρ. Δ.Ν. Παγώνης. Καθηγητής Εφαρµογών. Τηλ: Τµήµα Ναυπηγών Μηχανικών ΤΕ, ΤΕΙ Αθήνας

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...

Τεχνολογία Λογισμικού

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

ΜΕΤΑΒΑΤΙΚΕΣ ΠΡΟΫΠΟΘΕΣΕΙΣ ΑΠΟΚΤΗΣΗΣ ΠΤΥΧΙΟΥ

Transcript:

ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης

Γενικές Πληροφορίες Ώρες ιδασκαλίας Κάθε Τρίτη 7:00-9:00, Αµφ. B και Πέµπτη 9:00- :00, Αµφ. Γ Ώρες Γραφείου Κάθε Τρίτη και Πέµπτη :00-:00 Γραφείο 07 (Λευκά Κτ.) Φροντιστήρια Κάθε Τετάρτη, 9:00-:00, Αµφ. Α ιδακτικές Μον. Προαπαιτούµενα Συνιστώµενα Μαθήµατα Εγγραφή στα λίστα του µαθήµατος Προγραµµατισµός (ΗΥ0) οµές εδοµένων (ΗΥ0) Κάθε φοιτητής οφείλει να στείλει ηλεκτρονικό µήνυµα στη διεύθυνση: majordomo@csd.uoc.gr µε περιεχόµενο: subscribe hy-list για να εγγραφούν στην λίστα του µαθήµατος Σκοπός Μαθήµατος Αυτό το µάθηµα παρέχει µια εισαγωγή στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming) χρησιµοποιώντας τη γλώσσα προγραµµατισµού Java Ο σκοπός του είναι να διδάξει τις βασικές έννοιες και τεχνικές που συνιστούν το υπόδειγµα του αντικειµενοστρεφούς προγραµµατισµού Φοιτητές που ολοκληρώνουν το µάθηµα θα είναι σε θέση να γνωρίζουν: Το µοντέλο του αντικειµενοστρεφούς προγραµµατισµού: αφαιρετικοί τύποι δεδοµένων,ενθυλάκωση,κληρονοµικότητα,πολυµορφισµός Τα βασικά στοιχεία µιας γλώσσας αντικειµενοστρεφούς προγραµ- µατισµού όπως η Java: κλάσεις και διεπαφές αντικειµένων, εξαιρέσεις µεθόδων και χειρισµός συλλογών αντικειµένων Πώς από την περιγραφή ενός προβλήµατος να καθορίζουν την λογική για την επίλυση του προβλήµατος σύµφωνα µε το υπόδειγµα του αντικειµενοστρεφούς προγραµµατισµού και κατόπιν να είναι σε θέση να την υλοποιούν σε ένα Java πρόγραµµα Πώς να δοκιµάζουν, τεκµηριώνουν και προετοιµάζουν ένα επαγγελµατικό πρόγραµµα χρησιµοποιώντας τα εργαλεία της Java (assertions, javadoc, packages) καθώς και ολοκληρωµένα περιβάλλοντα ανάπτυξης λογισµικού

Επισκόπηση Μαθήµατος. Εισαγωγή στις Γλώσσες και τα Υποδείγµατα Προγραµµατισµού: Γιατί χρειαζόµαστε τον Αντικειµενοστρεφή Προγραµµατισµό. Στοιχεία ιαδικαστικού Προγραµµατισµού σε Java: Τύποι, Μεταβλητές & Τελεστές. Από τις οµές εδοµένων στους Αφαιρετικούς Τύπους εδοµένων: Η έννοια του προγραµµατισµού βασισµένου σε συµβόλαια. Κλάσεις : Κατάσταση (Τιµές Στιγµιότυπων) και Συµπεριφορά (Μέθοδοι) των Αντικειµένων, Ενθυλάκωση και Υπερφόρτωση Μεθόδων. Κληρονοµικότητα Κλάσεων: Υποσκελισµός Μεθόδων, υναµική έσµευση Ονοµάτων και η έννοια του Πολυµορφισµού 6. Παραβιάσεις Συµβολαίων & Εξαιρέσεις Μεθόδων: Ορισµός, ηµιουργία, Χειρισµός 7. Αφαιρετικοί Τύποι εδοµένων σε Java: Εικονικές Κλάσεις & ιεπαφές 8. Το Πλαίσιο Χειρισµού Συλλογών Αντικειµένων στην Java 9. Ανακλαστικός Προγραµµατισµός στην Java 0.Θεµέλια Τύπων Αντικειµένων: Το Σύστηµα Τύπων της Java.Ροές εδοµένων και Αρχεία σε Java.Γραφικές ιεπαφές Χρήσης και Java Applets.Κατανεµηµένος & Σύγχρονος Προγραµµατισµός σε Java Βαθµολόγηση Μαθήµατος Οι φοιτητές απαιτείται να επιδείξουν την δεξιότητα τους στον αντικειµενοστραφή προγραµµατισµό υποβάλλοντας γραπτές ασκήσεις που καλύπτουν συνολικά το υλικό του µαθήµατος και ακόµα σχεδιάζοντας και υλοποιώντας σε Java µια µη-τετριµµένη εφαρµογή ΤΒ =.Π +.Τ +.Α +.Ε Ανν Τ >=.7 και Ε.>=, διαφορετικά ΤΒ = min(τ,e) Σάββατο 9//08: ανοικτές Πρόοδος % σηµειώσεις και βιβλία Τελική Εξέταση % Ηµ/νία θα ανακοινωθεί Παρασκευή /0/08: σειρά (%) Ασκήσεις % Παρασκευή //08: σειρά (0%) Εργασία % Φάση : Σχεδίαση και Υλοποίηση ιεπαφών Java Φάση : Υλοποίηση Μεθόδων & GUIs 0% Παρασκευή 9//08 % Παρασκευή 0/0/09 6

Υποστήριξη Μαθήµατος Βιβλία : ❶Java µε UML: Αντικειµενοστρεφής σχεδιασµός και προγραµµατισµός, E. Lervik, V Havdal Κλειδάριθµος, 00 ❷Αναπτυξη Προγραµµατων σε Java: Αφαιρέσεις, προδιαγραφές και αντικειµενοστρεφής σχεδιασµός, B. Liskov, J. Guttag, Κλειδάριθµος, 007 ❸Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms, D. A. Watt, D. F. Brown, D. Watt, John Wiley & Sons 00 Βοηθοί : Αρµενατζόγλου Νίκος (armenan@csd.uoc.gr) Κοπιδάκη Στέλλα (skopidak@csd.uoc.gr) Κριαρά Λητώ (kriara@csd.uoc.gr) Μελεσανάκης Βαλάντης (melesan@csd.uoc.gr) Παπαδάκης Μύρων (myrpap@csd.uoc.gr) Ρουσσάκης Γιάννης (rousakis@csd.uoc.gr) Τσιαλιαµάνης Πέτρος (tsialiam@csd.uoc.gr) Ώρες Γραφείου Βοηθών: Κάθε Παρασκευή, 7:00-9:00 Γραφεία Βοηθών 7 Επιπλέον Πληροφοριακό Υλικό: The Java APIs Ρωτήσαµε τους φοιτητές προηγούµενων ετών πως θα µπορούµε να βελτιώσουµε το µάθηµα. Πολλοί απάντησαν: Γιατί δεν µας µιλήσατε σχετικάµετις Java API από την πρώτη µέρα? Οι προγραµµατιστικές διεπαφές της Java (Application Programmers Interface) αφορούν όλες τις υλοποιηµένες δυνατότητες της γλώσσας και περιγράφονται στα αντίστοιχα εγχειρίδια της κατασκευάστριας εταιρίας. Στην αρχή είναι δύσκολη η κατανόηση τους, στην συνέχεια όµως θα µπορέσετε να τα διαβάσετε και το κυριότερο να τα χρησιµοποιήσετε µε ευκολία. 8

Που Μπορείτε να Βρείτε την Τεκµηρίωση των Java APIs? http://java.sun.com/javase/6/docs/api/ 9

ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης

Γενικές Πληροφορίες Ώρες ιδασκαλίας Κάθε Τρίτη 7:00-9:00, Αµφ. B και Πέµπτη 9:00- :00, Αµφ. Γ Ώρες Γραφείου Κάθε Τρίτη και Πέµπτη :00-:00 Γραφείο 07 (Λευκά Κτ.) Φροντιστήρια Κάθε Τετάρτη, 9:00-:00, Αµφ. Α ιδακτικές Μον. Προαπαιτούµενα Συνιστώµενα Μαθήµατα Εγγραφή στα λίστα του µαθήµατος Προγραµµατισµός (ΗΥ0) οµές εδοµένων (ΗΥ0) Κάθε φοιτητής οφείλει να στείλει ηλεκτρονικό µήνυµα στη διεύθυνση: majordomo@csd.uoc.gr µε περιεχόµενο: subscribe hy-list για να εγγραφούν στην λίστα του µαθήµατος Σκοπός Μαθήµατος Αυτό το µάθηµα παρέχει µια εισαγωγή στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming) χρησιµοποιώντας τη γλώσσα προγραµµατισµού Java Ο σκοπός του είναι να διδάξει τις βασικές έννοιες και τεχνικές που συνιστούν το υπόδειγµα του αντικειµενοστρεφούς προγραµµατισµού Φοιτητές που ολοκληρώνουν το µάθηµα θα είναι σε θέση να γνωρίζουν: Το µοντέλο του αντικειµενοστρεφούς προγραµµατισµού: αφαιρετικοί τύποι δεδοµένων,ενθυλάκωση,κληρονοµικότητα,πολυµορφισµός Τα βασικά στοιχεία µιας γλώσσας αντικειµενοστρεφούς προγραµ- µατισµού όπως η Java: κλάσεις και διεπαφές αντικειµένων, εξαιρέσεις µεθόδων και χειρισµός συλλογών αντικειµένων Πώς από την περιγραφή ενός προβλήµατος να καθορίζουν την λογική για την επίλυση του προβλήµατος σύµφωνα µε το υπόδειγµα του αντικειµενοστρεφούς προγραµµατισµού και κατόπιν να είναι σε θέση να την υλοποιούν σε ένα Java πρόγραµµα Πώς να δοκιµάζουν, τεκµηριώνουν και προετοιµάζουν ένα επαγγελµατικό πρόγραµµα χρησιµοποιώντας τα εργαλεία της Java (assertions, javadoc, packages) καθώς και ολοκληρωµένα περιβάλλοντα ανάπτυξης λογισµικού

Επισκόπηση Μαθήµατος. Εισαγωγή στις Γλώσσες και τα Υποδείγµατα Προγραµµατισµού: Γιατί χρειαζόµαστε τον Αντικειµενοστρεφή Προγραµµατισµό. Στοιχεία ιαδικαστικού Προγραµµατισµού σε Java: Τύποι, Μεταβλητές & Τελεστές. Από τις οµές εδοµένων στους Αφαιρετικούς Τύπους εδοµένων: Η έννοια του προγραµµατισµού βασισµένου σε συµβόλαια. Κλάσεις : Κατάσταση (Τιµές Στιγµιότυπων) και Συµπεριφορά (Μέθοδοι) των Αντικειµένων, Ενθυλάκωση και Υπερφόρτωση Μεθόδων. Κληρονοµικότητα Κλάσεων: Υποσκελισµός Μεθόδων, υναµική έσµευση Ονοµάτων και η έννοια του Πολυµορφισµού 6. Παραβιάσεις Συµβολαίων & Εξαιρέσεις Μεθόδων: Ορισµός, ηµιουργία, Χειρισµός 7. Αφαιρετικοί Τύποι εδοµένων σε Java: Εικονικές Κλάσεις & ιεπαφές 8. Το Πλαίσιο Χειρισµού Συλλογών Αντικειµένων στην Java 9. Ανακλαστικός Προγραµµατισµός στην Java 0.Θεµέλια Τύπων Αντικειµένων: Το Σύστηµα Τύπων της Java.Ροές εδοµένων και Αρχεία σε Java.Γραφικές ιεπαφές Χρήσης και Java Applets.Κατανεµηµένος & Σύγχρονος Προγραµµατισµός σε Java Βαθµολόγηση Μαθήµατος Οι φοιτητές απαιτείται να επιδείξουν την δεξιότητα τους στον αντικειµενοστραφή προγραµµατισµό υποβάλλοντας γραπτές ασκήσεις που καλύπτουν συνολικά το υλικό του µαθήµατος και ακόµα σχεδιάζοντας και υλοποιώντας σε Java µια µη-τετριµµένη εφαρµογή ΤΒ =.Π +.Τ +.Α +.Ε Ανν Τ >=.7 και Ε.>=, διαφορετικά ΤΒ = min(τ,e) Σάββατο 9//08: ανοικτές Πρόοδος % σηµειώσεις και βιβλία Τελική Εξέταση % Ηµ/νία θα ανακοινωθεί Παρασκευή /0/08: σειρά (%) Ασκήσεις % Παρασκευή //08: σειρά (0%) Εργασία % Φάση : Σχεδίαση και Υλοποίηση ιεπαφών Java Φάση : Υλοποίηση Μεθόδων & GUIs 0% Παρασκευή 9//08 % Παρασκευή 0/0/09 6

Υποστήριξη Μαθήµατος Βιβλία : ❶Java µε UML: Αντικειµενοστρεφής σχεδιασµός και προγραµµατισµός, E. Lervik, V Havdal Κλειδάριθµος, 00 ❷Αναπτυξη Προγραµµατων σε Java: Αφαιρέσεις, προδιαγραφές και αντικειµενοστρεφής σχεδιασµός, B. Liskov, J. Guttag, Κλειδάριθµος, 007 ❸Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms, D. A. Watt, D. F. Brown, D. Watt, John Wiley & Sons 00 Βοηθοί : Αρµενατζόγλου Νίκος (armenan@csd.uoc.gr) Κοπιδάκη Στέλλα (skopidak@csd.uoc.gr) Κριαρά Λητώ (kriara@csd.uoc.gr) Μελεσανάκης Βαλάντης (melesan@csd.uoc.gr) Παπαδάκης Μύρων (myrpap@csd.uoc.gr) Ρουσσάκης Γιάννης (rousakis@csd.uoc.gr) Τσιαλιαµάνης Πέτρος (tsialiam@csd.uoc.gr) Ώρες Γραφείου Βοηθών: Κάθε Παρασκευή, 7:00-9:00 Γραφεία Βοηθών 7 Επιπλέον Πληροφοριακό Υλικό: The Java APIs Ρωτήσαµε τους φοιτητές προηγούµενων ετών πως θα µπορούµε να βελτιώσουµε το µάθηµα. Πολλοί απάντησαν: Γιατί δεν µας µιλήσατε σχετικάµετις Java API από την πρώτη µέρα? Οι προγραµµατιστικές διεπαφές της Java (Application Programmers Interface) αφορούν όλες τις υλοποιηµένες δυνατότητες της γλώσσας και περιγράφονται στα αντίστοιχα εγχειρίδια της κατασκευάστριας εταιρίας. Στην αρχή είναι δύσκολη η κατανόηση τους, στην συνέχεια όµως θα µπορέσετε να τα διαβάσετε και το κυριότερο να τα χρησιµοποιήσετε µε ευκολία. 8

Που Μπορείτε να Βρείτε την Τεκµηρίωση των Java APIs? http://java.sun.com/javase/6/docs/api/ 9