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

Γενικά

  • Κωδικός Μαθήματος: 1205
  • Εξάμηνο: 2ο
  • Τύπος Μαθήματος: Γενικής Υποδομής (ΓΥ)
  • Είδος Μαθήματος: Υποχρεωτικό (ΥΠ)
  • Γνωστική Περιοχή: Προγραμματισμός και Αλγόριθμοι (ΠΑ)
  • Διδασκαλία Θεωρίας: 4 ώρες/εβδομάδα
  • Διδασκαλία Εργαστηρίου: 1 ώρες/εβδομάδα
  • Πιστωτικές μονάδες ECTS: 6
  • Ηλεκτρονική σελίδα μαθήματος: https://aetos.it.teithe.gr/~sfetsos/index1.html, https://aetos.it.teithe.gr/~adamidis/teach.html
  • Γλώσσα διδασκαλίας και Εξετάσεων: Ελληνικά
  • Το μάθημα προσφέρεται σε φοιτητές Erasmus
  • Προτεινόμενα προαπαιτούμενα μαθήματα: (1102) Δομημένος Προγραμματισμός

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

Το μάθημα περιγράφει και παρουσιάζει τις βασικές αρχές του Αντικειμενοστρεφούς Προγραμματισμού χρησιμοποιώντας ως εργαλείο την γλώσσα προγραμματισμού JAVA. Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα πρέπει να γνωρίζουν τις βασικές αρχές του Αντικειμενοστρεφούς Προγραμματισμού αλλά και αλγορίθμους επίλυσης προβλημάτων που υλοποιούνται με την Java. Προγραμματισμός δεν είναι μόνο το γράψιμο κώδικα. Οι προγραμματιστές πρέπει επίσης να κάνουν κάποιους συμβιβασμούς, να επιλέξουν μεταξύ εναλλακτικών σχεδιάσεων, διαφορετικών αλγορίθμων και διαφορετικών υλοποιήσεων. Ταυτόχρονα πρέπει να αντιμετωπίσουν θέματα συμβατότητας, απόδοσης και αξιοπιστίας ενώ ταυτόχρονα πρέπει να ικανοποιούν και τις προδιαγραφές. Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα πρέπει να:

  • Διαθέτουν την γνώση των αρχών, εννοιών και δομών του Αντικειμενοστρεφή προγραμματισμού
  • Αναπτύξουν, μετατρέψουν, ελέγξουν, διορθώσουν και εκτελέσουν εφαρμογές Java χρησιμοποιώντας τις αντικειμενοστρεφείς αρχές της Java, και το σύστημα διαχείρισης λαθών.
  • Παράγουν αντικειμενοστρεφή προγράμματα χρησιμοποιώντας τις βασικές βιβλιοθήκες της Java
  • Περιγράφουν τις αντικειμενοστρεφείς έννοιες της Java
  • Χρησιμοποιούν τις κλάσεις του API της Java καθώς και παραγόμενες κλάσεις στην ανάπτυξη προγραμμάτων
  • Διακρίνουν τα χαρακτηριστικά του προβλήματος τα οποία θα τους οδηγήσουν στην επιλογή του καταλληλότερου αλγόριθμου
  • Συνθέτουν, να προσαρμόζουν και να προτείνουν δικούς τους αλγορίθμους επίλυσης προβλημάτων
Γενικές Ικανότητες
  • Εφαρμογή της γνώσης στην πράξη με την πρακτική εξάσκηση στο εργαστήριο
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Αυτόνομη εργασία κατά την εκπόνηση των ασκήσεων της ημέρας
  • Ομαδική εργασία: Υλοποίηση τριών ατομικών/ομαδικών εργασιών οι οποίες στηρίζονται στην εφαρμογή των εννοιών που αναλύονται στις διαλέξεις.
  • Άσκηση κριτικής και αυτοκριτικής: Οι φοιτητές κρίνουν και αξιολογούν εργασίες άλλων ομάδων
  • Σχολιασμός στην τάξη συνηθισμένων περιπτώσεων λαθών στις ασκήσεις του μαθήματος
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Περιεχόμενο Μαθήματος

ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ
• Εισαγωγή στον αντικειμενοστραφή προγραμματισμό, αρχές και πλεονεκτήματα, χαρακτηριστικά της
αντικειμενοστρεφούς προσέγγισης
• Κλάσεις, Αντικείμενα, Constructors, Δημόσια και Ιδιωτικά μέλη, Στατικά μέλη, Μέθοδοι, Τύποι
Μεθόδων, Στατικές Μέθοδοι, Wrapper κλάσεις, Final κλάσεις και μέθοδοι
• Αναδρομή: έννοιες, αναδρομικές μέθοδοι
• Αναζήτηση: εισαγωγή στην πολυπλοκότητα της γραμμικής και δυαδικής αναζήτησης
• Ταξινόμηση: πολυπλοκότητα και αλγόριθμοι ταξινόμησης, οι οποίοι περιλαμβάνουν αλγόριθμους
ταξινόμησης με ανταλλαγή (bubble sort, ταξινόμηση με εισαγωγή, ταξινόμηση με ανταλλαγή) και
αναδρομικούς αλγόριθμους (γρήγορη ταξινόμηση, ταξινόμηση με συγχώνευση)
• Κληρονομικότητα και Σύνθεση – Υπέρβαση πεδίων και μεθόδων, ιεραρχίες τάξεων, Πολυμορφισμός,
Σύγκριση κληρονομικότητας και σύνθεσης
• Εμβάθυνση στον Πολυμορφισμό, Υπέρβαση, Υπερφόρτωση, Castings
• Επαυξημένη σχεδίαση κλάσεων: Αφηρημένες κλάσεις και μέθοδοι, Εσωτερικές κλάσεις
• Διασυνδέσεις / Διεπαφές
• Χειρισμός των Εξαιρέσεων
• Πακέτα – Διαχείριση της μνήμης
• Generics
• The Java Reflection

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης
  • Πρόσωπο με πρόσωπο θεωρητική διδασκαλία (παράδοση, συζήτηση, επίλυση προβλημάτων), εξάσκηση στο εργαστήριο με λυμένες και άλυτες ασκήσεις.
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
  • - Χρήση των ιστοσελίδων του μαθήματος
  • - Χρήση της πλατφόρμας mmodle
  • - Χρήση λογισμικού (NetBeans, Eclipse κ.ά.)
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος εργασίας εξαμήνου
Διαλέξεις52
Συγγραφή και παρουσίαση υποχρεωτικής εργασίας30
Ατομική Μελέτη και ανάλυση βιβλιογραφίας60
Εργαστήριο13
Προετοιμασία για τις εργαστηριακές ασκήσεις25
Σύνολο 180
Αξιολόγηση φοιτητών

- Γραπτή τελική εξέταση στο θεωρητικό μέρος του μαθήματος (70%)
- Εξάσκηση στο εργαστήριο και εργασίες (30%) που περιλαμβάνει:
- Ασκήσεις και εργασίες
- Τελική εξέταση εργαστηριακού μέρους

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος "Εύδοξος"
  1. (1) Liang D.Y, JAVA, 10η, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε., ISBN: 978-960-418-500-9, Κωδικός βιβλίου στον Εύδοξο: 50655980
  2. (2) Savitch Walter, JAVA, 7η Έκδοση, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε.,, ISBN: 978-960-418-501-6, Κωδικός Βιβλίου στον Εύδοξο: 50655978