K10 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Χειμερινό Εξάμηνο 2012-2013
Νέα Προθεσμία Υποβολής: Παρασκευή 15 Μαρτίου 2013
Νέα Προθεσμία Υποβολής: Παρασκευή 22 Φεβρουαρίου 2013
Νέα Προθεσμία Υποβολής: Τετάρτη 9 Ιανουαρίου 2013
Γενικά Στοιχεία
Εξάμηνο: Γ'
Χρόνος και τόπος παραδόσεων:
- Πέμπτη, 9:00 - 11:00 (περιττοί αριθμοί μητρώου) και
11:00 - 13:00 (άρτιοι αριθμοί μητρώου),
αίθουσα Α2
- Παρασκευή, 11:00 - 13:00 (άρτιοι αριθμοί μητρώου) και
13:00 - 15:00(περιττοί αριθμοί μητρώου),
αίθουσα Α2
(Σημείωση: Ενδέχεται, κάποια(ες) φορά(ές) να χρειαστεί να γίνει
μάθημα για φοιτητές με περιττούς αριθμούς μητρώου σε ώρες που
έχουν καθορισθεί για φοιτητές με άρτιους αριθμούς μητρώου ή αντίστροφα.
Στην περίπτωση αυτή θα ενημερωθείτε εγκαίρως.)
Διδάσκουσα: Ιζαμπώ Καράλη (izambo)
Μεταπτυχιακοί συνεργάτες:
- Στέφανος Σταμάτης (stef)
- Νίκος Ποθητός (pothitos)
- Αριστοτέλης Γλεντής (arisg)
- Λουκία Καρανικόλα (lkaranik)
- Γιώργος Καστρίνης (gkastrinis)
- Βασίλειος-Μάριος Αναστασίου (astyanax)
- Παναγιώτης Διαμαντόπουλος (panos_10d)
- Νικόλαος-Ρωμανός Κατσιπουλάκις (katsip)
- Ιωάννης Βλαχόπουλος (johnvl)
- Σωτήριος-Ευστάθιος Μανέας (smaneas)
- Παναγιώτης Σάκκος (sdi0700163)
Φιλική Συμμετοχή:
- Εργκύς Ντόνα
- Διονύσης Μαυρωτάς
Σεμινάριο-Θέματα C#: Δημήτρης-Ηλίας Γκανάτσιος
Σεμινάριο-Θέματα Java:
Παναγιώτης Διαμαντόπουλος, Βασίλης Παπαταξιάρχης
Σεμινάριο-Θέματα F#: Αγγελος Μπιμπούδης
Εγκατάσταση και διαχείριση συστήματος φόρουμ:
- Δημήτρης-Ηλίας Γκανάτσιος
- Στέφανος Σταμάτης
- Γιώργος Καστρίνης
Συντονισμός φόρουμ μαθήματος:
- Θοδωρής Γεωργίου
- Δημήτρης Ραβιόλος
- Εργκύς Ντόνα
Περιεχόμενο Μαθήματος
Έννοιες/Γλωσσικές Δομές Αντικειμενοστραφούς Προγραμματισμού
Η Γλώσσα Προγραμματισμού C++
Προγραμματισμός σε Αντικειμενοστραφές Περιβάλλον
- Μάθημα 1: Σύνοψη μαθήματος.
- Μάθημα 2: Προγραμματιστικά περιβάλλοντα.
- Μάθημα 3: Δομή προγραμμάτων C++. Μεταγλώττιση προγραμμάτων C++.
Αρχεία-επικεφαλίδες.
(Παραδείγματα).
- Μάθημα 4: Γενικά για τον αντικειμενοστραφή προγραμματισμό και τις κλάσεις.
Μηχανισμοί του αντικειμενοστραφούς προγραμματισμού.
- Μάθημα 5: Τύποι ορισμένοι από το χρήστη.
Ιδιότητες του αντικειμενοστραφούς προγραμματισμού.
- Μάθημα 6:
- Διαδικαστικός Προγραμματισμός σε C++ (I):
Εκφράσεις, τελεστές, εντολές, ενσωματωμένοι τύποι δεδομένων.
Ορίσματα στη συνάρτηση main. Παραλλαγές Παραδείγματος
Διαδικαστικού Προγραμματισμού.
( Παραδείγματα ).
- Εμβέλεια ονομάτων
(Παραδείγματα).
- Μάθημα 7: Διαδικαστικός Προγραμματισμός σε C++ (IΙ):
- Έμβέλεια ονομάτων μεταβλητών VS διάρκεια ζωής (lifetime) μεταβλητών
(Παραδείγματα).
- Εισαγωγή στην επώνυμη εμβέλεια: η περίπτωση των Χώρων Ονομάτων
(Παραδείγματα).
- Μάθημα 8: Διαδικαστικός Προγραμματισμός σε C++ (ΙII):
- Μάθημα 9: Διαδικαστικός Προγραμματισμός σε C++ (IV):
- Μάθημα 10:
- Διαδικαστικός Προγραμματισμός σε C++ (V):
- Ορισμός νέων τύπων, εισαγωγή στις κλάσεις.
Ονοματολογία για τις κλάσεις.
Ορισμός νέου τύπου μέσω struct - Προσδιορισμός ορατότητας
( Παράδειγμα ).
- Μάθημα 11:
- Ορισμός νέου τύπου μέσω class
( Παράδειγμα ).
- Ο δείκτης this
( Παράδειγμα ).
- accessors/mutators, δομή προγραμμάτων με κλάσεις
( Παράδειγμα ).
- Συναρτήσεις-μέλη inline. Συναρτήσεις κατασκευής-καταστροφής
( Παράδειγμα ).
- Μάθημα 12:
- Συναρτήσεις κατασκευής-καταστροφής
(
Παράδειγμα ).
Συμπληρωματικό εκπαιδευτικό υλικό:
Πίνακες αντικειμένων
- Μάθημα 13:
- Συναρτήσεις κατασκευής αντιγράφων
(
Παράδειγμα ).
- Εισαγωγή στη Σύνθεση Κλάσεων.
- Μάθημα 14:
- Σύνθεση κλάσεων, χρήση default τιμών σε συναρτήσεις κατασκευής,
χρήση initializer list
(Παράδειγμα)
- Αρχικοποίηση μελών-δεδομένων τύπου δείκτη
Προβληματική .
Συμπληρωματικό εκπαιδευτικό υλικό:
Δηλώσεις κλάσεων
- Μάθημα 15:
- Αρχικοποίηση μελών-δεδομένων τύπου δείκτη (συνέχεια)
Ασφαλής .
- Σύνθεση κλάσεων (συνέχεια)
(
Παράδειγμα)
- Μάθημα 16:
- Επαναορισμός του τελεστή ανάθεσης
(
Παράδειγμα).
- Συναρτήσεις κατασκευής - καταστροφής: λειτουργία
κατά το πέρασμα παραμέτρων συναρτήσεων και επιστροφής τιμής
τους κατά τιμή
(Παράδειγμα).
- Συναρτήσεις κατασκευής - καταστροφής: λειτουργία κατά το πέρασμα
παραμέτρων συναρτήσεων και επιστροφής τιμής τους κατ'αναφορά
(Παράδειγμα).
- Μάθημα 17:
Σύνθεση κλάσεων (συνέχεια): συναρτήσεις κατασκευής αντιγράφων και ο τελεστής ανάθεσης
(Παράδειγμα)
Συμπληρωματικό εκπαιδευτικό υλικό:
(
constructor - copy constructor - assignment operator )
- Μάθημα 18:
- Κλήση συναρτήσεων με τύπο ορισμάτων ή/και επιστροφής να είναι κλάση (συνέχεια)
- Σταθερές και κλάσεις, σταθερά μέλη κλάσεων, στατικά μέλη κλάσεων
( Παράδειγμα ).
- Εισαγωγή στην κληρονομικότητα
Τύποι ορισμένοι από το χρήστη:
Το παράδειγμα των πτήσεων .
- Μάθημα 19:
- Εισαγωγή στην κληρονομικότητα
(Παράδειγμα ).
- Προβληματισμοί σχετικά με την κληρονομικότητα.
- Μάθημα 20: Εικονικές συναρτήσεις (virtual funtions) - Πλήρως εικονικές συναρτήσεις (pure virtual) -
αφηρημένες κλάσεις (abstract base classes)
(Παράδειγμα )
Συμπληρωματικό εκπαιδευτικό υλικό:
(
virtual/pure virtual συναρτήσεις )
- Μάθημα 21:
- Μάθημα 22:
Είσοδος - έξοδος στη C++:
Συμπληρωματικό εκπαιδευτικό υλικό:
- Μάθημα 23:
Ανάπτυξη κώδικα C++ για συγκεκριμένο πρόβλημα:
- Μάθημα 24:
- Συνοπτική παρουσίαση της γλώσσας F#
(Διαφάνειες)
- Παρουσίαση STL - Ανάπτυξη κώδικα C++ για συγκεκριμένο πρόβλημα (συνέχεια)
- Κληρονομικότητα στη C++ (συνέχεια)
Συμπληρωματικό εκπαιδευτικό υλικό:
(
constructors/destructors in class composition, class inheritance and function calls )
- Μάθημα 25:
Σεμινάριο Java (Μέρος I)
(
Διαφάνειες (Μέρος I) )
- Μάθημα 26: Σεμινάριο Java (Μέρος II)
Διαφάνειες (Μέρος II)
compiled - decompiled κώδικας με χρήση του DJ java decompiler.
- Μάθημα 27:
Επανάληψη μέσω παραδείγματος υλοποίησης σε C++
(Κώδικας).
- Μάθημα 28: Σεμινάριο C#
Διαφάνειες
Βιβλιογραφία
και ένα από τα παρακάτω:
- Bruce Eckel, "Τρόπος Σκέψης στη C++, Τόμος 1",
εκδόσεις Μ. Γκιούρδας, 2009
- Bjarne Strοustrup, "Η Γλώσσα Προγραμματισμού C++"
(Τρίτη Αμερικάνικη Έκδοση), εκδόσεις "Κλειδάριθμος", 1999
- Bjarne Strοustrup, "Προγραμματισμός με τη C++",
εκδόσεις "Παπασωτηρίου", 2009
Ανάπτυξη κώδικα C++ για συγκεκριμένο πρόβλημα - Εισαγωγή στη Standard Template Library
- Κώδικας/Σημειώσεις: Νίκος Ποθητός
Φόρουμ/Λίστα επικοινωνίας
Βασικό μέσο επικοινωνίας, ενημέρωσης και διατύπωσης/επίλυσης
αποριών σχετικά με το μάθημα είναι
ένα φόρουμ (λίστα) επικοινωνίας που βρίσκεται στη διεύθυνση
http://lists.di.uoa.gr.
Σύμφωνα και με αυτά που ήδη ξέρετε για τη χρήση του, από το μάθημα Κ04,
η παρακολούθηση του φόρουμ/λίστας είναι ανοικτή σε οποιονδήποτε, αλλά
για να μπορεί κάποιος να στείλει και μηνύματα πρέπει να κάνει εγγραφή
εδώ. Πριν προχωρήσετε
στην αίτησή εγγραφής σας, διαβάστε προσεκτικά τους κανόνες εγγραφής που
αναφέρονται στη σχετική σελίδα. Επισημαίνεται ότι το όνομα χρήστη που
πρέπει να δώσετε κατά την εγγραφή σας είναι το
stdXXXXX/studXXXX/gradXXXX σας, καθώς και σαν e-mail αυτό που
σας παρέχεται από το τμήμα.
Τέλος, διαβάστε πολύ προσκετικά και τους
κανόνες του φόρουμ.
Λογισμικό Μαθήματος
- Χρηση του GCC compiler για την C++
(g++)
Εκτενέστερη Βιβλιογραφία
- Stanley B. Lippman, Josee Lajoie, "C++ Primer" (3rd Edition),
Addison-Wesley, 1998
- Stanley B. Lippman, Josee Lajoie, Barbara E. Moo,
"C++ Primer" (4th Edition), Addison-Wesley, 2005
- Bjarne Stroustrup, "Προγραμματισμός με τη C++,
Εκδόσεις Παπασωτηρίου, 2009
- Robert Lafore,
"Αντικειμενοστρεφής προγραμματισμός με τη C++", εκδόσεις Κλειδάριθμος,
2005
- Herbert Schildt, "C++: The Complete Reference" (2nd Edition),
McGraw-Hill, 1995
- Nicholas A. Solter, Scott J. Kleper,
"Professional C++ Programming", Hungry Minds Inc,U.S., 2005
- Till Jeske, "C++ Nitty Gritty", Addison-Wesley, 2000
(Pearson Education, 2002)
- H.M. Deitel and P.J. Deitel, "C++:How to program" (3rd Edition),
Prentice Hall, 2001
- Bertrand Meyer, "Object-Oriented Software Construction" (2nd Edition),
Prentice Hall, 2000
- Paul Wang,
"Standard C++ with Object-orientated Programming", Brooks Cole, 2000
- Russel Winder, Graham Roberts, "Developing Java Software" (2nd Edition),
John Wiley and Sons, 2000
- Juan Dent H.,
"An Academic Overview of the .NET Framework with an Emphasis
on Object Orientation Using C#", Microsoft Corporation, 2003
Χρήσιμοι Σύνδεσμοι
Κι ακόμα ...
Εργασία
Το μάθημα συνοδεύεται από ένα πρακτικό μέρος που αποτελείται
από ομάδες ασκήσεων ή/και μια τελική εργασία.
Οδηγίες Υποβολής
| Γραπτά: | 0.7
|
| Ασκήσεις: | 0.3
|