Παρουσίαση/Προβολή
Αντικειμενοστραφής Σχεδίαση και Προγραμματισμός (Θ + Ε)
(ECE_Κ430) - Σωτήριος Χριστοδούλου (Θ) , Ιωάννης Τζήμας (Ε) , Ευάγγελος Πεφάνης (Ε)
Περιγραφή Μαθήματος
Σχεδιασμός, επιμέλεια κειμένων, παρουσίασης : Πεφάνης Ευάγγελος - μέλος Ε.Τ.Ε.Π
(English description is following)
Ανοίγετε τις ενότητες του μαθήματος πατώντας (click για είσοδο) στην ενότητα που θέλετε.
Βασικός στόχος του μαθήματος είναι η εισαγωγή στις βασικές έννοιες της αντικειμενοστραφούς σχεδίασης και στις τεχνικές του αντικειμενοστραφούς προγραμματισμού (object oriented programming - OOP) χρησιμοποιώντας ως περίπτωση μελέτης τη γλώσσα προγραμματισμού Java.
Η Java είναι μια γλώσσα προγραμματισμού που ανήκει στην κατηγορία των αντικειμενοστραφών γλωσσών προγραμματισμού και χρησιμοποιείται ευρέως για την ανάπτυξη λογισμικού και εφαρμογών, χρησιμοποιείται σε πολλούς τομείς, όπως οι επιχειρησιακές εφαρμογές, οι ιστοσελίδες, οι εφαρμογές κινητών συσκευών, οι επιστημονικές εφαρμογές και πολλούς άλλους. Η Java έχει τη δυνατότητα να λειτουργεί σε διάφορες πλατφόρμες, καθώς ο κώδικας της μεταγλωττίζεται σε κώδικα byte που εκτελείται σε εικονική μηχανή Java (JVM), που είναι διαθέσιμη σε πολλά λειτουργικά συστήματα.
Λέξεις Κλειδιά: μοντελοποίηση, γλώσσα UML, αντικειμενοστραφής προγραμματισμός, Java, κλάση, γραφική διεπαφή, προγραμματισμός βασισμένος σε γεγονότα, MVC
The main objective of the course is to introduce the basic concepts of object-oriented design and the techniques of object oriented programming (OOP) using the Java programming language as a case study.
Java is a programming language that belongs to the class of object-oriented programming languages and is widely used for software and application development, it is used in many domains such as business applications, websites, mobile applications, scientific applications and many others. Java has the ability to run on various platforms, as its code is compiled into byte code that runs on a Java virtual machine (JVM), which is available on many operating systems.
Keywords: modeling, UML language, object-oriented programming, Java, class, graphical interface, event-based programming, MVC
Ημερομηνία δημιουργίας
Τετάρτη 21 Οκτωβρίου 2020
-
Μαθησιακοί στόχοι
Με την επιτυχή ολοκλήρωση του μαθήματος, ο φοιτητής θα είναι σε θέση:
Σε επίπεδο Γνώσεων:
- να κατανοεί την έννοια της αφαίρεσης και πως αυτή εφαρμόζεται στην Αντικειμενοστραφή μοντελοποίηση
- να γνωρίζει τα διαθέσιμα διαγράμματα της γλώσσας UML
- να γνωρίζει τις βασικές αρχές του αντικειμενοστραφούς προγραμματισμού και τις διαφορές με το κλασικό δομημένο προγραμματισμό.
- να περιγράφει τις βασικές έννοιες αντικειμενοστραφούς προγραμματιμού: αντικείμενο, κλάση, αφηρημένη κλάση, υποκλάση, υπερκλάση, μεταβλητή κλάσης, μεταβλητή αντικειμένου, κατασκευαστής, μέθοδος, κληρονομικότητα, εξαίρεση, ενθυλάκωση και πολυμορφισμός.
- να γνωρίζει τα συντακτικά χαρακτηριστικά της γλώσσας Java και να οργανώνει των κώδικα που συγγράφει σε διαφορετικά αρχεία και πακέτα.
Σε επίπεδο Δεξιοτήτων:
- να μπορεί να σχεδιάζει μοντέλα του υπό ανάπτυξη συστήματος χρησιμοποιώντας τα διαθέσιμα διαγράμματα της γλώσσας UML
- να χρησιμοποιεί αποδοτικά δημοφιλή περιβάλλοντα ανάπτυξης (IDE) όπως το NetBeans, για μεταγλώττιση κλάσης Java και διόρθωση συντακτικών και λογικών σφαλμάτων.
- να υλοποιεί προγραμματιστικές λύσεις που ενσωματώνουν χαρακτηριστικά κληρονομικότητας και πολυμορφισμού.
- να σχεδιάζει μια ιεραρχία κλάσεων και να την υλοποιεί σε Java.
- να σχεδιάζει και να αναπτύσσει ορθό, αρθρωτό, επαναχρησιμοποιήσιμο και συντηρήσιμο κώδικα Java.
- να γνωρίζει και να μπορεί να χρησιμοποιεί κατάλληλα τα βασικά στοιχεία της Java: τύποι δεδομένων, κλάσεις αντικειμένων και υποκλάσεις, κατασκευαστές, μέθοδοι, διεπαφές, πακέτα, εξαιρέσεις, νήματα και βιβλιοθήκες συλλογών αντικειμένων.
- να σχεδιάζει και να υλοποιεί απλές γραφικές διεπαφές χρήστη και διαχείριση γεγονότων.
- να χειρίζεται αρχεία μέσω προγράμματος Java.
- να αναπτύσσει πολυνηματικές εφαρμογές σε Java.
Σε επίπεδο Ικανοτήτων:
- να επιλύει υπολογιστικά προβλήματα περιγεγραμμένα σε φυσική γλώσσα, χρησιμοποιώντας τεχνικές αντικειμενοστραφούς σχεδιασμού.
- να επιλέγει και να συνδυάζει τα κατάλληλα πρότυπα αντικειμενοστραφούς σχεδίασης για μικρά και μεσαία λογισμικά συστήματα.
- να επιλέγει και να συνδυάζει τα κατάλληλα διαγράμματα για τη μοντελοποίηση του υπό ανάπτυξη λογισμικού συστήματος.
- να έχει την ικανότητα της σχεδίασης, υλοποίησης, δοκιμής, εκσφαλμάτωσης και τεκμηρίωσης προγραμμάτων σε γλώσσα Java.
- να αξιολογεί τη δυνατότητα επέκτασης ενός προγράμματος με στόχο τη διεύρυνση των προβλημάτων που μπορεί να καλύψει.
- να κατανοεί τη δομή και λειτουργία κώδικα Java που δεν έχει προγραμματίσει ο ίδιος και να τον προσαρμόζει στις ανάγκες του.
- να επιλέγει και να συνδυάζει τα κατάλληλα εργαλεία / βιβλιοθήκες, να σχεδιάζει και να αναπτύσσει ένα ποιοτικό και αποδοτικό Αντικειμενοστραφές πρόγραμμα από την περιγραφή του προβλήματος.
Βιβλιογραφία
-Προτεινόμενη Βιβλιογραφία :
- Horstmann Cay, "Η γλώσσα προγραμματισμού JAVA-Αναλυτική Προσέγγιση", Εκδόσεις BROKEN HILL PUBLISHERS LTD, ISBN: 978-992-557-647-0, 2021
- Horstmann Cay, "Η Γλώσσα Προγραμματισμού Java-Με Αφετηρία τα Αντικείμενα", Εκδόσεις BROKEN HILL PUBLISHERS LTD, ISBN: 978-992-558-860-2, 2022
- Farrell Joyce, "Java: Εκμάθηση με πρακτικά παραδείγματα (1η έκδοση)", Εκδόσεις ΚΡΤΙΚΗ ΑΕ, ISBN: 978-960-586-237-4, 2018
- Harvey M., Paul J. Deitel, "Java προγραμματισμός (10η έκδοση)", Εκδόσεις Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ ΕΕ, ISBN: 978-960-512-6810, 2015
- Rogers Cadenhead, "Πλήρες Εγχειρίδιο της Java 7 (6η έκδοση)", Εκδόσεις Χ. ΓΚΙΟΥΡΔΑ & ΣΙΑ ΕΕ, ISBN: 978-960-512-6568, 2013
-Συναφή επιστημονικά περιοδικά:
- ACM Transactions on Programming Languages and Systems
- ACM Transactions on Software Engineering and Methodology
- IEEE Transactions on Software Engineering
Περιεχόμενο μαθήματος
Το μάθημα αναπτύσσεται στις παρακάτω 13 ενότητες/διαλέξεις:
- Εισαγωγή στον Αντικειμενοστραφή Σχεδιασμό: Αντικείμενο (ενθυλάκωση, απόκρυψη πληροφορίας, διεπαφή), κλάση, ιεραρχία κλάσεων, κληρονομικότητα, σχέσεις εξειδίκευσης, σχέσεις συνάθροισης, επικοινωνία αντικειμένων.
- Εισαγωγή στην UML. Δομικά διαγράμματα. Διαγράμματα συμπεριφοράς.
- Διαγράμματα κλάσεων, διαγράμματα περιπτώσεων χρήσης, διαγράμματα ακολουθίας, διαγράμματα συνεργασίας κά
- Εισαγωγή στη γλώσσα προγραμματισμού Java: Ιστορικά, χαρακτηριστικά, πλεονεκτήματα/μειονεκτήματα, τύποι προγραμμάτων, μεταγλώττιση/εκτέλεση, περιβάλλον ανάπτυξης NetBeans.
- Ομοιότητες/διαφορές με την γλώσσα C: Τύποι Δεδομένων, Τελεστές, Έλεγχος Προγράμματος / Βρόχοι επανάληψης, Πίνακες, Αλφαριθμητικά
- Εισαγωγή στον Αντικειμενοστραφή προγραμματισμό & Βασική Δομή προγράμματος: κλάση, αντικείμενο, μεταβλητή, μέθοδος, κατασκευαστής, επικοινωνία αντικειμένων, ιδιωτικά/δημόσια δεδομένα (public, protected, private), setters/getters μέθοδοι, υπερφόρτωση μεθόδων, μεταβλητές/σταθερές κλάσεων, μέθοδοι κλάσης.
- Κληρονομικότητα: υποκλάση, υπερκλάση, δέντρο κληρονομικότητας, πολλαπλή κληρονομικότητα, interfaces, πολυμορφισμός, επικάλυψη μεταβλητών και μεθόδων, σχέση συνάθροισης, αφηρημένες κλάσεις.
- Εισαγωγή στα γραφικά awt-swing: κλάσεις Graphics, components, events.
- GUI & Events: components, containers, layout managers, event listeners. Εσωτερικές κλάσεις (ανώνυμες/επώνυμες).
- Εξαιρέσεις: ανάγκη για χειρισμό σφαλμάτων, πλεονεκτήματα, runtime λάθη, η δομή try/catch/finally, σύλληψη/αντιμετώπιση/μετάδοση εξαίρεσης.
- Ταυτόχρονος Προγραμματισμός & Νήματα: ταυτόχρονα προγράμματα (concurrent block), νήματα (κλάση Thread, runnable interface, κύκλος ζωής νήματος, προτεραιότητες νημάτων, πρόταση synchronized).
- Είσοδος και Έξοδος Δεδομένων: ροές δεδομένων (άνοιγμα, χρήση, κλείσιμο). Αρχεία: κειμένου/δυαδικά, άνοιγμα, διάβασμα/εγγραφή, κλείσιμο.
- Model-View-Controller πρώτυπο: Μοντέλα, Όψεις, Ελεγκτής και παραδείγματα χρήσης τους. Java coding style: ορθές και διαδεδομένες τεχνικές προγραμματισμού σε Java.
Μέθοδοι αξιολόγησης
Α. Γραπτή τελική εξέταση που περιλαμβάνει:
• Επίλυση ασκήσεων
• Ερωτήσεις πολλαπλής επιλογής
• Ερωτήσεις σύντομης απάντησης
Β. Εκπόνηση εργαστηριακών ασκήσεων ή/και εργασίας (Project).Παρατηρήσεις:
• Ο τελικός βαθμός προκύπτει από την στάθμιση των βαθμών θεωρίας και των εργαστηριακών ασκήσεων / εργασιών με συντελεστές: 60% (θεωρία) + 40% (εργαστήριο). Απαραίτητη προϋπόθεση είναι τόσο ο βαθμός του εργαστηρίου όσο και της θεωρίας να είναι >=4.
• Οι εργαστηριακές ασκήσεις και οι εργασίες κατατείθενται ηλεκτρονικά και οι φοιτητές εξετάζονται προφορικά.
• Ο βαθμός εργαστηρίου ή θεωρίας, εφόσον είναι >=4 μπορεί να παραμείνει σε ισχύ μέχρι τον Σεπτέμβριο του ίδιου ακαδημαϊκού έτους.