Μεθοδολογίες & Γλώσσες Προγραμματισμού Ι [open] (321-2103)

Εργίνα Καβαλλιεράτου

Description

 

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

CC - Attribution-NonCommercial-ShareAlike
Περιεχόμενο μαθήματος

Αντικειμενοστραφής προγραμματισμός, Κλάσεις, Αντικειμενοστραφής Ανάλυση και Σχεδίαση, Αντικείμενα, Αναδρομή, Δομητής, 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

Units

  1. Μειονεκτήματα Δομημένου Προγραμματισμού
  2. Αντικειμενοστρεφής προγραμματισμός
  3. Ορισμοί
  4. Κλάσεις
  5. Αντικείμενα
  6. Χαρακτηριστικά ΑΠ
  1. Επικοινωνία με την κλάση
  2. Πρόσβαση σε στοιχεία κλάσης
  3. Τελεστής Εμβέλειας ::
  4. Απόδοση τιμής σε μεταβλητή
  5. Επιστροφή δεδομένων
  6. Constructor (Δομητής )
  7. Destructor (αποδομητής)
  8. Εμβέλεια
  9. Εμφωλίαση
  10. Τύπος αποθήκευσης
  11. Συναρτήσεις ως παράμετροι
  12. Πέρασμα με τιμή
  13. Πολλαπλά return
  14. Προκαθορισμένοι Παράμετροι
  15. Υπερφόρτωση συναρτήσεων
  16. Inline συναρτήσεις
  17. Αναδρομή
  1. Constructor και destructor
  2. Συναρτήσεις-μέλη const
  3. Inline συναρτήσεις
  4. Δηλώσεις κλάσεων
  5. Σύνθετες κλάσεις
  1. Περίπτωσης χρήσης
  2. UML
  3. Ροή εργασιών για τον προσδιορισμό απαιτήσεων/περιπτώσεων χρήσης
  4. Διάγραμμα δραστηριότητας περίπτωσης χρήσης
  5. Μοντέλο ανάλυσης
  6. Πακέτα ανάλυσης
  7. Αρχιτεκτονική Ανάλυση
  8. Ανάλυση περιπτώσεων Χρήσης
  9. Εντοπισμός Συνεργασίας
  10. Ανάλυση Κλάσεων
  11. Προσδιορισμός πεδίων
  12. Προσδιορισμός σχέσεων
  1. Είσοδος / Έξοδος στη C++
  2. Ειδικοί χαρακτήρες
  3. Έξοδος σε αρχείο
  4. Ανάγνωση από αρχείο
  5. Παραδείγματα
  1. Βρόχοι ελέγχου
  2. while
  3. do...while
  4. for
  5. switch
  1. Χρήση pointer
  2. Τελεστής *
  3. Τελεστής &
  4. Γενικοί δείκτες
  5. Ανάκληση
  6. Δέσμευση μνήμης
  7. new / delete
  8. Pointer σε αντικείμενο
  9. Επαναδέσμευση
  10. Δείκτες και πίνακες
  11. Δείκτες ως παράμετροι
  12. Δείκτες και strings
  13. Pointer σε κλάση
  14. Δέσμευση μνήμης σε κλάση
  15. Δείκτης this
  1. Αναφορές (references)
  2. Που ορίζουμε αναφορά
  3. Αναφορές σε αντικείμενα
  4. Πέρασμα με αναφορά
  5. Πέρασμα πολλαπλών τιμών
  1. Κλάση Βάσης
  2. Παράγωγη κλάση
  3. Απλή κληρονομικότητα
  4. Protected δεδομένα
  5. Constructors & Destructors
  6. overloading
  7. Overriding
  8. Overloading Vs Overriding
  9. Απόκρυψη συναρτήσεων
  10. Κλήση overridden συνάρτησης
  11. Virtual Συναρτήσεις
  12. Abstract Classes
  13. Κανόνες πρόσβασης Κληρονομικότητας
  1. Ανάγκη για πολλαπλή κληρονομικότητα
  2. Πολλαπλή κληρονομικότητα
  3. Constructors σε αντικείμενα πολλαπλής κληρονομικότητας
  4. Διπλή συνάρτηση
  5. Κοινή κλάση βάσης
  6. Virtual Κληρονομικότητα
  7. Mixin classes
  8. Αφηρημένοι τύποι δεδομένων
  9. Pure Virtual συναρτήσεις
  1. Static Member
  2. Static Member Functions
  3. Ισότητα αντικειμένων
  4. Friend κλάσεις και συναρτήσεις
  1. Εξαιρέσεις
  2. Εμφωλευμένες Εξαιρέσεις
  3. Εξαιρέσεις και συναρτήσεις
  4. Εξαιρέσεις σε διαδοχικά καλούμενες συναρτήσεις
  5. Κλάση exception
  6. Δημιουργία δικών μας εξαιρέσεων

Επανάληψη στις βασικές έννοιες του μαθήματος

Περιλαμβάνει δείγματα από εργαστηριακές ασκήσεις του μαθήματος.

Open Academic Course

Open Courses
OpenCourses Level: A+

Num. of Visits :  3637
Num. of Hits :  25247

Calendar