Skip to main content

Στόχοι Μαθήματος: Το μάθημα αποσκοπεί να προσφέρει στους φοιτητές μια ολοκληρωμένη κατανόηση του αντικειμενοστραφούς προγραμματισμού (Object-Oriented Programming – OOP) με τη χρήση της γλώσσας Java, συνδυάζοντας τις βασικές αρχές με σύγχρονες πρακτικές ανάπτυξης λογισμικού. Στόχος είναι οι φοιτητές να αναπτύξουν την ικανότητα να σχεδιάζουν, να υλοποιούν και να αναλύουν αντικειμενοστραφή συστήματα λογισμικού που είναι αξιόπιστα, αρθρωτά (modular) και επεκτάσιμα. Μέσα από διαλέξεις, εργαστηριακές ασκήσεις και ατομικές εργασίες, οι φοιτητές εξοικειώνονται με θεμελιώδεις έννοιες, όπως η ενθυλάκωση (encapsulation), η κληρονομικότητα (inheritance) και ο πολυμορφισμός (polymorphism), και μαθαίνουν να τις εφαρμόζουν αποτελεσματικά στην πράξη. Ιδιαίτερη έμφαση δίνεται στην επίλυση προβλημάτων, στη σωστή χρήση του Java Collections Framework, στη διαχείριση εξαιρέσεων, στις λειτουργίες εισόδου/εξόδου αρχείων (file I/O) και στην ανάπτυξη γραφικών διεπαφών χρήστη (GUI). Το μάθημα εισάγει επίσης προχωρημένα θέματα, όπως ο πολυνηματικός προγραμματισμός (multithreading), τα γενικευμένα πρότυπα (generics) και τα πρότυπα σχεδίασης λογισμικού (software design patterns), προετοιμάζοντας τους φοιτητές για πραγματικές συνθήκες ανάπτυξης. Η Ενοποιημένη Γλώσσα Μοντελοποίησης (UML) χρησιμοποιείται καθ’ όλη τη διάρκεια του μαθήματος για την υποστήριξη του αντικειμενοστραφούς σχεδιασμού και την ενίσχυση της ικανότητας μοντελοποίησης και επικοινωνίας της αρχιτεκτονικής λογισμικού.

Μαθησιακά Αποτελέσματα: Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα είναι σε θέση να: 1. Κατανοούν και εφαρμόζουν τις βασικές αρχές του αντικειμενοστραφούς προγραμματισμού, όπως η ενθυλάκωση, η κληρονομικότητα, ο πολυμορφισμός και η σύνθεση. 2. Σχεδιάζουν και υλοποιούν αρθρωτές και εύκολα συντηρήσιμες εφαρμογές σε Java, αξιοποιώντας κατάλληλα χαρακτηριστικά της γλώσσας και αντικειμενοστραφείς δομές. 3. Χειρίζονται αποτελεσματικά το Java Collections Framework και τα γενικευμένα πρότυπα για τη διαχείριση και επεξεργασία δομημένων δεδομένων. 4. Διαχειρίζονται λειτουργίες εισόδου/εξόδου αρχείων και εξαιρέσεις. 5. Δοκιμάζουν και αποσφαλματώνουν προγράμματα Java, χρησιμοποιώντας κατάλληλα εργαλεία και τεχνικές. 6. Αναπτύσσουν διαδραστικά προγράμματα με γραφικές διεπαφές (GUI) και συμπεριφορά βασισμένη σε γεγονότα (event-driven). 7. Κατανοούν και εφαρμόζουν βασικές έννοιες του παράλληλου προγραμματισμού, χρησιμοποιώντας νήματα (threads). 8. Χρησιμοποιούν διαγράμματα UML για την ανάλυση, τον σχεδιασμό και την επικοινωνία αντικειμενοστραφών συστημάτων λογισμικού.

Περιεχόμενο Μαθήματος: Το μάθημα καλύπτει θεμελιώδεις και προχωρημένες έννοιες του αντικειμενοστραφούς προγραμματισμού σε Java, καθώς και βασικές πρακτικές σχεδίασης και ανάπτυξης λογισμικού. Σύνταξη Java, δομές ελέγχου, μέθοδοι, πίνακες. Κλάσεις, αντικείμενα, ενθυλάκωση, σύνθεση, κληρονομικότητα, πολυμορφισμός, αφαίρεση. Διεπαφές, αφηρημένες κλάσεις, γενικευμένα πρότυπα. Συλλογές: λίστες, σύνολα, πίνακες κατακερματισμού, iterators, ταξινόμηση. Διαχείριση εξαιρέσεων. Είσοδος/έξοδος αρχείων. Αρθρωτοποίηση (modularization) και διαχείριση πακέτων. Δοκιμή και αποσφαλμάτωση. Γραφικές διεπαφές χρήστη (GUI) και διαχείριση γεγονότων. Πολυνηματικός προγραμματισμός και ταυτόχρονη εκτέλεση.             Διαγράμματα UML. Βασικά πρότυπα σχεδίασης, μοντέλα ανάπτυξης λογισμικού.