Αντικειμενοστρεφής Προγραμματισμός (2ΚΠ03)
Διδάσκων : Δημήτριος Ιακωβίδης
Βοηθός : Κωνσταντίνος Αποστολόπουλος
ΕίδοςΥποχρεωτικό
Εξάμηνο2
ΠερίοδοςΕΕ
ECTS5
Ώρες Θεωρίας3
Ώρες Εργαστηρίου2
Περιγραφή
Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό. Η γλώσσα προγραμματισμού Java, ομοιότητες και διαφορές με τη γλώσσα C. Τύποι μεταβλητών. Τελεστές. Βρόχοι. Διακλαδώσεις. Κλάσεις και αντικείμενα. Μέθοδοι. Υπερφόρτωση μεθόδων. Δημιουργοί. Ενθυλάκωση. Τυπικές μέθοδοι. Αναφορές. Πίνακες. Κληρονομικότητα. Αφηρημένες κλάσεις και μέθοδοι. Διεπαφές. Πολυμορφισμός. Πρότυπα σχεδίασης. Κατασκευή και χρήση πακέτων (βιβλιοθηκών). Κατασκευή τεκμηρίωσης. Ολοκληρωμένα περιβάλλοντα ανάπτυξης εφαρμογών. Γενικευμένες κλάσεις και μέθοδοι. Λίστες. Εσωτερικές κλάσεις. Εξαιρέσεις. Αρχεία. Γραφικές διεπαφές χρήστη. Μικροεφαρμογές. Πολυνηματισμός. Ανάπτυξη ολοκληρωμένων εφαρμογών με αξιοποίηση εξωτερικών πακέτων. Άλλες γλώσσες αντικειμενοστρεφούς προγραμματισμού, π.χ., C++, C#. Εφαρμογές Android.
Μαθησιακοί Στόχοι

Στόχος του μαθήματος είναι η εξοικείωση των φοιτητών με τις έννοιες του αντικειμενοστρεφούς προγραμματισμού, και η παροχή θεωρητικής και πρακτικής γνώσης αναφορικά με μεθόδους και εργαλεία που χρησιμοποιούνται για την ανάπτυξη αντικειμενοστρεφώς σχεδιασμένου επαναχρησιμοποιήσιμου και επεκτάσιμου λογισμικού. Το μάθημα έχει τόσο θεωρητικές όσο και πρακτικές συνιστώσες. Οι φοιτητές έχουν την ευκαιρία να γνωρίσουν τεχνικές αντικειμενοστρεφους σχεδιασμού και ανάπτυξης λογισμικού, και πολλά παραδείγματα με τη χρήση γλωσσών αντικειμενοστρεφούς προγραμματισμού όπως C++ και Java.

Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές θα πρέπει να είναι σε θέση να:

  • Γνωρίζουν και να κατανοούν αποδεδειγμένα, θέματα στο γνωστικό πεδίο του αντικειμενοστρεφούς σχεδιασμού και ανάπτυξης λογισμικού.
  • Γνωρίζουν και να έχουν κριτική άποψη αναφορικά με σύγχρονες εξελίξεις στην αιχμή του πεδίου του αντικειμενοστρεφούς σχεδιασμού λογισμικού.
  • Συνδυάζουν τις γνώσεις τους για την ανάπτυξη μεθοδολογιών που εξασφαλίζουν την επιτυχή επίλυση νέων, σύνθετων, προβλημάτων σε επίπεδο σπουδής και πραγματικών προβλημάτων.
Συγγράμματα/Βιβλιογραφία
  • Προγραμματισμός με τη C++, Stroustrup Bjarne, Α. ΠΑΠΑΣΩΤΗΡΙΟΥ & ΣΙΑ Ο.Ε., 1η εκδ./2009, ΑΘΗΝΑ
  • Java Προγραμματισμός, Deitel Paul J.,Deitel Harvey M., Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ ΕΕ, 8η έκδ./2010, ΑΘΗΝΑ
  • Αντικειμενοστρεφής Προγραμματισμός- Java, Θραμπουλίδης Κλεάνθης, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε., 3η έκδ./2005, ΘΕΣ/ΝΙΚΗ