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

Τσουμάκας Γρηγόριος

Περιγραφή

Στόχος του μαθήματος είναι η εξοικείωση των φοιτητών με τις έννοιες του αντικειμενοστρεφούς προγραμματισμού, και η εκμάθηση της γλώσσας Java. Πιο συγκεκριμένα, οι φοιτητές θα γνωρίσουν βασικές έννοιες όπως είναι τα αντικείμενα και οι κλάσεις, αλλά και πιο προχωρημένες έννοιες όπως η αφαίρεση, ο πολυμορφισμός, οι γραφικές διεπαφές χρήστη, η διαχείριση ρευμάτων και αρχείων και η αποσφαλμάτωση του κώδικα. Επίσης, οι φοιτητές θα αποκτήσουν πρακτική εμπειρία στην χρήση των παραπάνω εννοιών μέσα από την ενασχόλησή τους με την γλώσσα προγραμματισμού Java, τόσο μέσα από μια σειρά εργαστηριακών μαθημάτων, όσο και μέσα από μια προγραμματιστική εργασία.   

 

CC - Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή
Περιεχόμενο μαθήματος

Εισαγωγή, η σύνταξη της Java, αλληλεπίδραση αντικειμένων, ομαδοποίηση αντικειμένων, εξελιγμένη συμπεριφορά, σχεδίαση κλάσεων, τεχνικές αφαίρεσης, γραφικές διεπαφές χρήστη και προγραμματισμός βασισμένος σε γεγονότα, χειρισμός σφαλμάτων, έλεγχος και αποσφαλμάτωση, ρεύματα και αρχεία, γενικός κώδικας, ταυτόχρονος και δικτυακός προγραμματισμός, διανομή εφαρμογών. 

Διδάσκοντες

Διδάσκων: Γρηγόριος Τσουμάκας, Επίκουρος Καθηγητής

 

Συνεργάτης ανάπτυξης περιεχομένου: Εμμανουήλ Ρήγας

Μαθησιακοί στόχοι

Γνώσεις: εξοικείωση των φοιτητών με έννοιες του αντικειμενοστρεφούς προγραμματισμού όπως κλάσεις, αντικείμενα, κληρονομικότητα, αφαίρεση, γραφικές διεπαφές χρήστη, ρεύματα και αρχεία, και χειρισμός σφαλμάτων. Κατάρτιση στην χρήση της γλώσσας προγραμματισμού Java.

 

Δεξιότητες: Απόκτηση ικανότητας ανάπτυξης προγραμμάτων με την χρήση της αντικειμενοστρεφούς γλώσσας Java και εκμάθησης της χρήσης της πλατφόρμας ανάπτυξης κώδικα Netbeans.

Προαπαιτούμενα

Βασικές αρχές προγραμματισμού (NCO-01-05).

Βιβλιογραφία

David J. Barnes και Michael Kolling. Αντικειμενοστρεφής Προγραμματισμός σε Java: Μια Πρακτική Εισαγωγή με Χρήση του BlueJ, Εκδόσεις Κλειδάριθμος, 2008, ISBN 978-960-461-196-6. 

Paul J. Deitel και Harvey M. Deitel. Java Προγραμματισμός, Εκδόσεις Γκιούρδας, 2010, ISBN 978-960-512-592-9.

 

Επιπλέον συνιστώμενη βιβλιογραφία:

David J. Barnes και Michael Kolling. Αντικειμενοστρεφής Προγραμματισμός σε Java: Μια Πρακτική Εισαγωγή με Χρήση του BlueJ, Εκδόσεις Κλειδάριθμος, 2008, ISBN 978-960-461-196-6. 

Paul J. Deitel και Harvey M. Deitel. Java Προγραμματισμός, Εκδόσεις Γκιούρδας, 2010, ISBN 978-960-512-592-9.

Online readings

http://docs.oracle.com/javase/tutorial/

Ενότητες

Η ενότητα αυτή παρέχει μια πολύ σύντομη εισαγωγή σε βασικές έννοιες του αντικειμενοστρεφούς προγραμματισμού και παρουσιάζει συνοπτικά την γλώσσα Java.

 

Λέξεις κλειδιά: Εισαγωγή, μεθοδολογία, κλάση, αντικείμενο, ιστορικό, java, εικονική μηχανή.

 

Η ενότητα αυτή παρουσιάζει βασικές έννοιες που αφορούν τις κλάσεις και τα αντικείμενα, και παρουσιάζει αναλυτικά, ζητήματα που αφορούν την σύνταξη της γλώσσας προγραμματισμού Java. 

 

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

Η ενότητα αυτή αναλύει την ανάγκη για αλληλεπίδραση μεταξύ των αντικειμένων πολύπλοκων προγραμμάτων και παρουσιάζει τρόπους για την επίτευξη αυτής της αλληλεπίδρασης. 

 

Λέξεις κλειδιά: Αλληλεπίδραση, αντικείμενο, υπερφόρτωση, ρητή κλίση κατασκευαστή.

 

Η ενότητα αυτή παρουσιάζει την έννοια της ομαδοποίησης αντικειμένων και πως αυτή επιτυγχάνεται στην Java με την χρήση πακέτων, ελέγχων πρόσβασης, και συλλογών. Επίσης, παρουσιάζει τις δομές επανάληψης της Java, καθώς και τους πίνακες. 

 

Λέξεις κλειδιά: Ομαδοποίηση, αντικείμενο, πακέτο, έλεγχος πρόσβασης, συλλογή, επανάληψη, πίνακας.

 

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

 

Λέξεις κλειδιά: Μεταβλητές, σταθερές, μέθοδοι, ρεύματα, γραμμή εντολών, συγγραφή τεκμηρίωσης, Javadoc, συμβολοσειρά, σύνολο, χάρτης, κλάση περιτύλιξης.

 

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

 

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

 

Η ενότητα αυτή παρουσιάζει την έννοια της κληρονομικότητας στον αντικειμενοστρεφή προγραμματισμό. Συγκεκριμένα παρουσιάζονται οι έννοιες της υπερκλάσης και της υποκλάσης καθώς και ένα σύνολο από μειονεκτήματα και πλεονεκτήματα της χρήσης κληρονομικότητας.

 

Λέξεις κλειδιά: Κληρονομικότητα, υπερκλάση, υποκλάση, προσαρμογή τύπου, προστατευμένη πρόσβαση, πολυμορφισμός.

 

Η ενότητα αυτή παρουσιάζει την έννοια της αφαίρεσης στον αντικειμενοστρεφή προγραμματισμό. Πιο συγκεκριμένα, παρουσιάζει τις έννοιες της αφηρημένης κλάσης, της διασύνδεσης και της πολλαπλής κληρονομικότητας.

 

Λέξεις κλειδιά: Αφαίρεση, αφηρημένη κλάση, διασύνδεση, πολλαπλή κληρονομικότητα.

 

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

 

Λέξεις κλειδιά: Γραφικό περιβάλλον χρήστη, swing, δοχείο, παράθυρο, κουμπί, διαχείριση γεγονότων, εικονίδιο.

 

Η ενότητα αυτή παρουσιάσει τεχνικές ελέγχου και αποσφαλμάτωσης προγραμμάτων γραμμένων στην γλώσσα Java. Παρουσιάζονται καλές πρακτικές ελέγχου, και πιο συγκεκριμένα ο έλεγχος μονάδας (unit testing), καθώς και ένα σύνολο τεχνικών αποσφαλμάτωσης όπως η χειροκίνητη εκτέλεση, οι εντολές εμφάνισης στην οθόνη, και η χρήση αποσφαλματωτή.

 

Λέξεις κλειδιά: Έλεγχος, αποσφαλμάτωση, έλεγχος μονάδας, unit testing.

 

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

 

Λέξεις κλειδιά: Σφάλμα, πρόβλεψη, αναφορά, εξαιρέσεις, χειριστής, σύλληψη εξαίρεσης, ρίψη εξαίρεσης. 

 

Η ενότητα αυτή αναλύει την έννοια του ρεύματος (stream) και παρουσιάζει τα είδη ρευμάτων, καθώς επίσης και τα αρχεία τυχαίας προσπέλασης και αναλύει τις διαδικασίες εισόδου σε και εξόδου από ρεύματα και αρχεία.

 

Λέξεις κλειδιά: Ρεύματα, αρχεία, είσοδος, έξοδος, ενδιάμεση μνήμη.

 

Η ενότητα αυτή περιγράφει εν συντομία την έννοια του ταυτόχρονου προγραμματισμού και των εφαρμογών του, και συγκεκριμένα αναλύει την έννοια των νημάτων και των πολυνηματικών εφαρμογών. 

 

Λέξεις κλειδιά: Ταυτόχρονος προγραμματισμός, νήμα, πολυνηματική εφαρμογή, αναστολή εκτέλεσης, διακοπή, αναμονή ολοκλήρωσης, συγχρονισμός, μπέρδεμα νημάτων.

 

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

 

Λέξεις κλειδιά: Γενικός κώδικας, γενικοί τύποι, δοχείο αντικειμένου, γενική κλάση, γενικές μέθοδοι.

 

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

 

Λέξεις κλειδιά: Σχεδίαση, εφαρμογή, ανάλυση, κλάση, σενάριο, τεκμηρίωση, πρωτότυπο, πρότυπο σχεδίασης.

 

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A-

Αρ. Επισκέψεων :  13477
Αρ. Προβολών :  57465