Προηγούμενη
Ευρετήριο και γλωσσάριο του μαθήματος από τα Αγγλικά στα Ελληνικά
Μάθημα
Προγραμματισμός II
Επόμενη
Σελίδες σε μορφή κατάλληλη για εκτύπωση
Αναλυτικός πίνακας περιεχομένων
Εισαγωγή στο μάθημα
Καλώς ήρθατε
Αυτοαξιολόγηση
Στόχοι του μαθήματος
Τρόπος διδασκαλίας
Οι σημειώσεις
Βαθμολογία
Βαθμολογία χωρίς ομαδική εργασία
Αξιολόγηση συμμετοχής
Στατιστικά στοιχεία
Οι ασκήσεις
Χρήση του συστήματος των ασκήσεων jarpeb
Παράδοση της βαθμολογίας
Καθυστερημένη παράδοση
Χρήση ΠΤΝ
Διαθέσιμα συγγράμματα
Πρόσθετα δωρεάν συγγράμματα
Βιβλιογραφία για προγραμματισμό
Βιβλιογραφία για τη Java
Επισκόπηση θεωρίας
Επισκόπηση των ασκήσεων
Επισκόπηση φροντιστηρίου
Δουλειά για το επόμενο μάθημα
Γλώσσες και περιβάλλοντα ανάπτυξης
Ιστορική ανασκόπηση
Διαδικασιακές γλώσσες
Τιμές, τύποι και μεταβλητές
Εκφράσεις και τελεστές
Μηχανισμοί αφαίρεσης
Μηχανισμοί ελέγχου της ροής
Αντικειμενοστρεφείς γλώσσες
Συναρτησιακός προγραμματισμός
Χαρακτηριστικά συναρτησιακού προγραμματισμού
Γλώσσες ολοκλήρωσης
Θέματα για μελέτη
Άσκηση: εξοικείωση με τις ασκήσεις
Βιβλιογραφία
Τεχνολογίες μεταγλώττισης και εκτέλεσης
Το χάσμα υλικού και λογισμικού
Υλοποίηση γλωσσών προγραμματισμού
Αρχιτεκτονική του μεταγλωττιστή
Λεκτική ανάλυση
Λεκτικές μονάδες
Χρήση λεκτικών μονάδων
Ο συντακτικός αναλυτής
Παράδειγμα
Συντακτικό δένδρο
Παραγωγή κώδικα
Βελτιστοποίηση του ενδιάμεσου κώδικα
Πλεονεκτήματα βελτιστοποίησης
Παράδειγμα βελτιστοποίησης
Παράδειγμα βελτιστοποίησης
Παράδειγμα βελτιστοποίησης
Παράδειγμα βελτιστοποίησης
Παράδειγμα βελτιστοποίησης
Βελτιστοποίηση του τελικού κώδικα
Παράδειγμα βελτιστοποίησης τελικού κώδικα
Σύνδεση
Ιδεατές μηχανές
Πλεονεκτήματα και προβλήματα ιδεατών μηχανών
Διαχείριση μνήμης
Παράδειγμα διάταξης μνήμης
Τρόποι διαχείρισης μνήμης
Άσκηση: ορίσματα, εκφράσεις, βρόχοι και αποφάσεις
Βιβλιογραφία
Προγραμματισμός με αντικείμενα
Αντικείμενα
Κλάσεις
Δημιουργία νέων αντικειμένων
Καθορισμός μνήμης αντικειμένων με new
Καθορισμός μνήμης αντικειμένων με αναφορά
Κλήση μεθόδων
Πρόσβαση σε ιδιότητες
Ορατότητα
Παράδειγμα: Point
Παράδειγμα: TestPoint
Μέθοδοι κατασκευαστές
Κλήση κατασκευαστών
Ιδιότητες και μέθοδοι κλάσης
Δήλωση μεταβλητών με var
Παράδειγμα: εύρεση ημέρας
Παράδειγμα: εύρεση ημέρας (main)
Μέθοδοι όλων των αντικειμένων
Άσκηση: δημιουργία αντικειμένων και πρόσβαση στις μεθόδους τους
Βιβλιογραφία
Δημιουργία κλάσεων
Ορισμός κλάσεων
Ορισμός πεδίων υπόστασης
Ορισμός μεθόδων υπόστασης
Πρόσβαση στα μέλη της κλάσης
Πρόσβαση στα μέλη της κλάσης: παράδειγμα
Μέθοδοι κατασκευής
Μέθοδοι κατασκευής: παράδειγμα
Έλεγχος πρόσβασης
Ορισμός ιδιοτήτων και μεθόδων κλάσης
Παράδειγμα ιδιοτήτων και μεθόδων κλάσης
Μπλοκ αρχικοποίησης
Εσωτερικές κλάσεις
Παράδειγμα εσωτερικής κλάσης
Παράδειγμα ανώνυμης κλάσης
Απαριθμήσεις
Χρήση απαριθμήσεων
Απαρίθμηση ως κλάση
Πολυμορφισμός με ταίριαγμα προτύπων
Εγγραφές
Εγγραφή ως κλάση
Ταίριαγμα προτύπων σε εγγραφές
Το σχεδιαστικό πρότυπο singleton
Παράδειγμα singleton
Άσκηση: δημιουργία μιας κλάσης
Βιβλιογραφία
Κληρονομικότητα
Εισαγωγή
Διάγραμμα κληρονομικότητας
Κληρονομικότητα σε κλάσεις
Υπερφόρτωση
Παράδειγμα: σχήματα
Σχήματα: διάγραμμα
Ο προσδιοριστής protected
Δυναμική διεκπεραίωση
Παράδειγμα δυναμικής διεκπεραίωσης
Λειτουργία δυναμικής διεκπεραίωσης
Πλεονεκτήματα της δυναμικής διεκπεραίωσης
Σφραγισμένες κλάσεις
Αφηρημένες κλάσεις
Σχεδιάζοντας με αφηρημένες κλάσεις
Παράδειγμα: σχήματα
Σχήματα: ο κώδικας
Τελικές μεταβλητές
Τελικά ορίσματα
Τελικά πεδία
Δημόσιες τελικές μεταβλητές
Τελικές κλάσεις και μέθοδοι
Τελικές κλάσεις και μέθοδοι στην πράξη
Η ιεραρχία κλάσεων στη βιβλιοθήκη της Java
Java: παράσταση αριθμών-number
Java: κλάσεις για το σχηματισμό μηνυμάτων
Παράδειγμα χρήσης μηνυμάτων
Java: Τμήμα της ιεραρχίας Swing
Άσκηση: κληρονομικότητα
Βιβλιογραφία
Υλοποίηση εκτενών συστημάτων
Χειρισμός λαθών και εξαιρέσεις
Παράσταση εξαιρέσεων
Παράδειγμα παράστασης εξαιρέσεων
Δημιουργία εξαιρέσεων
Χειρισμός εξαιρέσεων
Τοπικός χειρισμός
Δήλωση εξαιρέσεων
Ολοκληρωμένο παράδειγμα εξαιρέσεων
Σχεδιασμός με εξαιρέσεις
Ισχυρισμοί
Ισχυρισμοί στην πράξη
Ισχυρισμοί στη Java
Παράδειγμα χρήσης ισχυρισμών
Διεπαφές
Διεπαφές: κανόνες
Υλοποίηση διεπαφών
Διάγραμμα υλοποίησης διεπαφών
Υλοποίηση πολλαπλών διεπαφών
Διάγραμμα υλοποίησης πολλαπλών διεπαφών
Επέκταση διεπαφών
Διαφορά αφηρημένης κλάσης από μια διεπαφή
Αφηρημένες κλάσεις ή διεπαφές;
Η αρχή της στιβαρότητας
Αιτιολόγηση χρήσης διεπαφών
Παράδειγμα στιβαρού σχεδιασμού
Πακέτα
Ορισμός κλάσεων σε πακέτα
Χρήση κλάσεων σε πακέτα
Κανόνες χρήσης πακέτων
Απλοποίηση χρήσης στατικών πεδίων
Άσκηση: παραγωγή και έλεγχος εξαιρέσεων
Βιβλιογραφία
Σχεδιασμός, εμφάνιση και ύφος
Δομημένος προγραμματισμός
Ο νόμος Demeter
Παράδειγμα Demeter
Απλοί κανόνες 1
Απλοί κανόνες 2
Πόσα σχόλια είναι αρκετά;
Σχόλια για τα σχόλια
Έλεγχοι
Τι να αποφεύγετε
Οδηγίες και παράδειγμα μορφοποίησης κώδικα
Βιβλιογραφία
Πρόσθετες πληροφορίες
Ασκήσεις
Γενικεύσεις και νήματα
Παραμετρικοί τύποι
Παράδειγμα: ζευγάρι
Παραμετρικοί τύποι στη Java
Παραμετρικοί τύποι μπαλαντέρ
Παράδειγμα γενίκευσης
Παράδειγμα υπερφόρτωσης μεθόδων
Ανακεφαλαίωση πολυμορφισμού
Χρήση πολυμορφισμού
Διάγραμμα πολυμορφισμού
Νήματα
Νήματα: προβλήματα
Αδιέξοδο
Νήματα: εναλλακτικές
Ορισμός νήματος στη Java
Χρήση νήματος στη Java
Παράδειγμα χρήσης νημάτων
Άσκηση: χρήση παραμετρικών τύπων και νήματα
Βιβλιογραφία
Δημιουργία γραφικών εφαρμογών
Στοιχεία της εφαρμογής
Συστατικά εισαγωγής δεδομένων
Συστατικά εμφάνισης δεδομένων
Επίδειξη συστατικών
Προγραμματιστική διεπαφή συστατικών
Παράδειγμα: ένα κενό παράθυρο
Προσαρμογή στο τοπικό περιβάλλον
Προγραμματιστική διεπαφή συμβάντων
Διαχειριστές διάταξης
Προγραμματιστική διεπαφή διάταξης FlowLayout
Παράδειγμα διάταξης FlowLayout
Αποτέλεσμα διάταξης FlowLayout
Προγραμματιστική διεπαφή διάταξης BorderLayout
Παράδειγμα διάταξης BorderLayout
Αποτέλεσμα διάταξης BorderLayout
Προγραμματιστική διεπαφή διάταξης GridLayout
Παράδειγμα διάταξης GridLayout
Αποτέλεσμα διάταξης GridLayout
Προγραμματισμός με συμβάντα
Παράδειγμα προγραμματισμού με συμβάντα
Αποτέλεσμα προγραμματισμού με συμβάντα
Συντεταγμένες γραφικών
Συντεταγμένες γραφικών (διάγραμμα)
Κλάση προγραμματιστικής διεπαφής χαμηλού επιπέδου
Μέθοδοι χαμηλού επιπέδου
Παράδειγμα: Σχεδίαση κειμένου
Κώδικας: Σχεδίαση κειμένου
Αποτέλεσμα: Σχεδίαση κειμένου
Παράδειγμα: Χειρισμός χρωμάτων
Αποτέλεσμα: Χειρισμός χρωμάτων
Παράδειγμα: Σχεδίαση σχημάτων
Κώδικας: Σχεδίαση σχημάτων
Αποτέλεσμα: Σχεδίαση σχημάτων
Παράδειγμα: Αρχεία εικόνων
Αποτέλεσμα: Αρχεία εικόνων
Άσκηση: Μία απλή γραφική εφαρμογή
Βιβλιογραφία
Ευχαριστίες
Δομές δεδομένων
Συμβολοσειρές
Συμβολοσειρές: παράδειγμα
Συμβολοσειρές πολλαπλών γραμμών
String: μέθοδοι κατασκευής
String: μέθοδοι επεξεργασίας
String: μέθοδοι ερωτήσεων
String: μέθοδοι μετατροπής
StringBuffer και StringBuilder
Εσωτερική χρήση της StringBuilder
Πλαίσια συλλογών
Πλεονεκτήματα
Το πλαίσιο συλλογών της Java
Διεπαφές συλλογών
Υλοποιήσεις συλλογών
Διαθέσιμες υλοποιήσεις στη Java
Πίνακας διεπαφών και υλοποιήσεων
Διάγραμμα UML
Collection: επεξεργασία
Collection: ερωτήσεις
Παράδειγμα της διεπαφής Collection
Η διεπαφή Iterator
Η διεπαφή ListIterator
Παράδειγμα της διεπαφής Iterator
Διάσχιση δομών με την εντολή foreach
Παραδείγματα foreach
Παράδειγμα: διάσχιση της ακολουθίας Fibonacci
Η διεπαφή Map
Ερωτήσεις διεπαφής Map
Παράδειγμα: νομισματικές ισοτιμίες
Η κλάση Stack
οι πύργοι του Ανόι
Παράδειγμα: οι πύργοι του Ανόι
Άσκηση: προγραμματισμός με συμβολοσειρές και συλλογές
Βιβλιογραφία
Χειρισμός αρχείων
Επισκόπηση
Δευτερεύουσα μνήμη
Παράσταση δεδομένων
Παραδείγματα παράστασης
Παράσταση αριθμών κινητής υποδιαστολής
Ομαδοποίηση δεδομένων
Παράδειγμα: ομαδοποίηση πεδίων σταθερού μήκους
Παράδειγμα: ομαδοποίηση πεδίων με διαχωριστικό
Ανάγνωση δυαδικών δεδομένων
Αυτόματη αποδέσμευση πόρων
Παράδειγμα: ανάγνωση byte
Εγγραφή δυαδικών δεδομένων
Παράδειγμα: εγγραφή εικόνας
Παράδειγμα: αρχείο PNG
Ανάγνωση χαρακτήρων
Παρένθεση: κωδικοποίηση ελληνικών χαρακτήρων
Διαθέσιμες κωδικοποιήσεις
Παράδειγμα: κατηγοριοποίηση χαρακτήρων
Εγγραφή χαρακτήρων
E/E συμβολοσειρών, πινάκων· σωληνώσεις
Σειριακοποίηση αντικειμένων
Δόκιμες λύσεις φύλαξης αντικειμένων
Ανακεφαλαίωση σειριακής πρόσβασης
Αρχεία τυχαίας πρόσβασης
Η διεπαφή NIO
Πρόσβαση στο σύστημα αρχείων
Άσκηση: επεξεργασία αρχείου κειμένου
Βιβλιογραφία
Παράρτημα: Παράσταση ελληνικών χαρακτήρων
Παράρτημα: το πρότυπο ASCII
Παράσταση δεδομένων με XML, JSON και κανονικές εκφράσεις
Σύνταξη κανονικών εκφράσεων
Σύμβολα με ειδικό νόημα
Πρόσθετα σύμβολα με ειδικό νόημα
Χαρακτήρες διαφυγής
Πρόσθετοι χαρακτήρες διαφυγής
Χρήση κανονικών εκφράσεων
Παράδειγμα: Εύρεση κανονικών εκφράσεων σε αρχείο
Αποτέλεσμα αναζήτησης κανονικών εκφράσεων
Διαίρεση συμβολοσειρών με πρότυπο
Διαίρεση συμβολοσειρών με κανονική έκφραση
Παράδειγμα: επεξεργασία αρχείων καταγραφής πρόσβασης σε ιστοσελίδες
Υλοποίηση αναγνώρισης κανονικών εκφράσεων
Επιλογή ανάμεσα σε JSON και XML
O μορφότυπος JSON
Σύνταξη JSON
Βασικοί τύποι δεδομένων σε JSON
Ενσωμάτωση JSON στη Java
Ανάγνωση και δημιουργία δεδομένων JSON
Βέλτιστες πρακτικές
Βάσεις της XML
Έγγραφα XML
Παραδείγματα XML
Προσδιορισμοί
Οντότητες και σχόλια
Διάκριση μεταξύ οντοτήτων, στοιχείων και προσδιορισμών
Παράδειγμα: ΚΑΔ XML
Ορισμός σχήματος εγγράφων με τη χρήση XSD
Σχήμα για απλά στοιχεία
Διαθέσιμοι τύποι
Περιορισμοί σε απλά στοιχεία
Είδη περιορισμών
Παραδείγματα περιορισμών
Σύνθετοι τύποι
Ορισμοί προσδιορισμών
Απλό περιεχόμενο
Παράδειγμα απλού περιεχομένου
Ομάδες
Παράδειγμα ομάδων
Αριθμητικοί περιορισμοί
Ανακεφαλαίωση
Παράδειγμα: ΚΑΔ XSD
Μετασχηματισμοί με τη χρήση XSLT
Στοιχεία της XSLT
Παράδειγμα μετασχηματισμού: σχήμα
Παράδειγμα μετασχηματισμού: έγγραφο
Παράδειγμα μετασχηματισμού: XSLT
Παράδειγμα μετασχηματισμού: αποτέλεσμα
Το μοντέλο αντικειμένων εγγράφων
Μέθοδοι αλλαγής εγγράφων
Διεπαφές της Node
Μέθοδοι της NodeList
Η υλοποίηση του μοντέλου αντικειμένων εγγράφων στη Java
Κλήσεις μέσω της διεπαφής Document
Παράδειγμα: υπολογισμός μέσου όρου
Αποτέλεσμα υπολογισμού
Άσκηση: Περιγραφή δεδομένων με XML και κανονικές εκφράσεις
Βιβλιογραφία
Παράρτημα: Ορισμός τύπου εγγράφων με τη χρήση DTD
Παράρτημα: Ορισμός τύπων προσδιορισμών με τη χρήση DTD
Εκτενές παράδειγμα
Γιορτινή κάρτα
Διάγραμμα των κλάσεων
HolidayCard
DrawPanel
Drawable
DrawablePanel
Tree
SnowFlake
SlashSnowFlake
PointSnowFlake
MidiPlayer
Τεκμηρίωση
Προαιρετική άσκηση
Πληροφορίες για την άσκηση
Συναρτήσεις και ροές
Συναρτησιακός προγραμματισμός
Εκφράσεις λάμδα
Διαθέσιμοι τύποι
Μέθοδοι σε συναρτήσεις
Παράδειγμα λάμδα
Μέθοδοι ως συναρτήσεις
Παράδειγμα σύνθεσης μεθόδων
Ροές
Τύποι ροών
Ο τύπος Optional
Πηγές ροών
Ενδιάμεση επεξεργασία ροών
Τελική επεξεργασία ροών
Παράδειγμα: Λέξεις κειμένου
Παράδειγμα: εκτίμηση πληθάριθμου
Η μέθοδος Newton-Raphson
Τετραγωνική ρίζα με Newton-Raphson
Παράδειγμα: Υλοποίηση √2 με NR
Άσκηση: συναρτήσεις και ροές
Βιβλιογραφία
Ανάπτυξη διαδικτυακών εφαρμογών
Περιεχόμενα
Το μοντέλο αναφοράς OSI
Φυσικό επίπεδο
Επίπεδο σύνδεσης
Επίπεδο δικτύου
IPv4
Επίπεδο μεταφοράς
TCP
Επίπεδο συνόδου
Επίπεδο παρουσίασης
Επίπεδο εφαρμογής
Αρχιτεκτονική του παγκόσμιου ιστού
Προσδιορισμός στοιχείων με URI
Το πρωτόκολλο HTTP
Παράδειγμα HTTP
Αίτημα HTTP στη Java
Χαρακτηριστικά της αρχιτεκτονικής REST
Παραδείγματα αιτήσεων REST
Εξυπηρετητής ώρας HTTP στη Java
Διαδικτυακές εφαρμογές στην πράξη
Άσκηση: Επικοινωνία Πελάτη-Εξυπηρετητή
Βιβλιογραφία
Ατομικές ασκήσεις και συμμετοχή
Αρχείο των ασκήσεων και ηλεκτρονική παράδοση
Οδηγίες
Προθεσμίες παράδοσης
Συχνές ερωτήσεις και απαντήσεις (FAQ)
Σωστά καταχωρημένες ασκήσεις
Βαθμοί ασκήσεων ανά Α.Μ.
Λάθη στον έλεγχο του βαθμού
Ενδιαφέρουσα βιβλιογραφία
Θέματα εξετάσεων
Πιλοτικά θέματα εξετάσεων
Εξεταστική περίοδος Φεβρουαρίου 2004
Εξεταστική περίοδος Σεπτεμβρίου 2005