Το μάθημα παρέχει μια εισαγωγή στον αντικειμενοστρεφή προγραμματισμό (object-oriented programming OOP) χρησιμοποιώντας τη γλώσσα προγραμματισμού Java. Ο σκοπός του είναι να διδάξει τις βασικές έννοιες και τεχνικές που συνιστούν το υπόδειγμα του αντικειμενοστρεφή προγραμματισμού. Οι ενότητες του μαθήματος ακολουθούν:
Εισαγωγή στις Γλώσσες και τα Υποδείγματα Προγραμματισμού: Γιατί χρειαζόμαστε τον Αντικειμενοστρεφή Προγραμματισμό
Στοιχεία Διαδικαστικού Προγραμματισμού σε Java: Τύποι, Μεταβλητές & Τελεστές
Από τις Δομές Δεδομένων στους Αφαιρετικούς Τύπους Δεδομένων: Η έννοια του προγραμματισμού βασισμένου σε συμβόλαια
Κλάσεις : Κατάσταση (Τιμές Στιγμιότυπων) και Συμπεριφορά (Μέθοδοι) των Αντικειμένων, Ενθυλάκωση και Υπερφόρτωση Μεθόδων
Κληρονομικότητα Κλάσεων: Υποσκελισμός Μεθόδων και η έννοια του Πολυμορφισμού
Αφαιρετικοί Τύποι Δεδομένων σε Java: Αφηρημένες Κλάσεις & Διεπαφές
Αντικειμενοστρεφής Σχεδίαση: UML & OCL
Το Πλαίσιο Χειρισμού Συλλογών Αντικειμένων στην Java
Ανακλαστικός Προγραμματισμός στην Java
Ροές Δεδομένων και Αρχεία σε Java
Γραφικές Διεπαφές Χρήσης και Java Applets
Κατανεμημένος & Σύγχρονος Προγραμματισμός σε Java
Τα νέα στοιχεία της Java 8 που αφορούν συναρτησιακό προγραμματισμό
Ανάπτυξη Android εφαρμογών με Java
Μαθησιακά Αποτελέσματα:
Οι φοιτητές που ολοκληρώνουν το μάθημα με επιτυχία θα έχουν αποκτήσει: Γνώση. Οι φοιτητές θα έχουν μάθει τα υποδείγματα γλωσσών προγραμματισμού και τα βασικά στοιχεία και οφέλη του αντικειμενοστρεφούς υποδείγματος (αφαιρετικοί τύποι δεδομένων, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός). Κατανόηση: Οι φοιτητές θα έχουν κατανοήσει τα βασικά στοιχεία μιας γλώσσας αντικειμενοστρεφούς προγραμματισμού όπως η Java: κλάσεις και διεπαφές αντικειμένων, εξαιρέσεις μεθόδων και χειρισμός συλλογών αντικειμένων, και πως οι αρχές του αντικειμενοστρεφούς προγραμματισμού μπορούν να μας βοηθήσουν να σπάσουμε το σχεδιασμό και υλοποίηση ενός σύνθετου συστήματος σε αυτόνομες μονάδες που μπορούν να υλοποιηθούν και να ελεγχθούν πιο εύκολα. Εφαρμογή. Οι φοιτητές θα μπορούν να εφαρμόσουν τις γνώσεις τους για να σχεδιάζουν και να
υλοποιούν προγράμματα βάσει των αρχών του αντικειμενοστρεφούς προγραμματισμού, και της γλώσσας Java, από απλά προγράμματα έως σύνθετα όπως η κατασκευή ενός παιχνιδιού βάσει της αρχιτεκτονικής κώδικα του MVC (Model-View-Controller). Επίσης θα μπορούν να δοκιμάζουν (testing), τεκμηριώνουν και προετοιμάζουν ένα επαγγελματικό πρόγραμμα χρησιμοποιώντας τα εργαλεία της Java (assertions, javadoc, packages) καθώς και ολοκληρωμένα περιβάλλοντα ανάπτυξης λογισμικού. Ανάλυση. Οι φοιτητές θα μπορούν από την περιγραφή ενός προβλήματος να καθορίζουν τη λογική για την επίλυση του προβλήματος σύμφωνα με το υπόδειγμα του αντικειμενοστρεφούς προγραμματισμού (άρα βάσει αυτόνομων και συνεργαζόμενων μονάδων) και κατόπιν θα να είναι σε θέση να την υλοποιούν σε ένα Java πρόγραμμα. Σύνθεση: Οι φοιτητές θα μπορούν να συνθέτουν τις γνώσεις και τις ικανότητες που θα έχουν αναπτύξει για τη σχεδίαση και υλοποίηση σύνθετων προγραμμάτων και βάσει της αρχιτεκτονικής Model-View-Component.
Αξιολόγηση: Οι φοιτητές θα μπορούν δοκιμάσουν και να αξιολογήσουν μια προγραμματιστική λύση ενός προβλήματος βάσει των αρχών της αντικειμενοστρεφούς προγραμματισμού.
Αξιολόγηση:
Λεπτομέρειες για την βαθμολόγηση του μαθήματος περιέχονται στην ιστοσελίδα του μαθήματος
Τα μαθήματα του Τμήματος Επιστήμης Υπολογιστών κωδικοποιούνται με τα γράμματα "ΗΥ" και με τρία ψηφία. Το πρώτο ψηφίο δηλώνει το έτος κατά το οποίο συνήθως παρακολουθείται το μάθημα, το δε δεύτερο την επιστημονική περιοχή του μαθήματος:
Πρώτο Ψηφίο
Κανονικό Έτος Παρακολούθησης
1,2,3,4
Πρώτο, Δεύτερο, Τρίτο, Τέταρτο
5,6
Μεταπτυχιακά μαθήματα
7,8,9
Ειδικά θέματα
Δεύτερο Ψηφίο
Επιστημονική Περιοχή
0
Εισαγωγικά - Γενικά
1
Υπόβαθρο (Μαθηματικά, Φυσική)
2
Υλικό και Συστήματα Υπολογιστών
3
Τηλεπικοινωνίες και Δίκτυα
4,5
Συστήματα Λογισμικού και Εφαρμογές
6
Πληροφοριακά Συστήματα
7
Υπολογιστική Όραση και Ρομποτική
8
Αλγοριθμική και Θεωρία Υπολογισμού
9
Ειδικές Εργασίες
Ακολουθούν συνοπτικοί κατάλογοι κατά κατηγορίες των μαθημάτων του προγράμματος βασικών σπουδών του Τμήματος Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης. Μαθήματα των οποίων οι κωδικοί αρχίζουν με "ΜΕΜ" ή "ΦΥΣ" διδάσκονται από το Τμήμα Μαθηματικών Εφαρμοσμένων Μαθηματικών ή το Φυσικό αντιστοίχως και αναφέρονται με τους οικείους κωδικούς. Τα προαπαιτούμενα που αναφέρονται μέσα σε παρενθέσεις συνιστώνται έντονα, αλλά δεν είναι υποχρεωτικά.