80.00

Software programming principles, algorithms and computations with Java

Οι εγγραφές έχουν ξεκινήσει!!

Έναρξη Μαθημάτων: 23 Σεπτέμβρη 2019

Διευθυντής Προγράμματος: Dr. Ioannis Nikolakopoulos (in)

Το πρόγραμμα είναι πιστοποιημένο από το Athens Tech College, το πρώτο εκπαιδευτικό ίδρυμα στην Ελλάδα προσανατολισμένο σε σπουδές πληροφορικής & τεχνολογίας.

Εκδήλωσε το ενδιαφέρον σου τώρα και κλείσε την θέση σου!

Express Your Interest

Description

Γιατί να παρακολουθήσω το πρόγραμμα

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

Η ανάγκη περισσότερης ευελιξίας, ειδικά όσον αφορά την αξιόπιστη συντήρηση και επέκταση μίας πολύπλοκης και σύγχρονης εφαρμογής μπορεί να ικανοποιηθεί μόνο με την εμπέδωση του αντικειμενοστραφούς μοντέλου ανάπτυξης κώδικα. Η Java είναι μια σύγχρονη, ασφαλής γλώσσα προγραμματισμού που ακολουθεί την αντικειμενοστραφή μοντελοποίηση όπως και η C++. Συνεπώς, επιτρέπει τη σχεδίαση και ανάπτυξη απαιτητικών και μεγάλων εφαρμογών και εγγυάται ομαλή λειτουργία και σωστή επεκτασιμότητα και συντήρηση. Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουν ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh χωρίς να χρειαστεί να ξαναγίνει  μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστημα. Η Java είναι cross platform γλώσσα που τρέχει/ μεταφράζεται σε αντίστοιχη εικονική μηχανή (Java Virtual Machine – JVM). Όπως γίνεται κατανοητό από τα παραπάνω, η τεχνολογία της Java προτιμάται ευρέως από τις περισσότερες εταιρίες που δραστηριοποιούνται σε όλους τους τομείς.

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

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

Πιο συγκεκριμένα, με την επιτυχή ολοκλήρωση της σειράς των μαθημάτων ο μαθητής/ συμμετέχων θα είναι σε θέση να:

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

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

Τετράμηνο Α

Εισαγωγή στον προγραμματισμό με Java.

  • Βασικά στοιχεία προγράμματος.
  • Χρήση του περιβάλλοντος ανάπτυξης εφαρμογών (IDE).
  • Τύποι δεδομένων.
  • Μεταβλητές & Ανάθεση τιμών.
  • Είσοδος και έξοδος προγράμματος.
  • Εκφράσεις και Τελεστές.
  • Προτεραιότητα τελεστών
  • Δημιουργία του πρώτου προγράμματος σε Java
  • Λογικές μεταβλητές.
  • Λογικές συνθήκες.
  • Λογικές πράξεις.
  • Βασικές μαθηματικές συναρτήσεις
  • Εισαγωγή δεδομένων από το πληκτρολόγιο

Έλεγχος ροής προγράμματος.

  • Απλή εντολή ελέγχου.
  • Σύνθετη εντολή ελέγχου
  • Τριαδικός τελεστής
  • Δομή πολλαπλής διακλάδωσης switch
  • Εντολές επανάληψης – βρόχοι (for, while, do-while)
  • Ένθετοι βρόχοι
  • Εντολή break
  • Εντολή continue
  • Η έννοια της μεθόδου
  • Ορισμός, δήλωση και κλήση μεθόδου.
  • Εμβέλεια μεταβλητών.

Εισαγωγή στα αλφαριθμητικά

  • Πράξεις με αλφαριθμητικά
  • Προσπέλαση μεμονωμένων χαρακτήρων – εύρεση μήκους αλφαριθμητικού
  • Αντικατάσταση χαρακτήρων σε αλφαριθμητικό
  • Μετατροπή άλλων τύπων δεδομένων σε αλφαριθμητικά, και το αντίστροφο
  • Η κλάση StringBuffer

Διαχείριση Αρχείων

  • Έννοια της ροής δεδομένων
  • Βασικά ρεύματα εισόδου – εξόδου
  • Ρεύματα εξόδου σε αρχεία κειμένου
  • Εξαίρεση FileNotFoundException για τη διαχείριση της περίπτωσης μη εύρεσης αρχείου
  • Εγγραφή σε και ανάγνωση από αρχείο κειμένου
  • Προσάρτηση επιπλέον δεδομένων σε υπάρχων αρχείο κειμένου

Τετράμηνο Β

Εισαγωγή στις Κλάσεις και τα Αντικείμενα

  • Τι είναι κλάση
  • Τι είναι αντικείμενο
  • Πως ορίζουμε μια κλάση
  • Η μεταβλητή this
  • Δημιουργία αντικειμένων με κατασκευαστές κλάσης
  • Πολλαπλοί κατασκευαστές
  • Τι είναι τα πακέτα
  • Τυπικά πακέτα της Java
  • Μέθοδοι και κλάσης αφηρημένου τύπου

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

  • Περιγραφή προβλήματος
  • Μεταβλητές μέλη
  • Ορατότητα (visibility)
  • Δημιουργία αντικειμένων
  • Δημιουργία μεθόδων σε κλάσεις
  • Υπερφόρτωση (overloading) μεθόδων
  • Μέθοδοι ανάθεσης (Setters) και ανάκτησης (Getters)
  • Στατικά μέλη και μέθοδοι
  • Απαρίθμητοι τύποι (enumerated values)
  • Project

Περεταίρω εμβάθυνση στον Αντικειμενοστραφή Προγραμματισμό

  • Κληρονομικότητα
  • Κλάσεις, υπερκλάσεις και υποκλάσεις
  • Σχέσεις «είναι» και «έχει» (has-a)
  • Αντιμείμενο Object
  • Υπερκάλυψη (overloading) μεθόδων
  • Τελικές κλάσεις
  • Πολυμορφισμός
  • Αφηρημένες (abstract) κλάσεις
  • Διεπαφές (inrerfaces)
  • Εσωτερικές κλάσεις
  • Project

Τετράμηνο Γ

Εισαγωγή στις Συλλογές – δομές δεδομένων της Java

  • Διεπαφή Collection
  • ArrayList, HashSet, HashMap
  • Προσπέλαση συλλογών με βρόχο for και με Iterators

Χειρισμός εξαιρέσεων και λαθών

  • Τι είναι οι εξαιρέσεις (exceptions)
  • Εντολή throw και Μπλοκ try-catch-finally
  • Συχνά χρησιμοποιούμενες εξαιρέσεις
  • Δημιουργία νέων εξαιρέσεων
  • Διάδοση εξαιρέσεων
  • Τύποι εξαιρέσεων

Διαδικτυακός Προγραμματισμός

  • Το μοντέλο πελάτης – εξυπηρετητής (client – server)
  • Κλάση Socket
  • Κλάση ServerSocket
  • Τι είναι τα Datagrams
  • Κλάση DatagramSocket
  • Project

Πολυνηματική επεξεργασία (multithreading)

  • Τι είναι το νήμα (thread)
  • Δημιουργία νήματος
  • Η κλάση Thread
  • Συγχρονισμός (synchronization)
  • Προτεραιότητες (priorities)
  • Κύκλος ζωής νήματος
  • Αδιέξοδο (deadlock)
  • Σύνολα νημάτων (thread pools)
  • Project

Τετράμηνο Δ

Σχεδιασμός Γραφικού Περιβάλλοντος (Graphical User Interface – GUI)

  • Τι είναι το γραφικό περιβάλλον
  • Εισαγωγή στο Java Swing
  • Διαχειριστές διάταξης (layout managers)
  • Κουμπιά διαταγών
  • Πλαίσιο
  • Πεδίο και περιοχή κειμένου
  • Πλαίσια ελέγχου και ραδιοπλήκτρα
  • Επιλογή αρχείων
  • Δημιουργία μενού
  • Χειρισμός συμβάντων (event handling)
  • Παράθυρα διαλόγων (dialog boxes)

Final Project

Το τελικό project καλύπτει το σύνολο των γνώσεων που αποκτήθηκαν σε όλα τα τετράμηνα του προγράμματος. Αφορά τη σχεδίαση και υλοποίηση μίας desktop εφαρμογής διαχείρισης βιβλιοθήκης και θα καλύπτει τις εξής ελάχιστες βασικές λειτουργίες / περιπτώσεις χρήσης (use cases):

  • Έλεγχος σύνδεσης στην εφαρμογή (login). Θα καλύπτονται οι εξής ρόλοι: Διαχειριστής, βιβλιοθηκάριος
  • Διαχειριστής
    • Μπορεί να προσθέσει, διαγράψει ή τροποποιήσει εγγραφή βιβλιοθηκάριου
  • Βιβλιοθηκάριος
    • Μπορεί να προσθέσει και να προβάλλει πληροφορίες για βιβλία
    • Μπορεί να δανείσει βιβλίο σε αναγνώστη
    • Μπορεί να δεχτεί επιστροφή βιβλίου από αναγνώστη
    • Μπορεί να εγγράψει αναγνώστες στο σύστημα
    • Μπορεί να ελέγξει ποια βιβλία έχει δανειστεί ένας αναγνώστης στο παρελθόν
    • Μπορεί να ελέγξει ποια βιβλία οφείλει να επιστρέψει ένας αναγνώστης

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

Η διάρκεια του προγράμματος

  • Το πρόγραμμα ολοκληρώνεται σε 4 τετράμηνα.
  • Τα μαθήματα ξεκινούν 23 Σεπτέμβρη 2019 και θα πραγματοποιούνται 18.00-20.00 μία φορά την εβδομάδα.
  • Χειμερινό Τετράμηνο: 23-Σεπτέμβρη-19 μέχρι 23-Γενάρη-19
  • Εαρινό Τετράμηνο: 3-Φλεβάρη-19 μέχρι 29-Μαΐου-19

Μαθητές στους οποίους απευθυνόμαστε

  • Το πρόγραμμα απευθύνεται σε μαθητές A’ & B’ Λυκείου.
  • Τα μαθήματα πραγματοποιούνται σε ολιγομελή τμήματα.

Προαπαιτούμενες γνώσεις

  • Η εκπαίδευση αυτή προσφέρει μια ολοκληρωμένη προσέγγιση αντικειμενοστραφούς προγραμματισμού με χρήση της γλώσσας προγραμματισμού Java και δεν απαιτεί προηγούμενες γνώσεις.

Express Your Interest

Additional information

Φορέας Πιστοποίησης:

Athens Tech College

Διάρκεια:

Το πρόγραμμα ολοκληρώνεται σε 4 τετράμηνα.
Τα μαθήματα ξεκινούν 23 Σεπτέμβρη 2019 και θα πραγματοποιούνται 18.00-20.00 μία φορά την εβδομάδα.
Χειμερινό Τετράμηνο: 23-Σεπτέμβρη-19 μέχρι 23-Γενάρη-19
Εαρινό Τετράμηνο: 3-Φλεβάρη-19 μέχρι 29-Μαΐου-19

Εγκαταστάσεις:

Code.Hub & Athens Tech College
Leof. Alexandras 205, Athina 115 23
https://goo.gl/maps/wYqc3TG9iEhi8HiA9