Project Description

Ο Αντικειμενοστραφής Προγραμματισμός με την C++

Το σεμινάριο αποτελεί Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με την C++. Για την αποτελεσματική παρακολούθηση του σεμιναρίου απαιτούνται γνώσεις Εισαγωγής στον Προγραμματισμό με την C++


Διάρκεια : 9 Εβδομάδες


Μέθοδοι διδασκαλίας:

On line: Από το σπίτι σας παρακολουθείτε το μάθημα ζωντανά μέσω συστήματος on-line διδασκαλίας που σας παρέχει πλήρεις δυνατότητες συμμετοχής και παρέμβασης ακριβώς όπως θα παρακολουθούσατε ένα σεμινάριο σε διδασκαλία πρόσωπο με πρόσωπο.

Δια ζώσης: Τμήματα διδασκαλίας δια ζώσης ενδεχομένως να συσταθούν ανάλογα με την ζήτηση του σεμιναρίου σε τοπικό επίπεδο.

Asynchronous teaching:Με την χρήση λογισμικού ασύγχρονης διδασκαλίας παρέχεται υλικό από τον εκπαιδευτή και υποστήριξη των προγραμματιστικών εργασιών που θα αναλάβετε στα πλαίσια του σεμιναρίου.

Skype: Επικοινωνία με skype για την παροχή εξατομικευμένης on-line βοήθειας σε εργασίες προγραμματισμού.

  1. Εισαγωγή: Ο αντικειμενοστραφής προγραμματισμός(objectorientedprogramming) μπορεί να οριοθετηθεί από τα θεμελιώδη χαρακτηριστικά γνωρίσματά του: την ενσωμάτωση (encapsulation), την κληρονομικότητα (inheritance) και τον πολυμορφισμό (polymorphism). Η ενότητα αυτή εισάγει τον αναγνώστη στην έννοια του αντικειμενοστραφούς προγραμματισμού παρουσιάζοντας την έννοια της ενσωμάτωσης. Στην σχετική συζήτηση περιλαμβάνεται και η παρουσίαση των βασικών προσδιοριστών πρόσβασης (access specifiers), public και private καθώς και των φίλων συναρτήσεων και φίλων κλάσεων (friend functions, friend classes).
  2. Οι δημιουργοί (constructors) και ο καταστροφέας (destructor): Εδώ παρουσιάζονται οι δημιουργοί της κλάσης συμπεριλαμβανομένου του δημιουργού αντιγραφής και ο καταστροφέας της κλάσης. Η συζήτηση περιλαμβάνει επεξήγηση της αναγκαιότητας των δημιουργών και του καταστροφέα καθώς και του τρόπου υλοποίησής και χρήσης των.
  3. Το γενικό περίγραμμα και η αναλλοίωτη της κλάσης (class invariant): Στην ενότητα αυτή παρουσιάζεται το γενικό περίγραμμα της κλάσης, δηλ. τι (και γιατί) θα πρέπει να περιλαμβάνει ο ορισμός μιας κλάσης ώστε αυτή να θεωρείται πλήρης. Επίσης γίνεται παρουσίαση των συνθηκών που θα πρέπει να πληρούν τα αντικείμενα της κλάσης ώστε να διατηρούν την ακεραιότητά τους (integrity).
  4. Σταθερές μέθοδοι, στατικά μέλη (static members) και απαριθμητοί τύποι (Enumerated): Παρουσιάζεται η χρήση στις κλάσεις των λέξεων-κλειδιών:  const, static και enum.
  5. Υπερφόρτωση τελεστών (Operator overloading): Είναι προφανές ότι οι ενσωματωμένοι τελεστές (build in operators) δεν έχουν προγραμματιστεί για να λειτουργούν με τις κλάσεις που αναπτύσσονται από τους διάφορους χρήστες. Έτσι η υπερφόρτωση των τελεστών αποκτά ιδιαίτερη σημασία στο πλαίσιο της αντικειμενοστραφούς C. Στην ενότητα αυτή δίνεται ιδιαίτερη βαρύτητα στην υπερφόρτωση των τελεστών ώστε να λειτουργούν με αντικείμενα και δίνονται παραδείγματα υπερφόρτωσης για την συντριπτική πλειοψηφία των διαθέσιμων τελεστών.
  6. Πρότυπα κλάσεων (class templates) : Συζητείται  εδώ η έννοια της πρότυπης κλάσης. Περιλαμβάνονται οι έννοιες των εξειδικεύσεων προτύπων (Template Specialization) και των παραμέτρων προτύπων (non-type template parameters).
  7. Οργάνωση αρχείων πηγαίου κώδικα (Header File Organization ): Πως οργανώνουμε ένα project σε αρχεία. Ποιος ο ρόλος των .h και ποιος ο ρόλος των .cpp αρχείων. Ποια η ιδιαιτερότητα των πρότυπων κλάσεων ή συναρτήσεων ως προς την οργάνωση των αρχείων πηγαίου κώδικα.
  8. Η κλάση string: Ανάλυση της κλάσης διαχείρισης αλφαριθμητικών σειρών.
  9. Κληρονομικότητα (Inheritance): Γονικές και παράγωγες κλάσεις, Έλεγχος προσπέλασης και κληρονομικότητα (Access Control), Φίλες κλάσεις και Συναρτήσεις (Friendship), Τύποι κληρονομικότητας (true inheritance, protected, private)
  10. Πολυμορφισμός (Polymorphism): Στατική και  Δυναμική διασύνδεση (static and late binding), Μετατροπή σε γονική κλάση (Upcasting), μετατροπή σε παράγωγη  (downcasting), Εικονικές μέθοδοι (virtual methods), Εικονικοί καταστροφείς (virtual destructors),  Αφηρημένες κλάσεις (Abstract classes), πολλαπλή κληρονομικότητα (Multiple inheritance), το πρόβλημα του διαμαντιού (the diamond problem), αναγνώριση τύπου κατά τον χρόνο εκτέλεσης (Run time type identification).
  11. Εξαιρέσεις (Exceptions) και κλάσεις: Μειονεκτήματα της διαχείρισης λαθών χωρίς μηχανισμό εξαιρέσεων. Τα πλεονεκτήματα των εξαιρέσεων, Try-catch blocks, προδιαγραφές εξαιρέσεων, εξαιρέσεις της STL. Ορισμός εξαιρέσεων από τον χρήστη.

Κόστος

200

OCAJP Certification facebook youTube linkedin
Lefteris Moussiades
Associate Professor (Software Systems-Clustering Algorithms)
Computer and Informatics Engineering Department, TEI EMT
p: +30 2510 462346 m: +30 6973051580
a: Agios Loukas - 65404 - Kavala - Greece
w: iiwm.teikav.edu.gr/lmous/ e: lmous@teiemt.gr

Ο Αντικειμενοστραφής Προγραμματισμός με την C++

Οι ώρες και οι μέρες των διαλέξεων θα διαμορφωθούν με την ολοκλήρωση των εγγραφών κατόπιν συνεννοήσεως με τους ενδιαφερομένους.

ΕΓΓΡΑΦΗ ΣΤΟ ΣΕΜΙΝΑΡΙΟ