Object-oriented Programming
General
- Code: ΠΛΥ04042
- Semester: 4th
- Study Level: Undergraduate
- Course type: Special Background
- Teaching and exams language: Greek
- The course is offered to Erasmus students
- Teaching Methods (Hours/Week): Lectures (2) / Practice Exercises (1) / Laboratory Exercises (1)
- ECTS Units: 5
- Course homepage: https://elearning.cm.ihu.gr/course/view.php?id=335
Course Contents
- Αντικειμενοστραφής προγραμματισμός, βασικές έννοιες (αντικείμενα, κλάσεις, κληρονομικότητα, επαναχρησιμοποίηση, πολυμορφισμός).
- Αντικείμενα και κλάσεις, συναρτήσεις εγκατάστασης, συναρτήσεις αποσύνδεσης.
- Αντικείμενα σαν ορίσματα συναρτήσεων, συναρτήσεις εγκατάστασης με υπέρβαση, επιστροφή αντικειμένων από συναρτήσεις.
- Πίνακες, πίνακες σαν δεδομένα μελών κλάσεων, πίνακες αντικειμένων.
- Υπερφόρτωση τελεστών, ορίσματα τελεστών, τιμές επιστροφής τελεστών, υπερφόρτωση δυαδικών τελεστών (αριθμητικοί τελεστές, τελεστές σύγκρισης, τελεστές απόδοσης τιμής).
- Μετατροπή δεδομένων, μετατροπές μεταξύ βασικών τύπων, μετατροπές μεταξύ αντικειμένων και βασικών τύπων, μετατροπές μεταξύ αντικειμένων διαφορετικών κλάσεων.
- Κληρονομικότητα, παράγωγη και βασική κλάση, προσπέλαση μελών βασικής κλάσης, συναρτήσεις εγκατάστασης της παράγωγης κλάσης, υπερφόρτωση συναρτήσεων-μελών.
- Ιεραρχίες κλάσεων, αφηρημένη βασική κλάση, συναρτήσεις εγκατάστασης και συναρτήσεις μέλη.
- Δημόσια και ιδιωτική κληρονομικότητα, συνδυασμοί προσπέλασης, καθοριστές προσπέλασης.
- Επίπεδα κληρονομικότητας, πολλαπλή κληρονομικότητα, περιεκτικότητα, κλάσεις μέσα σε κλάσεις.
- Δείκτες, οι τελεστές new και delete, δείκτες για αντικείμενα, αναφορά σε μέλη, πίνακες δεικτών προς αντικείμενα.
- Υπερβατικές συναρτήσεις, φίλες συναρτήσεις, στατικές συναρτήσεις, ο δείκτης this.
- Αρχεία και ρεύματα, είσοδος/έξοδος αντικειμένων, δείκτες αρχείων.
Educational Goals
This course provides students with a comprehensive study of the object-oriented programming characteristics. The course emphasizes on the object paradigm including classes, inheritance, polymorphism, virtual functions, friend functions and templates. Students will also be given the opportunity to design and implement a complete object oriented application using the C++ programming language.
General Skills
- Αυτόνομη εργασία.
- Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών.
- Εφαρμογή της γνώσης στην πράξη.
- Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης.
Teaching Methods
- Θεωρητική από έδρας διδασκαλία με συζήτηση και ενεργή συμμετοχή των φοιτητών. Κατά τη διάρκεια του μαθήματος γίνονται παρουσιάσεις σε PowerPoint, καθώς και παρουσίαση και ανάλυση αλγορίθμων.
- Εργαστηριακές ασκήσεις και εργασίες σχεδίασης και υλοποίησης προγραμμάτων.
Use of ICT means
- Χρήση εξειδικευμένου λογισμικού.
- Υποστήριξη της μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας E-Learning ή E-Class.
- Ηλεκτρονικές Ασκήσεις Αυτοαξιολόγησης.
- Επικοινωνία με φοιτητές μέσω e-mail και της ιστοσελίδας του μαθήματος.
Teaching Organization
Activity | Semester workload |
Lectures | 26 |
Practice Exercises | 13 |
Laboratory Exercises | 13 |
Writing laboratory reports, papers, etc. | 20 |
Autonomous Study | 53 |
Total | 125 |
Students Evaluation
Ο τελικός βαθμός του μαθήματος διαμορφώνεται από το βαθμό του θεωρητικού μέρους (που περιλαμβάνει γραπτή τελική εξέταση), καθώς και από ατομικές εργασίες που ανατίθενται στους φοιτητές και αξιολόγηση των εργαστηριακών δεξιοτήτων τους.
- Η γραπτή τελική εξέταση του θεωρητικού μέρους περιλαμβάνει:
- Ερωτήσεις πολλαπλής επιλογής.
- Επίλυση προβλημάτων εφαρμογής των γνώσεων που αποκτήθηκαν.
- Ερωτήσεις σύντομης απάντησης.
- Συγκριτική αξιολόγηση στοιχείων θεωρίας.
- Η αξιολόγηση του εργαστηριακού μέρους του μαθήματος περιλαμβάνει:
- Την αξιολόγηση των προγραμματιστικών δεξιοτήτων που αποκτήθηκαν μέσω εξέτασης εβδομαδιαίων εργασιών και
- την εξέταση μίας τελικής ατομικής εργασίας (project) που ανατίθεται σε κάθε φοιτητή.
Recommended Bibliography
Συγγράμματα μέσω του συστήματος ΕΥΔΟΞΟΣ:
- 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.