Μεθοδολογίες & Γλώσσες Προγραμματισμού Ι [open] (321-2103)
Εργίνα Καβαλλιεράτου
Το μάθημα προσπαθεί να περάσει τη φιλοσοφία του αντικειμενοστρεφούς προγραμματισμού. Για το λόγω αυτό περιλαμβάνει παραδόσεις που εξηγούν πως από το πρόβλημα μπορούμε να φτάσουμε στις κλάσεις. Ωστόσο, για να μη γίνει βαρετό, οι παραδόσεις αυτές αφορούν μικρά μέρη του θεωρητικού μαθήματος, που κατά τα άλλα περιέχει απλά παραδείγματα και τεχνικές από C++.
Less
Το μάθημα προσπαθεί να περάσει τη φιλοσοφία του αντικειμενοστρεφούς προγραμματισμού. Για το λόγω αυτό περιλαμβάνει παραδόσεις που εξηγούν πως από το πρόβλημα μπορούμε να φτάσουμε στις κλάσεις. Ωστόσο, για να μη γίνει βαρετό, οι παραδόσεις αυτές αφορούν μικρά μέρη του θεωρητικού μαθήματος, που κατά τα άλλα περιέχει απλά παραδείγματα και τεχνικές από C++.
Το μάθημα προσπαθεί να περάσει τη φιλοσοφία του αντικειμενοστρεφούς προγραμματισμού. Για το λόγω αυτό περιλαμβάνει παραδόσεις που εξηγούν πως από το πρόβλημα μπορούμε να φτάσουμε στις κλάσεις. Ωστόσο, για να μη γίνει βαρετό, οι παραδόσεις αυτές αφορούν μικρά μέρη του θεωρητικού μαθήματος, που κατά τα άλλα περιέχει απλά παραδείγματα και τεχνικές από C++.
Syllabus
Περιεχόμενο μαθήματος
Αντικειμενοστραφής προγραμματισμός, Κλάσεις, Αντικειμενοστραφής Ανάλυση και Σχεδίαση, Αντικείμενα, Αναδρομή, Δομητής, Aποδομητής, Συναρτήσεις-μέλη, Συναρτήσεις const, Inline συναρτήσεις, Σύνθετες κλάσεις, Είσοδος / Έξοδος στη C++, Έξοδος σε αρχείο, Ανάγνωση από αρχείο, Βρόχοι ελέγχου, Χρήση δεικτών, Δέσμευση μνήμης, Αναφορές, Παράγωγη κλάση, Κληρονομικότητα, Overriding, Overloading vs. Overriding, Virtual Συναρτήσεις, Αφηρημένες κλάσεις, Πολυμορφισμός, Virtual Κληρονομικότητα.
Μαθησιακοί στόχοι
Το μάθημα αποσκοπεί στο να εισάγει τους φοιτητές στον αντικειμενοστραφή προγραμματισμό με χρήση της C++. Στοχεύει σε τρεις κατευθύνσεις· o φοιτητής θα πρέπει να είναι σε θέση: 1) να εντοπίζει πιθανές κλάσεις και να προσδιορίζει τη δομή τους από μια σύντομη περιγραφή, 2) να κατανοεί υπάρχοντα κώδικα, και 3) να αναπτύσσει σύστημα σε C++.
Βιβλιογραφία
Βιβλία- κείμενα (Text/books)
- C++ Προγραμματισμός, Deitel, Harvey M., Deitel, Paul J
- Μάθετε τη C++ σε 24 ώρες, Liberty Jesse
Πηγές στο Διαδίκτυο
Για ασκήσεις:
http://en.wikibooks.org/wiki/C++_Programming/Exercises/Iterations
http://www.cplusplus.com/forum/articles/12974/
http://www.worldbestlearningcenter.com/index_files/cpp-tutorial-variables_datatypes_exercises.htm
http://www.caveofprogramming.com/guest-articles/c/basic-c-programming-test-your-knowledge/
Μέθοδοι διδασκαλίας
Δια ζώσης διδασκαλία.
Μέθοδοι αξιολόγησης
Τελική γραπτή εξέταση.
Προαπαιτούμενα
Γνώση γλώσσας C (321-1203, Εισαγωγή στην Πληροφορική) θα βοηθήσει αλλά δεν απαιτείται.
Διδάσκοντες
Ergina Kavallieratou was born in Kefalonia, Greece. She received her Diploma in Electrical and Computer Engineering in 1996 from the Polytechnic School of the University of Patras and her PhD in Handwritten Optical Character Recognition and Document Image processing from the same department in 2000. Since September 2004, she is a member of the teaching staff of the department of Information and Communication System Engineering, University of the Aegean, as Assistant Professor since 2012 and as vice director of the Artificial Intelligence laboratory, since 2014. Her research interests include Optical Character Recognition, Document Image Analysis, Computer Vision and Pattern Recognition.
Ομάδα στόχος
Οι φοιτητές/απόφοιτοι Πληροφοριακών τμημάτων, του τμήματος Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων, Πολυτεχνικών Σχολών Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών.
Βασικό αντικείμενο πληροφορικής και απαραίτητο για όσους ενδιαφέρονται για Τεχνολογία Λογισμικού, Προγραμματισμό κ.α.
Προτεινόμενα συγγράμματα
1. C++ Προγραμματισμός, Deitel, Harvey M., Deitel, Paul J
2. Μάθετε τη C++ σε 24 ώρες, Liberty Jesse
Αντικειμενοστραφής προγραμματισμός, Κλάσεις, Αντικειμενοστραφής Ανάλυση και Σχεδίαση, Αντικείμενα, Αναδρομή, Δομητής, Aποδομητής, Συναρτήσεις-μέλη, Συναρτήσεις const, Inline συναρτήσεις, Σύνθετες κλάσεις, Είσοδος / Έξοδος στη C++, Έξοδος σε αρχείο, Ανάγνωση από αρχείο, Βρόχοι ελέγχου, Χρήση δεικτών, Δέσμευση μνήμης, Αναφορές, Παράγωγη κλάση, Κληρονομικότητα, Overriding, Overloading vs. Overriding, Virtual Συναρτήσεις, Αφηρημένες κλάσεις, Πολυμορφισμός, Virtual Κληρονομικότητα.
Το μάθημα αποσκοπεί στο να εισάγει τους φοιτητές στον αντικειμενοστραφή προγραμματισμό με χρήση της C++. Στοχεύει σε τρεις κατευθύνσεις· o φοιτητής θα πρέπει να είναι σε θέση: 1) να εντοπίζει πιθανές κλάσεις και να προσδιορίζει τη δομή τους από μια σύντομη περιγραφή, 2) να κατανοεί υπάρχοντα κώδικα, και 3) να αναπτύσσει σύστημα σε C++.
Βιβλία- κείμενα (Text/books)
- C++ Προγραμματισμός, Deitel, Harvey M., Deitel, Paul J
- Μάθετε τη C++ σε 24 ώρες, Liberty Jesse
Πηγές στο Διαδίκτυο
Για ασκήσεις:
http://en.wikibooks.org/wiki/C++_Programming/Exercises/Iterations
http://www.cplusplus.com/forum/articles/12974/
http://www.worldbestlearningcenter.com/index_files/cpp-tutorial-variables_datatypes_exercises.htm
http://www.caveofprogramming.com/guest-articles/c/basic-c-programming-test-your-knowledge/
Δια ζώσης διδασκαλία.
Τελική γραπτή εξέταση.
Γνώση γλώσσας C (321-1203, Εισαγωγή στην Πληροφορική) θα βοηθήσει αλλά δεν απαιτείται.
Ergina Kavallieratou was born in Kefalonia, Greece. She received her Diploma in Electrical and Computer Engineering in 1996 from the Polytechnic School of the University of Patras and her PhD in Handwritten Optical Character Recognition and Document Image processing from the same department in 2000. Since September 2004, she is a member of the teaching staff of the department of Information and Communication System Engineering, University of the Aegean, as Assistant Professor since 2012 and as vice director of the Artificial Intelligence laboratory, since 2014. Her research interests include Optical Character Recognition, Document Image Analysis, Computer Vision and Pattern Recognition.
Οι φοιτητές/απόφοιτοι Πληροφοριακών τμημάτων, του τμήματος Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων, Πολυτεχνικών Σχολών Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών.
Βασικό αντικείμενο πληροφορικής και απαραίτητο για όσους ενδιαφέρονται για Τεχνολογία Λογισμικού, Προγραμματισμό κ.α.
1. C++ Προγραμματισμός, Deitel, Harvey M., Deitel, Paul J
2. Μάθετε τη C++ σε 24 ώρες, Liberty Jesse
- Μειονεκτήματα Δομημένου Προγραμματισμού
- Αντικειμενοστρεφής προγραμματισμός
- Ορισμοί
- Κλάσεις
- Αντικείμενα
- Χαρακτηριστικά ΑΠ
- Επικοινωνία με την κλάση
- Πρόσβαση σε στοιχεία κλάσης
- Τελεστής Εμβέλειας ::
- Απόδοση τιμής σε μεταβλητή
- Επιστροφή δεδομένων
- Constructor (Δομητής )
- Destructor (αποδομητής)
- Εμβέλεια
- Εμφωλίαση
- Τύπος αποθήκευσης
- Συναρτήσεις ως παράμετροι
- Πέρασμα με τιμή
- Πολλαπλά return
- Προκαθορισμένοι Παράμετροι
- Υπερφόρτωση συναρτήσεων
- Inline συναρτήσεις
- Αναδρομή
- Constructor και destructor
- Συναρτήσεις-μέλη const
- Inline συναρτήσεις
- Δηλώσεις κλάσεων
- Σύνθετες κλάσεις
- Περίπτωσης χρήσης
- UML
- Ροή εργασιών για τον προσδιορισμό απαιτήσεων/περιπτώσεων χρήσης
- Διάγραμμα δραστηριότητας περίπτωσης χρήσης
- Μοντέλο ανάλυσης
- Πακέτα ανάλυσης
- Αρχιτεκτονική Ανάλυση
- Ανάλυση περιπτώσεων Χρήσης
- Εντοπισμός Συνεργασίας
- Ανάλυση Κλάσεων
- Προσδιορισμός πεδίων
- Προσδιορισμός σχέσεων
- Είσοδος / Έξοδος στη C++
- Ειδικοί χαρακτήρες
- Έξοδος σε αρχείο
- Ανάγνωση από αρχείο
- Παραδείγματα
- Βρόχοι ελέγχου
- while
- do...while
- for
- switch
- Χρήση pointer
- Τελεστής *
- Τελεστής &
- Γενικοί δείκτες
- Ανάκληση
- Δέσμευση μνήμης
- new / delete
- Pointer σε αντικείμενο
- Επαναδέσμευση
- Δείκτες και πίνακες
- Δείκτες ως παράμετροι
- Δείκτες και strings
- Pointer σε κλάση
- Δέσμευση μνήμης σε κλάση
- Δείκτης this
- Αναφορές (references)
- Που ορίζουμε αναφορά
- Αναφορές σε αντικείμενα
- Πέρασμα με αναφορά
- Πέρασμα πολλαπλών τιμών
- Κλάση Βάσης
- Παράγωγη κλάση
- Απλή κληρονομικότητα
- Protected δεδομένα
- Constructors & Destructors
- overloading
- Overriding
- Overloading Vs Overriding
- Απόκρυψη συναρτήσεων
- Κλήση overridden συνάρτησης
- Virtual Συναρτήσεις
- Abstract Classes
- Κανόνες πρόσβασης Κληρονομικότητας
- Ανάγκη για πολλαπλή κληρονομικότητα
- Πολλαπλή κληρονομικότητα
- Constructors σε αντικείμενα πολλαπλής κληρονομικότητας
- Διπλή συνάρτηση
- Κοινή κλάση βάσης
- Virtual Κληρονομικότητα
- Mixin classes
- Αφηρημένοι τύποι δεδομένων
- Pure Virtual συναρτήσεις
- Static Member
- Static Member Functions
- Ισότητα αντικειμένων
- Friend κλάσεις και συναρτήσεις
- Εξαιρέσεις
- Εμφωλευμένες Εξαιρέσεις
- Εξαιρέσεις και συναρτήσεις
- Εξαιρέσεις σε διαδοχικά καλούμενες συναρτήσεις
- Κλάση exception
- Δημιουργία δικών μας εξαιρέσεων
Επανάληψη στις βασικές έννοιες του μαθήματος
Περιλαμβάνει δείγματα από εργαστηριακές ασκήσεις του μαθήματος.
Open Academic Course
Num. of Visits : 3637
Num. of Hits : 25247