Τίτλος Μαθήματος Αντικειμενοστραφής Προγραμματισμός ΙΙ
Κωδικός Μαθήματος 321-3652
Εξάμηνο 3
ECTS 5
Ώρες (Θεωρία) 3
Ώρες (Εργαστηρίο) 2
Διδάσκοντας 321-3652

Ύλη μαθήματος

- Εισαγωγή στην τεχνολογία αντικειμένων και στη UML.

- Η Java ως αντικειμενοστραφής γλώσσα προγραμματισμού.

- Βασικές έννοιες, εκφράσεις, τελεστές, προτάσεις ελέγχου.

- Διαδικασία σύνταξης προγράμματος: Κλάσεις, αντικείμενα, μέθοδοι και μεταβλητές στιγμιοτύπων, ενθυλάκωση. Πίνακες και λίστες πινάκων. Μέθοδοι δημιουργοί, υπερφόρτωση, επικάλυψη, προσδιοριστές ορατότητας, κληρονομικότητα, πολυμορφισμός.

- Διαχείριση εξαιρέσεων.

- Αρχεία, ροές και σειριακή επεξεργασία αντικειμένων.

- Γενικές συλλογές, γενικεύσεις.

- Πολυνηματική επεξεργασία στη Java: Μηχανισμοί της Java για την υποστήριξη του ταυτόχρονου προγραμματισμού.

- Διασύνδεση χρήστη, το AWT, γραφικά και Java 2D API. Προσθήκη κίνησης και ήχου, εικόνες, διαχειριστές διατάξεων. Χρήση του SWING.

- Τοποθέτηση διαλογικών προγραμμάτων στο Διαδίκτυο.

- Εισαγωγή στη δικτύωση με Java.

Επιδιωκόμενα μαθησιακά αποτελέσματα

Παρουσιάζονται και αναλύονται τα βασικά χαρακτηριστικά της αντικειμενοστραφούς σχεδίασης με χρήση της γλώσσας προγραμματισμού Java. Σκοπός του μαθήματος είναι:

- Η απόκτηση γνώσεων και σχετικής εμπειρίας ώστε οι φοιτητές να είναι ικανοί να χρησιμοποιούν με τον προσφορότερο τρόπο τα χαρακτηριστικά της γλώσσας ανάλογα με το πρόβλημα.

- Η κατανοήση και διάκριση μεταξύ των διαφορετικών χαρακτηριστικών που παρέχονται από ευρέως χρησιμοποιούμενες γλώσσες αντικειμενοστραφούς προγραμματισμού, όπως η C++ και η Ruby.

Οι βασικοί εκπαιδευτικοί στόχοι του μαθήματος που αντικατοπτρίζονται σε μαθησιακά αποτελέσματα είναι:

- Η απόκτηση και η ανάπτυξη αντικειμενοστραφούς προγραμματιστικής σκέψης. Τούτο συμβάλει στην εξοικείωση του φοιτητή με τις έννοιες της αντικειμενοστραφούς σχεδίασης, ανεξάρτητα από την εκάστοτε πλατφόρμα και γλώσσα προγραμματισμού.

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

- Η καλλιέργεια της αναλυτικής αντικειμενοσταφούς προγραμματιστικής σκέψης και της ικανότητας εμβάθυνσης. Αυτό βοηθάει στην αντιμετώπιση προβλημάτων που συχνά ανακύπτουν στη φάση του σχεδιασμού και υλοποίησης σύνθετων προγραμματιστικών εργασιών.

Προαπαιτούμενα

Δεν απαιτούνται.

Εγχειρίδια του μαθήματος

- Liang D. Y., Java, 10η έκδοση, Εκδόσεις Τζιόλα (μετάφραση).
- Deitel Harvey M., Deitel Paul J., JAVA Προγραμματισμός, 10η έκδοση, Εκδόσεις Γκιούρδα (μετάφραση).
- Cadenhead R. and Lemay L., Πλήρες Εγχειρίδιο της Java 7, 6η έκδοση, Εκδόσεις Γκιούρδα (μετάφραση).
- Κάβουρας, Ι. Κ., Ρουκουνάκη, Α. Α., Προγραμματισμός με Java, Κλειδάριθμος.
- Horton, I., Beginning Java 2.
- Horstmann, K. Big Java, Wiley.
- Horstmann, C. S., Cornell, G., Core Java, Prentice Hall.
- Eckel, B., Thinking in Java, Prentice Hall, 2nd Edition.
- Naughton, P., Java Handbook, Osborne.
- Burns, J., Javascript Goodies, Earthweb press.
- Kathy Sierra and Bert Bates, SCJP Sun Certified Programmer for Java.
- Cay S. Horstmann, Java 8 for the Really Impatient.
- Brian Goetz and Tim Peierls, Java Concurrency in Practice.
- Kathy Sierra and Bert Bates, Head First Java, 2nd Edition.
- Joshua Bloch, Effective Java, 2nd Edition.
- Craig Walls, Spring in Action, 4th edition.
- Christian Bauer and Gavin King, Java Persistence with Hibernate.
- Bear Bibeault and Yehuda Katz, jQuery in Action.
- Eric Freeman and Bert Bates, Head First Design Patterns.
- Erich Gamma and Richard Helm, Design Patterns: Elements of Reusable Object-Oriented Software.
- Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship.
- Robert Sedgewick and Kevin Wayne, Algorithms, 4th Edition.
- Narasimha Karumanchi, Data Structures and algorithms Made Easy in Java, 2nd edition.
- Jon Bentley, Programming Pearls, 2nd Edition.
- Yegor Bugayenko, Elegant Objects (Vol. 1).

Διδακτικές και μαθησιακές μέθοδοι

Ατομικές και ομαδικές εργασίες, πρακτική εξάσκηση στο εργαστήριο, μικρά τεστ στη μορφή κουίζ, τελική γραπτή εξέταση.

Δραστηριότητα Φόρτος Εργασίας Εξαμήνου
Διαλέξεις 39 ώρες
Εργαστηριακές Ασκήσεις 26 ώρες
Προσωπική μελέτη 56 ώρες
Πρόοδος 1 ώρα
Τελική εξέταση 3 ώρες
Σύνολο Μαθήματος 125 ώρες (5 ECTS)

Μέθοδοι αξιολόγησης / βαθμολόγησης

Ι. Γραπτή εξέταση (70%), που περιλαμβάνει:

- Ερωτήσεις πολλαπλής επιλογής,.
- Ερωτήσεις σύντομης απάντησης.
- Επίλυση προβλημάτων.

ΙΙ. Εξέταση εργαστηρίου (30%) που περιλαμβάνει:

- Τρείς προγραμματιστικές εργασίες.
- Προφορική εξέταση.

Γλώσσα διδασκαλίας

Ελληνικά (Αγγλικά αν υπάρχουν φοιτητές/φοιτήτριες ERASMUS)

Τρόπος παράδοσης μαθήματος

Φυσική Παρουσία.