7ο εξάμηνο


Μάθημα: Αντικειμενοστραφής Προγραμματισμός ΙI



Κωδικός Μαθήματος: ΜΚ31
Επίπεδο Μαθήματος: Προπτυχιακό
Τύπος Μαθήματος: Ειδικού Υποβάθρου
Εξάμηνο: 7
Κατεύθυνση: Κατεύθυνση Υπολογιστών και Ηλεκτρονικής
Πιστωτικές Μονάδες: 5
Εβδομαδιαίες Ώρες διδασκαλίας: 4
Erasmus: Όχι
Ιστοσελίδα: eclass.uowm.gr/courses/ICTE344/
Γλώσσα διδασκαλίας:Ελληνική
Γενικές Ικανότητες:

-

Περιεχόμενο:

Το μάθημα εστιάζει στον Αντικειμενοστραφή Προγραμματισμό με πρακτική εξάσκηση τη γλώσσα προγραμματισμού C++. Δίνεται έμφαση στο αντικειμενοστραφές προγραμματιστικό μοντέλο , καθώς και σε κάποιες πιο προχωρημένες προγραμματιστικές έννοιες (αναφορές, πέρασμα παραμέτρων, δυναμική δέσμευση μνήμης, φιλικές συναρτήσεις). Οι φοιτητές μαθαίνουν να υλοποιούν τις τεχνικές αντικειμενοστρεφούς προγραμματισμού (κλάσεις, αντικείμενα, ενθυλάκωση, αφαίρεση, σύνθεση, ιεραρχίες και κληρονομικότητα, πολυμορφισμός) στη γλώσσα C++.

Ενότητα 1: Βασικές έννοιες  Αντικειμενοστραφούς Προγραμματισμού, σύγκριση με τη γλώσσα Java, Iστορικό της C++ και εφαρμογές

Ενότητα 2: Ανάπτυξη κώδικα C++, Αντικείμενα και κλάσεις, συναρτήσεις εγκατάστασης, συναρτήσεις αποσύνδεσης

Ενότητα 3: Κλάσεις & Αντικείμενα, Αντικείμενα σαν ορίσματα συναρτήσεων, συναρτήσεις εγκατάστασης με υπέρβαση, επιστροφή αντικειμένων από συναρτήσεις, συναρτήσεις προσπέλασης δεδομένων μελών.

Ενότητα 4: Υπερβατικές συναρτήσεις, φίλες συναρτήσεις, στατικές συναρτήσεις, δείκτης this

Ενότητα 5: Υπερφόρτωση τελεστών, ορίσματα τελεστών, τιμές επιστροφής τελεστών, υπερφόρτωση δυαδικών τελεστών (αριθμητικοί τελεστές, τελεστές σύγκρισης, τελεστές απόδοσης τιμής)

Ενότητα 6: Πίνακες, πίνακες σαν δεδομένα μελών κλάσεων, πίνακες αντικειμένων

Ενότητα 7: Περιεκτικότητα, αντικείμενα ως δεδομένα μέλη κλάσεων , τρόπος χειρισμού των αντικειμένων, παραδείγματα χρήσης περιεκτικότητας

Ενότητα 8: Κληρονομικότητα, παράγωγη και βασική κλάση, προσπέλαση μελών βασικής κλάσης, συναρτήσεις εγκατάστασης της παράγωγης κλάσης, υπερφόρτωση συναρτήσεων-μελών

Ενότητα 9: Δείκτες, οι τελεστές new και delete, δείκτες για αντικείμενα, αναφορά σε μέλη, πίνακες δεικτών προς αντικείμενα

Ενότητα 10: Ιεραρχίες κλάσεων, αφηρημένη βασική κλάση, συναρτήσεις εγκατάστασης και συναρτήσεις μέλη. Δημόσια και ιδιωτική κληρονομικότητα, συνδυασμοί προσπέλασης, καθοριστές προσπέλασης

Ενότητα 11: Επίπεδα κληρονομικότητας, πολλαπλή κληρονομικότητα, περιεκτικότητα, κλάσεις μέσα σε κλάσεις

Ενότητα 12: Αρχεία και ρεύματα, είσοδος/έξοδος αντικειμένων, δείκτες αρχείων.

Ενότητα 13: Templates, Γενετικός προγραμματισμός, επαναχρησιμοποίηση κώδικα, πρότυπα κλάσεων και συναρτήσεων

Αναμενόμενα μαθησιακά αποτελέσματα:

Οι φοιτητές που ολοκληρώνουν επιτυχώς το μάθημα θα πρέπει να είναι σε θέση να:

  • Ταξινομήσουν και κατανοήσουν τα υφιστάμενα προγραμματιστικά μοντέλα.
  • Υλοποιήσουν βασικές σχέσεις ανάμεσα σε κλάσεις, όπως κληρονομικότητα, πολυμορφισμός, περιεκτικότητα στη γλώσσα c++.
  • Εκτελούν υπερφόρτωση τελεστών, μοναδιαίων , αριθμητικών, σύγκρισης καθώς και τελεστών εισόδου, εξόδου.
  • Χειρίζονται συναρτήσεις καθολικές, φιλικές αλλά και συναρτήσεις μέλη των κλάσεων και να μπορούν να χρησιμοποιούν επιτυχώς μεταβλητές και συναρτήσεις και μεταβλητές const, static, final.
  • Αποθηκεύουν και να ανακτούν πληροφορίες σε αρχεία κειμένου και δυαδικά αρχεία.
  • Εκτελούν δυναμική δέσμευση μνήμης, χειριζόμενοι δείκτες.
  • Να υλοποιούν templates 
Προαπαιτούμενα:

Κανένα

Τρόπος Παράδοσης:

Διαλέξεις και εργαστήρια

Χρήση Τεχνολογιών Πληροφορίας και επικοινωνιών:

-

Οργάνωση Διδασκαλίας:

-

Αξιολόγηση Φοιτητών:

20% εργαστήριο, 20% ομαδικές εργασίες, 60% γραπτή εξέταση

Προτεινόμενη Βιβλιογραφία:

[1] Deitel Harvey M.,Deitel Paul J., C++ Προγραμματισμός, Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ ΕΕ. 

[2] Savitch Walter, Πλήρης C++, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε.

[3] B. Stroustrup, The C++ Programming Language, Addison Wesley.

[4] S. Al, W. Clayton, "Η Βίβλος της C++",  Α. Γκιούρδα & ΣΙΑ ΟΕ.

Διδάσκων: Μπίμπη Σταματία