Αντικειμενοστρεφής Προγραμματισμός
Γενικά
- Κωδικός: 46.02
- Εξάμηνο: Επιλ. Δ1 4ο
- Επίπεδο Σπουδών: Προπτυχιακό
- Τύπος μαθήματος: Επιλογής
- Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
- Το μάθημα διατίθεται σε φοιτητές Erasmus
- Μέθοδοι Διδασκαλίας (Ώρες/εβδ.): Θεωρία (2) / Εργαστήριο (1)
- Μονάδες ECTS: 4
- Σελίδα μαθήματος: https://exams-sm.the.ihu.gr/course/view.php?id=31
- Διδάσκοντες: Μανωλάκης Δημήτριος
Περιεχόμενα μαθήματος
Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό, πλεονεκτήματα & μειονεκτήματα, χαρακτηριστικά της αντικειμενοστραφούς προσέγγισης. Εντολές εισόδου – εξόδου. Συναρτήσεις, τρόποι κλήσης συναρτήσεων, συναρτήσεις με προκαθορισμένες τιμές παραμέτρων. Υπερφόρτωση συναρτήσεων, αναδρομικές συναρτήσεις. Κατανομή και διαχείριση της μνήμης, δείκτες και δυναμικά κατανεμημένη μνήμη. Αλφαριθμητικά και δείκτες. Εισαγωγή στις κλάσεις και τα αντικείμενα, αντικειμενοστρεφής σχεδίαση. Κώδικας Δόμησης (Constructors), Κώδικας αποδόμησης (destructors), υπερφόρτωση. Υπερφόρτωση τελεστών. Ρεύματα εισόδου/εξόδου, τελεστές και συναρτήσεις διαχείρισης ροών, επεξεργασία αρχείων: σειριακά αρχεία, αρχεία άμεσης προσπέλασης. Αλφαριθμητικά ως αντικείμενα, συναρτήσεις χειρισμού τους. Δυναμικές δομές δεδομένων — συνδεδεμένες λίστες. Εξαιρέσεις και χειρισμός σφαλμάτων. Κληρονομικότητα — Παράγωγες και Βασικές κλάσεις. Τελεστές που επιδρούν σε bit (bitwise operators. Εργαστηριακές ασκήσεις.
Μαθησιακοί Στόχοι
Μετά την επιτυχή παρακολούθηση του θεωρητικού και του εργαστηριακού μέρους μαθήματος προσδοκάται ότι ο φοιτητής:
• Θα είναι εξοικειωμένος με τις έννοιες του αντικειμενοστραφούς προγραμματισμού
• Θα έχει αποκτήσει και εμβαθύνει γνώσεις σχετικά με τον αντικειμενοστρεφή προγραμματισμό.
• Θα έχει κατανοήσει τις έννοιες των κληρονομικότητας.
• Θα γνωρίζει και θα είναι εξοικειωμένος με τις δυναμικές δομές δεδομένων.
• Θα μπορεί να αναλύει, συνθέτει και αναπτύσσει προγράμματα που ακολουθούν την αντικειμενοστρεφή προσέγγιση.
Γενικές Ικανότητες
Ευχέρεια στη ανάπτυξη σύνθετων προγραμμάτων που βασίζονται στην αντικειμενοστρεφή προσέγγιση.
Εντοπισμός και διόρθωση λαθών σε σε αντικειμενοστρεφή προγράμματα.
Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών.
Αυτόνομη εργασία.
Ομαδική εργασία.
Μέθοδοι Διδασκαλίας
Διαλέξεις, Εργαστηριακές Ασκήσεις, Διαδικτυακή καθοδήγηση. Προβολή Διαφανειών με υπολογιστή.
Χρήση υπολογιστών για ανάπτυξη προγραμμάτων.
Χρήση ηλεκτρονικού ταχυδρομείου.
Χρήση διαδικτυακών βοηθημάτων διδασκαλίας (moodle/eclass, πλατφόρμες τηλεδιάσκεψης).
Στις πλατφόρμες ηλεκτρονικής διδασκαλίας (moodle/eclass) είναι ανεβασμένα: Αναλυτικές Σημειώσεις, Ερωτήσεις Αξιολόγησης, Εκφωνήσεις, Εργαστηριακών Ασκήσεων με αναλυτικές οδηγίες.
Αξιολόγηση Φοιτητών
Γλώσσα Αξιολόγησης: Ελληνική/ (Αγγλική αν χρειαστεί)
Θεωρητικό Μέρος: Μια τελική εξέταση που περιλαμβάνει ερωτήσεις σύντομης απάντησης, ερωτήσεις σύντομης ανάπτυξης, ανάλυση τμημάτων κώδικα, σύνθεση τμημάτων κώδικα, ανάπτυξη πλήρων προγραμμάτων
Εργαστηριακό Μέρος: Πρακτική εξέταση σε υπολογιστή στο εργαστήριο όπου αξιολογείται η ικανότητα και επιδεξιότητα του φοιτητή στην ανάπτυξη προγραμμάτων. Παράλληλα γίνεται συνεχής αξιολόγηση των εργαστηριακών ασκήσεων κατά την εκτέλεσή τους. Κριτήρια
αξιολόγησης στην κάθε αξιολόγηση είναι η ορθότητα της λειτουργίας και, δευτερευόντως, η αποτελεσματικότητα του κώδικα.
Ο τελικός βαθμός προκύπτει από το 70% του βαθμού του θεωρητικού μέρους και από το 30% του βαθμού στο εργαστηριακό μέρος.
Συνιστώμενη Βιβλιογραφία
Η γλώσσα C++ σε βάθος, Ν.Μ. Χατζηγιαννάκης, Εκδόσεις Κλειδάριθμος, 2η έκδοση
Αντικειμενοστρεφής προγραμματισμός με τη C++, του R. Lafore, 2006, Εκδόσεις Κλειδάριθμος, 2006
C++ Προγραμματισμός, Deitel, Εκδόσεις Γκιούρδας, 2003
-Συναφή επιστημονικά περιοδικά:
Computing in Science & Engineering (co-published by IEEE and AIP)
IEEE Transactions on Computers
IEEE Transactions on Software Engineering
Science of Computer Programming
-Σχετικοί Ιστότοποι:
www.tutorialspoint.com/cprogramming/
http://www.tutorialspoint.com/cplusplus/
http://www.learn-c.org/
http://www.cplusplus.com/
http://www.cprogramming.com