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

Κωδικός Μαθήματος: Ν2-2010
Εβδομαδιαίες ώρες διδασκαλίας: 5 (3Θ + 2Ε)
Πιστωτικές μονάδες: 6
Τυπικό εξάμηνο διδασκαλίας: 2ο
Κατηγορία μαθήματος: Μάθημα Ειδικής Υποδομής
Προαπαιτούμενα: Προγραμματισμός Υπολογιστών

Μαθησιακά αποτελέσματα

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

  • Εξηγούν τις βασικές έννοιες του αντικειμενοστραφούς προγραμματισμού και τον τρόπο υλοποίησής τους στη γλώσσα C++
  • Διαβάζουν και τροποποιούν καλά ορισμένα C++ προγράμματα
  • Κάνουν ορθές επιλογές αντικειμενοστραφούς σχεδίασης για μικρά και μεσαία λογισμικά συστήματα
  • Υλοποιούν προγραμματιστικές λύσεις που ενσωματώνουν χαρακτηριστικά κληρονομικότητας και πολυμορφισμού.
  • Υλοποιούν ορθό, αρθρωτό, επαναχρησιμοποιήσιμο και συντηρήσιμο κώδικα Αναπτύσσουν προγραμματιστικές λύσεις με χρήση τυποποιημένων γλωσσικών κατασκευών της C++, αλλά και χαρακτηριστικών όπως οι μετατροπές τύπων, οι εξαιρέσεις και τα πρότυπα συναρτήσεων/κλάσεων.

Περιεχόμενο μαθήματος
  • Αρχές και μηχανισμοί αντικειμενοστραφούς ανάλυσης και σχεδίασης λογισμικού.
  • Επισκόπηση του αντικειμενοστραφούς προγραμματισμού στη γλώσσα C++.
  • Βασικά στοιχεία της C++, διαφορές με τη C.
  • Οργάνωση και μεταγλώττιση προγραμμάτων C++.
  • Ορισμός νέων τύπων. Αφαίρεση στα δεδομένα.
  • Κλάσεις Ι (συναρτήσεις κατασκευής – καταστροφής, συναρτήσεις κατασκευής αντιγράφων, inline συναρτήσεις, υπερφόρτωση).
  • Χώροι ονομάτων. Κληρονομικότητα.
  • Κλάσεις ΙΙ (εικονικές και πλήρως εικονικές συναρτήσεις, αφηρημένες κλάσεις).
  • Πρότυπα συναρτήσεων και πρότυπα κλάσεων.
  • Η βιβλιοθήκη Standard Template Library (STL) της C++.
  • Είσοδος / Έξοδος στη C++.
  • Χειρισμός εξαιρέσεων.

Βιβλιογραφία
  1. BjarneStroustrup, ” Προγραμματισμός με τη C++”, Παπασωτηρίου, 2009
  2. Robert Lafore, “Αντικειμενοστρεφής Προγραμματισμός με τη C++”, 4η Έκδοση, Κλειδάριθμος, 2006
  3. Bruce Eckel, “Thinking In C++” (Second Edition), Volume One & Two, Prentice Hall, 2000
  4. ISO International Standard: Programming Languages – C++, 1998
  5. Stanley B. Lippman, Josee Lajoie, “C++ Primer” (4th Edition), Addison-Wesley, 2005
  6. Herbert Schildt, “C++: The Complete Reference” (4th Edition), McGraw-Hill, 2004
  7. The Standard Template Library: http://www.sgi.com/tech/stl
  8. Bertrand Meyer, “Object -Oriented Software Construction” (2nd Edition), Prentice Hall, 2000

Internationalisation I18n