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


Διδάσκων/ουσα: Πολενάκης Ιωσήφ, Ρίγγας Δημήτριος
Κωδικός: PR120
Τύπος Μαθήματος: Μάθημα Κορμού
Επίπεδο Μαθήματος: Προπτυχιακό
Γλώσσα Μαθήματος: Ελληνικά
Εξάμηνο: Β΄
ECTS: 5
Διδακτικές Μονάδες: 6
Ώρες Διάλεξης: 4
Ώρες Εργαστηρίου/Φροντιστηρίου: 4Ε
Σύνολο Ωρών: 8
Προγράμματα Σπουδών: Αναμορφωμένο ΠΠΣ Πληροφορικής από 2025
Σύντομη Περιγραφή:

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

Αντικειμενικοί Στόχοι - Επιδιωκόμενα Μαθησιακά Αποτελέσματα:

Με την επιτυχή ολοκλήρωση του μαθήματος, ο φοιτητής θα είναι σε θέση να: 

 

Γνώση & Κατανόηση 

Κατανοεί τις βασικές αρχές του αντικειμενοστραφούς προγραμματισμού (OOP). 

Γνωρίζει τη σύνταξη (syntax) και τη σημασιολογία (semantics) των γλωσσών. 

Αναγνωρίζει βασικές δομές δεδομένων (πίνακες, λίστες, στοίβες, ουρές) και τους αλγορίθμους διαχείρισής τους. 

Κατανοεί τις διαφορές μεταξύ διαδικαστικού και αντικειμενοστραφούς προγραμματισμού. 

 

 

Εφαρμογή 

Γράφει προγράμματα σε Java/C++ χρησιμοποιώντας τις βασικές δομές προγραμματισμού (μεταβλητές, συνθήκες, βρόχους, συναρτήσεις). 

Εφαρμόζει την αντικειμενοστραφή προσέγγιση μέσω κλάσεων, αντικειμένων, μεθόδων και κληρονομικότητας. 

Αναπτύσσει απλές εφαρμογές που χρησιμοποιούν αρχεία, δυναμική διαχείριση μνήμης και εξαιρέσεις. 

Υλοποιεί βασικούς αλγορίθμους ταξινόμησης, αναζήτησης και διαχείρισης δεδομένων. 

 

Ανάλυση & Σύνθεση 

Αναλύει προβλήματα και σχεδιάζει αντίστοιχες λύσεις με τη χρήση διαγραμμάτων ροής και ψευδοκώδικα. 

Συγκρίνει διαφορετικές τεχνικές προγραμματισμού για τη βέλτιστη απόδοση των εφαρμογών. 

Συνδυάζει διαφορετικές δομές δεδομένων και μεθοδολογίες για τη βελτίωση της αποδοτικότητας του κώδικα. 

 

Αξιολόγηση 

Εντοπίζει και διορθώνει σφάλματα (debugging) και προβλήματα απόδοσης (performance issues) στον κώδικα. 

Κρίνει την ποιότητα και τη συντηρησιμότητα του κώδικα με βάση τις αρχές καλών πρακτικών προγραμματισμού. 

Συνεργάζεται σε ομάδες ανάπτυξης λογισμικού χρησιμοποιώντας εργαλεία διαχείρισης κώδικα (π.χ. Git). 

 

Επιπλέον δεξιότητες (Soft Skills & Μεταγνωστικές Δεξιότητες) 

Ανάπτυξη δεξιοτήτων κριτικής σκέψης και επίλυσης προβλημάτων. 

Εξοικείωση με την αυτοκατευθυνόμενη μάθηση και τη συνεχή ενημέρωση για νέες εξελίξεις στον προγραμματισμό. 

Περιεχόμενο (Syllabus):

1η εβδομάδα 

Γλώσσα Java: Εισαγωγή στον αντικειμενοστραφή προγραμματισμό και τη γλώσσα προγραμματισμού Java - διαφορές από το διαδικαστικό προγραμματισμό. 

Προετοιμασία για το εργαστήριο. 

Γλώσσα C++: Τύποι Δεδομένων, Μεταβλητές και Τελεστές, Είσοδος/Έξοδος Δεδομένων, Έλεγχος Ροής και Βρόχοι Επανάληψης 

 

2η εβδομάδα 

Γλώσσα Java: Βασικά στοιχεία προγραμματισμού στη Java. Εικονική μηχανή της Java. 

Γλώσσα C++: Πίνακες και Δείκτες 

 

3η εβδομάδα 

Γλώσσα Java: Προγραμματισμός με βάση τις κλάσεις - κλάσεις και αντικείμενα - σύγκριση αντικειμένων. 

Γλώσσα C++: Αλφαριθμητικά 

 

4η εβδομάδα 

Γλώσσα Java: Δομές ελέγχου ροής προγράμματος. 

Γλώσσα C++: Συναρτήσεις  

 

5η εβδομάδα 

Γλώσσα Java: Πίνακες και Συλλογές. 

Γλώσσα C++: Δομές και Ενώσεις 

 

6η εβδομάδα 

Γλώσσα Java: Μέθοδοι, στοίβα κλήσης, πέρασμα παραμέτρων. Στοίβα και σωρός. Στατικές μέθοδοι. 

Γλώσσα C++: Διαχείριση Μνήμης και Δυναμικές Δομές Δεδομένων 

 

7η εβδομάδα 

Γλώσσα Java: Υπερφόρτωση μεθόδων, περισσότερα για τους κατασκευαστές. 

Γλώσσα C++: Προεπεξεργαστής και Μακροεντολές 

 

8η εβδομάδα 

Γλώσσα Java: Κληρονομικότητα. 

Γλώσσα C++: Κλάσεις και Αντικείμενα 

 

9η εβδομάδα 

Γλώσσα Java: Πολυμορφισμός. 

Γλώσσα C++: Κλάσεις και Αντικείμενα 

 

10η εβδομάδα 

Γλώσσα Java: Διεπαφές. 

Γλώσσα C++: Υπερφόρτωση Τελεστών και Συναρτήσεων 

 

11η εβδομάδα 

Γλώσσα Java:  Χειρισμός σφαλμάτων με εξαιρέσεις. 

Γλώσσα C++: Κληρονομικότητα 

 

12η εβδομάδα 

Γλώσσα Java: Ροές δεδομένων. 

Γλώσσα C++: Στατικός και Δυναμικός Πολυμορφισμός 

 

13η εβδομάδα 

Γλώσσα Java: Δικτυακός προγραμματισμός. 

Γλώσσα C++:  Εξαιρέσεις και Πρότυπα,  Αρχεία 

Συνιστώμενη βιβλιογραφία προς μελέτη:
  • C++ Προγραμματισμός — Paul J. Deitel, Harvey M. Deitel, Χ. ΓΚΙΟΥΡΔΑ ΣΙΑ ΕΕ, 2015, ISBN: 50659221

  • C++ - Επίλυση Προβλημάτων — Walter Savitch, Τζιόλα, 2015, ISBN: 50655981

  • C++: Από τη Θεωρία στην Εφαρμογή — Γ. Τσελίκης, Γ. Τσελίκης, 2023, ISBN: 122077282

  • Προγραμματισμός με C++ Αντικειμενοστρεφής Προσέγγιση — B.A. Forouzan, R.F. Gilberg, Broken Hill Publishers Ltd, 2022, ISBN: 112690605

  • Η γλώσσα προγραμματισμού JAVA - Αναλυτική Προσέγγιση — Cay Horstmann, Broken Hill Publishers Ltd, 2021, ISBN: 94643857

  • JAVA - Εκμάθηση με πρακτικά παραδείγματα — Joyce Farrell, Εκδόσεις Κριτική ΑΕ, Αθήνα, 2024, ISBN: 133024610

Διδακτικές και μαθησιακές μέθοδοι:

-

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

Υποστήριξη Μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας e-class 

Μέθοδοι αξιολόγησης/βαθμολόγησης:

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


Επιστροφή

Σπουδές

Κτίριο Γραμματειών (Κτίριο 3) Πλατεία Τσιριγώτη 7 (πρώην Πλατεία Παλιού Ψυχιατρείου) Κέρκυρα, 49100 τηλ:26610 87760 / 87761 / 87763
e-mail: cs@ionio.gr
certification
<< <
Οκτώβριος 2025
> >>
Δε Τρ Τε Πε Πα Σα Κυ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Ανάγνωση ΚειμένουΑνάγνωση Κειμένου Αναγνωσιμότητα ΚειμένουΑναγνωσιμότητα Κειμένου Αντίθεση ΧρωμάτωνΑντίθεση Χρωμάτων
Επιλογές Προσβασιμότητας