K10 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Χειμερινό Εξάμηνο 2025-2026
(Προθεσμία υποβολής: 11/1/2026)
Γενικά Στοιχεία
Εξάμηνο: Γ'
Χρόνος και Τόπος Παραδόσεων:
- Τρίτη, 15:00 - 17:00, Αμφιθέατρο
- Παρασκευή, 15:00 - 17:00, Αμφιθέατρο
Διδάσκουσα: Ιζαμπώ Καράλη (izambo)
Υπεύθυνοι Εργαστηρίων:
- Αθανασία Κολοβού (akolovou)
- Νίκος Περδικοπάνης (nikosp)
Το εργαστήριο απεθύνεται στους φοιτητές του Γ' Εξαμήνου και πραγματοποιείται
σε τμήματα των 2 ωρών.
Έναρξη Εργαστηρίων: 13η Οκτωβρίου.
Συνεργάτες Μαθήματος:
- Βασίλειος-Μάριος Αναστασίου (astyanax)
- Γιώργος Καστρίνης (gkastrinis)
- Εργκύς Ντόνα (e.dona)
- Στέφανος Σταμάτης (stef)
- Ορέστης Πολυχρονίου (orestis
amazon.com)
- Νίκος Ποθητός (pothitos)
Περιεχόμενο Μαθήματος
Έννοιες/Γλωσσικές Δομές Αντικειμενοστραφούς Προγραμματισμού
Η Γλώσσα Προγραμματισμού C++
Η Γλώσσα Προγραμματισμού Java
Προγραμματισμός σε Αντικειμενοστραφές Περιβάλλον
- Μάθημα 1: Σύνοψη μαθήματος.
Γενικά περί αντικειμενοστραφούς προγραμματισμού.
Βήματα από τον διαδικαστικό στον αντικειμενοστραφή
προγραμματισμό (I).
- Μάθημα 2: Βήματα από τον διαδικαστικό στον αντικειμενοστραφή
προγραμματισμό (II).
Αφαίρεση στα δεδομένα - τύποι ορισμένοι από τον χρήστη.
Μηχανισμοί του αντικειμενοστραφούς προγραμματισμού.
Ιδιότητες του αντικειμενοστραφούς προγραμματισμού.
- Μάθημα 3:
- Μάθημα 4:
- Μάθημα 5:
- Σύνοψη σχετκά με τις κλάσεις
- Ονοματολογία για τις κλάσεις
- Αναγνώστριες/μεταβάλλουσες συναρτήσεις-μέλη,
χρήση του const
- Συζήτηση για τη μεθοδολογία ορισμού μιας κλάσης
- Ορισμός νέου τύπου μέσω class και παραδείγματα χρήσης του
- Συζήτηση και παραδείγματα χρήσης του δείκτη this
- Δομή προγραμμάτων με κλάσεις
(Παραδείγματα).
- Μάθημα 6: Αφαίρεση στα Δεδομενα - Κλάσεις (συνέχεια)
- Συναρτήσεις-μέλη inline
- Συναρτήσεις αρχικοποίησης
- Συναρτήσεις καταστροφής
(Παραδείγματα).
- Μάθημα 7: Αφαίρεση στα Δεδομενα - Κλάσεις (συνέχεια)
- Συναρτήσεις αρχικοποίησης - συναρτήσεις καταστροφής (συν.)
- Συναρτήσεις αρχικοποίησης:
χρήση λίστας αρχικοποίησης μελών-δεδομένων
- Αρχικοποίηση αντικειμένων μέσω αντιγραφής
(Παραδείγματα).
- Μάθημα 8: Αφαίρεση στα Δεδομενα - Κλάσεις (συνέχεια)
- Επαναορισμός του τελεστή ανάθεσης
(Παράδειγμα).
- Πέρασμα παραμέτρων συναρτήσεων και επιστροφής τιμής τους κατά τιμή - Πέρασμα παραμέτρων συναρτήσεων και επιστροφής τιμής τους κατ' αναφορά
(Παραδείγματα).
- Μάθημα 9: Αφαίρεση στα Δεδομενα - Κλάσεις (συνέχεια)
- Κλάσεις και const
- Στατικά μέλη κλάσεων
(Παράδειγμα).
- Μάθημα 10: Εισαγωγή στη σύνθεση κλάσεων
(Παράδειγμα).
- Μάθημα 11: Σύνθεση κλάσεων (συνέχεια)
(Παραδείγματα).
- Μάθημα 12:
- Σύνθεση κλάσεων (συνέχεια)
(Παράδειγμα).
- Εισαγωγή στην κληρονομικότητα
- Μάθημα 13: Κληρονομικότητα στην C++: βασικοί προβληματισμοί
(Παραδείγματα).
- Μάθημα 14: Κληρονομικότητα στην C++: αναπαράσταση και χρήση αντικειμένων, ορατότητα, αρχικοποίηση, καταστροφή
(Παραδείγματα).
- Μάθημα 15: Κληρονομικότητα στην C++ (συνέχεια): αρχικοποίηση, καταστροφή, χρήση (αντικειμένων) υποκλάσης
(Παραδείγματα).
- Μάθημα 16: Κληρονομικότητα στην C++ (συνέχεια): εικονικές συναρτήσεις
(Παραδείγματα).
- Μάθημα 17: Κληρονομικότητα στην C++ (συνέχεια): εξάσκηση στις εικονικές συναρτήσεις
(Παραδείγματα).
- Μάθημα 18: Κληρονομικότητα στην C++ (συνέχεια): εξάσκηση στις εικονικές συναρτήσεις (συνέχεια), εικονικές συναρτήσεις καταστροφής, επαναορισμός τελεστή ανάθεσης σε υποκλάση, αφηρημένες κλάσεις
(Παραδείγματα).
- Μάθημα 19: Εισαγωγή στη γλώσσα Java.
Βιβλιογραφία
κι ένα από τα παρακάτω:
- Bruce Eckel, "Τρόπος Σκέψης στη C++, Τόμος 1",
εκδόσεις Μ. Γκιούρδας, 2009
- Bjarne Strοustrup, "Η Γλώσσα Προγραμματισμού C++"
(Τέταρτη Αμερικάνικη Έκδοση), εκδόσεις "Κλειδάριθμος", 2014
- Bjarne Strοustrup, "Προγραμματισμός με τη C++", 2η έκδοση,
εκδόσεις "Παπασωτηρίου", 2018
- Γ. Τσελίκης, "C++: Από τη Θεωρία στην Εφαρμογή (Β' Έκδοση)",
εκδότης "Γ. Τσελίκης", 2023
Συμπληρωματική Βιβλιογραφία του Μαθήματος για τη Java
Το εκπαιδευτικό υλικό από το site της ORACLE για τη Java:
The Java Tutorials: Learning the Java Language
Μέσα επικοινωνίας για το μάθημα:
Λογισμικό Μαθήματος
- Χρηση του GCC compiler για την C++
(g++)
- Χρήση της Java SE Platform (JDK)
Εκτενέστερη Βιβλιογραφία
- Stanley B. Lippman, Josee Lajoie, "C++ Primer" (3rd Edition),
Addison-Wesley, 1998
- Stanley B. Lippman, Josee Lajoie, Barbara E. Moo,
"C++ Primer" (5th Edition), Addison-Wesley, 2012
- Robert Lafore,
"Αντικειμενοστρεφής προγραμματισμός με τη C++", εκδόσεις Κλειδάριθμος,
2006
- Marc Gregoire, Nicholas A. Solter, Scott J. Kleper,
"Professional C++ Programming", Wrox, 2011
- Paul Wang,
"Standard C++ with Object-orientated Programming", Brooks Cole, 2000
- Bruce Eckel,
"Thinking In Java" (Fourth Edition),
Prentice Hall, 2006
- Russel Winder, Graham Roberts,
"Developing Java Software" (3nd Edition),
John Wiley and Sons, 2006
- Eric Roberts,
"The Art and Science of Java",
Prentice Hall, 2007
- Ken Arnold, James Gosling, David Holmes,
"The Java Programming Language" (Fourth Edition),
Addison-Wesley Professional, 2005
- Bertrand Meyer, "Object-Oriented Software Construction" (2nd Edition),
Prentice Hall, 2000
- Grady Booch, Robert Maksimchuk, Michael Engle, Bobbi Young, Jim Conallen και Kelli Houston.
Object-Oriented Analysis and Design with Applications.
3rd Edition. Addison-Wesley Professional, 2007
- Erich Gamma, Richard Helm, Ralph Johnson και John Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994
- Francis G. McCabe. Logic and Objects. Prentice Hall International (UK) Ltd., 1992
- Rod Ellis. Data Abstraction and Program Design. Pitman Publishing, 1991
Χρήσιμοι Σύνδεσμοι
- Η σελίδα του μαθήματος
Κ04-Εισαγωγή στον Προγραμματισμό
- Ν. Ποθητού:
Αποσφαλμάτωση στις γλώσσες C/C++ και ευκολίες του vim
- Είσοδος - έξοδος στη C++:
- Ανάπτυξη κώδικα C++ για συγκεκριμένο πρόβλημα - Εισαγωγή στη Standard Template Library (από παλαιότερες παραδόσεις)
Κώδικας/Σημειώσεις: Νίκος Ποθητός
-
The C++ Resources Network
- cppreference.com
-
Java Platform, Standard Edition & Java Development Kit
Version 25 API Specification
- NetBeans Website
- Eclipse Website
-
The C++ Programming Language: from
Bjarne Stroustrup
-
The Java Language Environment: Contents (A White Paper, May 1996)
by: James Gosling and Henry McGilton
-
The Java Tutorials
-
The Java Language Specification (Java SE 25 Edition),
James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley, Daniel Smith, Gavin Bierman (2025)
-
Ελεύθερη απ'ευθείας ηλεκτρονική διάθεση των βιβλίου του Bruce Eckel
-
Programming -- Principles and Practice Using C++ :
Η σελίδα του βιβλίου του B. Stroustrup
-
C++: από τη Θεωρία στην Εφαρμογή :
Η σελίδα του βιβλίου του Γ. Τσελίκη
- Dr. Dobb's Journal Interview with Alex Stepanov
- Keynote by James Gosling about the origins of Java
-
The Java Virtual Machine Specification, Java SE 25 Edition
Κι ακόμα ...
Ασκήσεις/Εργασία
Το μάθημα συνοδεύεται από ένα πρακτικό μέρος που αποτελείται από τα εξής:
- Μια σειρά ασκήσεων.
Για τους φοιτητές του Γ' Εξαμήνου, οι ασκήσεις θα εκπονηθούν
στα πλαίσια των εργαστηρίων.
Για τους φοιτητές μεγαλύτερων εξαμήνων,
θα εκπονηθούν ανεξάρτητα και ενδέχεται να εξεταστούν προφορικά.
- Mια τελική εργασία ανεξάρτητη από τα εργαστήρια.
Τα παραδοτέα θα ελεγχθούν σε περιβάλλον Linux.
Σημείωση: Θα ακολουθήσει προφορική εξέταση της εργασίας.
Βαθμολογία
ΠΡΟΣΟΧΗ: Για να ληφθεί υπόψη ο βαθμός που προκύπτει από το παρακάτω,
πρέπει ο βαθμός του γραπτού να είναι προβιβάσιμος.
| Γραπτά: | 0.6
|
| Βαθμός Εργαστηρίου: | 0.3
|
| Εργασία Εργαστηρίου: | 0.05
|
| Εργασία Μαθήματος: | 0.1
|
|
|
| ΣΥΝΟΛΟ: | 1.05
|