Κωδικός Μαθήματος

ΠΠΣ-184

Εξάμηνο Μαθήματος

1ου Εξαμήνου

Πιστωτικές Μονάδες

7,5

Ηλεκτρονικό Υλικό

https://lefkippos.ds.unipi.gr/courses/DSERV103/

Κατηγορία Μαθήματος

Υποχρεωτικό

Η Γλώσσα Προγραμματισμού Java

Στόχος

Στόχος του μαθήματος είναι η εισαγωγή των φοιτητών στον αντικειμενοστρεφή τρόπο σκέψης για τη μοντελοποίηση και επίλυση προβλημάτων και στον αντικειμενοστρεφή προγραμματισμό (object oriented programming) και η εξοικείωσή τους με τις βασικές έννοιες της αντικειμενοστρεφούς γλώσσας προγραμματισμού Java.

Πιο συγκεκριμένα, οι φοιτητές:

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

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

Οι φοιτητές μετά την επιτυχή ολοκλήρωση του μαθήματος θα μπορούν:

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

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

  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Προσαρμογή σε νέες καταστάσεις
  • Λήψη αποφάσεων
  • Αυτόνομη εργασία
  • Ομαδική εργασία
  • Παράγωγή νέων ερευνητικών ιδεών
  • Σχεδιασμός και διαχείριση έργων
  • Άσκηση κριτικής και αυτοκριτικής
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Περιεχόμενα

Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό

Εισαγωγή στον αντικειμενοστρεφή τρόπο σκέψης ως προσέγγιση για τη μοντελοποίηση προβλημάτων και την επίλυσή τους μέσω γλωσσών προγραμματισμού. Θεμελιώδεις έννοιες αντικειμενοστρεφούς προγραμματισμού. Μοντελοποίηση οντοτήτων του πραγματικού κόσμου. Αντικείµενα και Κλάσεις.

Εισαγωγή στη γλώσσα προγραμµατισµού Java

Συντακτικό και xαρακτηριστικά της γλώσσας, μεταβλητές, τύποι δεδοµένων και παραστάσεις. ∆οµές ελέγχου. Πίνακες.

Κλάσεις και Αντικείμενα

∆ηµιουργία κλάσεων και κατασκευή αντικειµένων. Κατασκευαστές και Μέθοδοι κλάσεων. Κλήση μεθόδων επί αντικειμένων.

Αλληλεπίδραση μεταξύ αντικειμένων

Aποστολή μηνυμάτων – κλήση μεθόδων, πέρασμα παραμέτρων.

Βασικές έννοιες αντικειμενοστρεφούς προγραμματισμού

Κληρονοµικότητα και Πολυµορφισµός. Χρήση αφαιρέσεων και διασυνδέσεων. Χειρισμός εξαιρέσεων. Χειρισµός συµβάντων.

Παραμετρικός Πολυμορφισμός (Generics)

Παραμετρικοί τύποι δεομένων, μεθόδων και κλάσεων

Ανώνυμες κλάσεις

Αρχεία, Ροές και Σειριοποίηση/αποσειριοποίηση αντικειμένων

Λειτουργικός Προγραμματισμός

Λειτουργικές διασυνδέσεις, ροές κι εκφράσεις lambda

Προγραμματισμός από τη μεριά του εξυπηρετητή (server–side programming)

Υπηρεσίες ιστού (Web services), java servlets.

Πολυνηματικός προγραμματισμός

Ανάπτυξη εφαρμογών

Γραφική ∆ιασύνδεση Χρήστη (GUI). JavaFX. Χειρισμός συμβάντων. Ανάπτυξη προγραμμάτων πλήρους λειτουργικότητας.

Προτεινόμενα Συγγράμματα

  • Paul J. Deitel, Harvey Deitel (2018): Java How to Program, 11th Edition, Pearson, ISBN: 9780134743356.
  • Herbert Schildt (2018): Java: The Complete Reference, Eleventh Edition, 11th Edition, McGraw-Hill, ISBN: 9781260440249.
  • Christian Bauer, Gavin King, Gary Gregory (2015): Java Persistence with Hibernate, 2nd Edition, Manning Publications ISBN: 9781617290459.

Συναφή Συγγράμματα/Επιστημονικά Περιοδικά

  • ACM Transactions on Programming Languages and Systems
  • ACM Transactions on Software Engineering and Methodology
  • IEEE Transactions on Software Engineering