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

Γενικά

Μαθησιακά Αποτελέσματα

Το μάθημα περιγράφει και παρουσιάζει τις βασικές αρχές του Αντικειμενοστρεφούς Προγραμματισμού χρησιμοποιώντας ως εργαλείο την γλώσσα προγραμματισμού JAVA. Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα πρέπει να γνωρίζουν τις βασικές αρχές του Αντικειμενοστρεφούς Προγραμματισμού αλλά και αλγορίθμους επίλυσης προβλημάτων που υλοποιούνται με την Java. Προγραμματισμός δεν είναι μόνο το γράψιμο κώδικα. Οι προγραμματιστές πρέπει επίσης να κάνουν κάποιους συμβιβασμούς, να επιλέξουν μεταξύ εναλλακτικών σχεδιάσεων, διαφορετικών αλγορίθμων και διαφορετικών υλοποιήσεων. Ταυτόχρονα πρέπει να αντιμετωπίσουν θέματα συμβατότητας, απόδοσης και αξιοπιστίας ενώ ταυτόχρονα πρέπει να ικανοποιούν και τις προδιαγραφές. Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα πρέπει να:

  • Διαθέτουν εκτεταμένη γνώση των αρχών, εννοιών και δομών του Αντικειμενοστρεφή προγραμματισμού
  • Διαθέτουν ικανότητες ανάπτυξης, μετατροπής, ελέγχου, διόθωσης και εκτέλεσης εφαρμογών Java χρησιμοποιώντας τις αντικειμενοστρεφείς αρχές της Java, και το σύστημα διαχείρισης λαθών.
  • Διαθέτουν ικανότητες ανάπτυξης αντικειμενοστρεφών προγραμμάτων χρησιμοποιώντας τις βασικές βιβλιοθήκες της Java.
  • Διαθέτουν ικανότητες περιγραφής και επεξήγησης των αντικειμενοστρεφών εννοιών της Java
  • Διαθέτουν γνώση και ικανότητες χρήσης των κλάσεων του API της Java καθώς και των παραγόμενων κλάσεων στην ανάπτυξη προγραμμάτων
  • Διακρίνουν τα χαρακτηριστικά του προβλήματος τα οποία θα τους οδηγήσουν στην επιλογή του καταλληλότερου αλγόριθμου
  • Συνθέτουν, προσαρμόζουν και προτείνουν δικούς τους αλγορίθμους επίλυσης προβλημάτων
Γενικές Ικανότητες
  • Εφαρμογή της γνώσης στην πράξη με την πρακτική εξάσκηση στο εργαστήριο
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Αυτόνομη εργασία κατά την εκπόνηση των ασκήσεων της ημέρας
  • Ομαδική εργασία: Υλοποίηση τριών ατομικών/ομαδικών εργασιών οι οποίες στηρίζονται στην εφαρμογή των εννοιών που αναλύονται στις διαλέξεις.
  • Άσκηση κριτικής και αυτοκριτικής: Οι φοιτητές κρίνουν και αξιολογούν εργασίες άλλων ομάδων και κρίνονται για την ποιότητα της αξιολόγησής τους
  • Σχολιασμός στην τάξη συνηθισμένων περιπτώσεων λαθών στις ασκήσεις του μαθήματος
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Περιεχόμενο Μαθήματος

  • Εισαγωγή στον αντικειμενοστραφή προγραμματισμό, αρχές και πλεονεκτήματα, χαρακτηριστικά της αντικειμενοστρεφούς προσέγγισης
  • Κλάσεις, Αντικείμενα, Constructors, Δημόσια και Ιδιωτικά μέλη, Στατικά μέλη, Μέθοδοι, Τύποι Μεθόδων – Στατικές Μέθοδοι, Wrapper κλάσεις,  Final κλάσεις και μέθοδοι
  • Αναδρομή: έννοιες, αναδρομικές κλάσεις και μέθοδοι
  • Αναζήτηση: εισαγωγή στην πολυπλοκότητα της γραμμικής και δυαδικής αναζήτησης
  • Ταξινόμηση: πολυπλοκότητα και αλγόριθμοι ταξινόμησης, οι οποίοι περιλαμβάνουν αλγόριθμους ταξινόμησης με ανταλλαγή (bubble sort, ταξινόμηση με εισαγωγή, ταξινόμηση με ανταλλαγή) και
    αναδρομικούς αλγόριθμους (γρήγορη ταξινόμηση, ταξινόμηση με συγχώνευση)
  • Κληρονομικότητα και Σύνθεση – Υπέρβαση πεδίων και μεθόδων, ιεραρχίες κλάσεων, Πολυμορφισμός, Σύγκριση κληρονομικότητας και σύνθεσης
  • Εμβάθυνση στον Πολυμορφισμό, Υπέρβαση, Υπερφόρτωση, Casting
  • Επαυξημένη σχεδίαση κλάσεων: Αφηρημένες κλάσεις και μέθοδοι, Εσωτερικές κλάσεις
  • Διασυνδέσεις / Διεπαφές
  • Χειρισμός των Εξαιρέσεων
  • Πακέτα – Διαχείριση της μνήμης
  • Generics
  • The Java Reflection

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης
  • Πρόσωπο με πρόσωπο θεωρητική διδασκαλία (παράδοση, συζήτηση, επίλυση προβλημάτων), εξάσκηση στο εργαστήριο με λυμένες και άλυτες ασκήσεις.
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
  • Χρήση των ιστοσελίδων του μαθήματος
  • Χρήση της πλατφόρμας moodle
  • Χρήση λογισμικού (NetBeans, Eclipse κ.ά.)
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος εργασίας εξαμήνου
Διαλέξεις52
Συγγραφή και παρουσίαση υποχρεωτικής εργασίας30
Ατομική Μελέτη και ανάλυση βιβλιογραφίας60
Εργαστήριο13
Προετοιμασία για τις εργαστηριακές ασκήσεις25
Σύνολο 180
Αξιολόγηση φοιτητών

- Γραπτή τελική εξέταση στο θεωρητικό μέρος του μαθήματος (70%). Για την συμμετοχή στις εξετάσεις του θεωρητικού μέρους απαιτείται η επιτυχία (>=5) στις εξετάσεις του εργαστηριακού μέρους.
- Εξάσκηση στο εργαστήριο και εργασίες (30%) που περιλαμβάνει:
- Ασκήσεις και εργασίες
- Τελική εξέταση εργαστηριακού μέρους

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος "Εύδοξος"
  1. Liang D.Y, JAVA, 10η, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε., ISBN: 978-960-418-500-9, Κωδικός βιβλίου στον Εύδοξο: 50655980
  2. Savitch Walter, JAVA, 7η Έκδοση, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε.,, ISBN: 978-960-418-501-6, Κωδικός Βιβλίου στον Εύδοξο: 50655978
  3. Harvey M. ,Paul J. Deitel, Java Προγραμματιμός, 10η Έκδοση, ΕΚΔΟΣΕΙΣ Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ ΕΕ, ISBN: 9789605126810, Κωδικός Βιβλίου στον Εύδοξο: 50659320
  4. Horstmann Cay, Η Γλώσσα Προγραμματισμού Java-Με Αφετηρία τα Αντικείμενα, Έκδοση: 1/2022, ΕΚΔΟΣΕΙΣ BROKEN HILL PUBLISHERS LTD, ISBN: 9789925588602, Κωδικός Βιβλίου στον Εύδοξο: 102070267
Συμπληρωματική ελληνόγλωσση βιβλιογραφία
  1. (English) Λιακέας Γιώργος, Εισαγωγή στην Java, Κλειδάριθμος, 2015, ISBN: 9789604616596
  2. Deitel Harvey M., Deitel Paul J., Java προγραμματισμός, 10η έκοση, Γκιούρδας Μ., 2015, ISBN: 9789605126810