Αντικειμενοστραφής Προγραμματισμός
Γενικά
- Κωδικός: ΠΛΥ04042
- Εξάμηνο: 4ο
- Επίπεδο Σπουδών: Προπτυχιακό
- Τύπος μαθήματος: Ειδικού υποβάθρου
- Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
- Το μάθημα διατίθεται σε φοιτητές Erasmus
- Μονάδες ECTS: 5
Περιεχόμενα μαθήματος
Αντικειμενοστραφής προγραμματισμός, βασικές έννοιες (αντικείμενα, κλάσεις, κληρονομικότητα, επαναχρησιμοποίηση, πολυμορφισμός)
• Αντικείμενα και κλάσεις, συναρτήσεις εγκατάστασης, συναρτήσεις αποσύνδεσης.
• Αντικείμενα σαν ορίσματα συναρτήσεων, συναρτήσεις εγκατάστασης με υπέρβαση, επιστροφή αντικειμένων από συναρτήσεις.
• Πίνακες, πίνακες σαν δεδομένα μελών κλάσεων, πίνακες αντικειμένων.
• Υπερφόρτωση τελεστών, ορίσματα τελεστών, τιμές επιστροφής τελεστών, υπερφόρτωση δυαδικών τελεστών (αριθμητικοί τελεστές, τελεστές σύγκρισης, τελεστές απόδοσης τιμής).
• Μετατροπή δεδομένων, μετατροπές μεταξύ βασικών τύπων, μετατροπές μεταξύ αντικειμένων και βασικών τύπων, μετατροπές μεταξύ αντικειμένων διαφορετικών κλάσεων.
• Κληρονομικότητα, παράγωγη και βασική κλάση, προσπέλαση μελών βασικής κλάσης, συναρτήσεις εγκατάστασης της παράγωγης κλάσης, υπερφόρτωση συναρτήσεων-μελών.
• Ιεραρχίες κλάσεων, αφηρημένη βασική κλάση, συναρτήσεις εγκατάστασης και συναρτήσεις μέλη.
• Δημόσια και ιδιωτική κληρονομικότητα, συνδυασμοί προσπέλασης, καθοριστές προσπέλασης.
• Επίπεδα κληρονομικότητας, πολλαπλή κληρονομικότητα, περιεκτικότητα, κλάσεις μέσα σε κλάσεις.
• Δείκτες, οι τελεστές new και delete, δείκτες για αντικείμενα, αναφορά σε μέλη, πίνακες δεικτών προς αντικείμενα.
• Υπερβατικές συναρτήσεις, φίλες συναρτήσεις, στατικές συναρτήσεις, ο δείκτης this.
• Αρχεία και ρεύματα, είσοδος/έξοδος αντικειμένων, δείκτες αρχείων.
Μαθησιακοί Στόχοι
Η εξοικείωση των φοιτητών με τις έννοιες και τα χαρακτηριστικά της αντικειμενοστραφούς προσέγγισης στον προγραμματισμό, θα τους δώσει τη δυνατότητα να μπορούν να σχεδιάζουν και να υλοποιούν προγράμματα μεγάλων απαιτήσεων και μεγέθους με πιο αποτελεσματικό και οικονομικό τρόπο, βασίζοντας την ανάπτυξή τους στις αρχές του αντικειμενοστραφούς προγραμματισμού. Επίσης, δίνεται η δυνατότητα στους φοιτητές να υλοποιήσουν μία εφαρμογή στην πράξη, εκμεταλλευόμενοι τα πλεονεκτήματα της αντικειμενοστραφούς προσέγγισης, μέσα από μία ατομική εργασία που εκπονούν και η οποία τους ανατίθεται κατά τη διάρκεια του εξαμήνου.
Γενικές Ικανότητες
• Αυτόνομη εργασία
• Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών
• Εφαρμογή της γνώσης στην πράξη
• Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης
Μέθοδοι Διδασκαλίας
α) Θεωρητική από έδρας διδασκαλία με συζήτηση και ενεργή συμμετοχή των φοιτητών. Κατά τη διάρκεια του μαθήματος γίνονται παρουσιάσεις σε PowerPoint, καθώς και παρουσίαση και ανάλυση αλγορίθμων.
β) Εργαστηριακές ασκήσεις και εργασίες σχεδίασης και υλοποίησης προγραμμάτων.
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
α) Χρήση εξειδικευμένου λογισμικού.
β) Υποστήριξη της μαθησιακής διαδικασίας μέσω της
ηλεκτρονικής πλατφόρμας E-Learning ή E-Class.
γ) Ηλεκτρονικές Ασκήσεις Αυτοαξιολόγησης.
δ) Επικοινωνία με φοιτητές μέσω e-mail και της ιστοσελίδας
του μαθήματος
Αξιολόγηση Φοιτητών
Ο τελικός βαθμός του μαθήματος διαμορφώνεται από το
βαθμό του θεωρητικού μέρους (που περιλαμβάνει γραπτή
τελική εξέταση), καθώς και από ατομικές εργασίες που
ανατίθενται στους φοιτητές και αξιολόγηση των
εργαστηριακών δεξιοτήτων τους.
1. Η γραπτή τελική εξέταση του θεωρητικού μέρους
περιλαμβάνει:
– Ερωτήσεις πολλαπλής επιλογής
– Επίλυση προβλημάτων εφαρμογής των γνώσεων
που αποκτήθηκαν.
– Ερωτήσεις σύντομης απάντησης
– Συγκριτική αξιολόγηση στοιχείων θεωρίας.
2. Η αξιολόγηση του εργαστηριακού μέρους του μαθήματος
περιλαμβάνει:
– Την αξιολόγηση των προγραμματιστικών δεξιοτήτων
που αποκτήθηκαν μέσω εξέτασης εβδομαδιαίων
εργασιών και
– την εξέταση μίας τελικής ατομικής εργασίας (project)
που ανατίθεται σε κάθε φοιτητή.
Συνιστώμενη Βιβλιογραφία
Συγγράμματα μέσω του συστήματος ΕΥΔΟΞΟΣ
• Savitch Walter, Πλήρης C++ 4η Έκδοση, Εκδόσεις Τζιόλα, 2011
• Νίκος Μ. Χατζηγιαννάκης, Η γλώσσα C++ σε βάθος, 1η Έκδοση Εκδόσεις Κλειδάριθμος, 2008
Συγράμματα που διανέμονται μέσω του Ιδρύματος ή της ηλεκτρονικής σελίδας του μαθήματος
• Ε. Ούτσιος, Αντικειμενοστραφής Προγραμματισμός, Σημειώσεις Θεωρίας, 2019
• Ε. Ούτσιος, Αντικειμενοστραφής Προγραμματισμός, Σημειώσεις Εργαστηρίου, 2019
Συμπληρωματική προτεινόμενη βιβλιογραφία
• Robert Lafore, Αντικειμενοστραφής Προγραμματισμός με τη C++, μετάφραση Δ. Τσιλογιάννης, 4η Έκδοση Εκδόσεις Κλειδάριθμος, 2006
• Bjerne Strousetrup, Η γλώσσα προγραμματισμού C++, μετάφραση Π. Καναβός, 4η Έκδοση, Εκδόσεις Κλειδάριθμος, 2014
• Stephen Prata, Η βίβλος της C++ Primer Plus, μετάφραση Κ. Ιατρίδης, 3η Έκδοση, Εκδόσεις Γκιούρδας, 2000