Το παρόν πρόγραμμα αποτελεί συνέχεια του Java Α-Ω: Entry-to-Mid Level και δίνει έμφαση στο σχεδιασμό και την ανάπτυξη σύνθετων αντικειμενοστραφών εφαρμογών μέσα από πρακτικά παραδείγματα βασισμένα σε βιντεοδιαλέξεις, σημειώσεις, ασκήσεις αυτοαξιολόγησης, εργαστήρια και εργασίες καθώς και άλλες εκπαιδευτικές δραστηριότητες.
Ενότητες
Ενότητα 1 – Αναθεώρηση, Ανάγνωση και Έλεγχος κώδικα, Κανονικές εκφράσεις
Αναθεώρηση – Java Entry-to-Mid Level Programmer
Η γλώσσα Java, Δομημένος Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός
Ενθυλάκωση, Κληρονομικότητα Κλάσεων και Πολυμορφισμός
Παραδείγματα Προγραμματισμού
Ανάγνωση και Έλεγχος κώδικα
Ανάγνωση Κώδικα (Code Reading)
Έλεγχος κώδικα
Unit Test με το Junit
Regular Expressions
Κανονικές εκφράσεις και patterns
Equals vs matches
Περιοχές χαρακτήρων, μεταχαρακτήρες και ποσοδείκτες
Pattern / Matcher
Groups, Split, Replace
Ενότητα 2 – Interfaces, Abstract Κλάσεις, Lambda ExpressionsInterfaces και UML
Interfaces, API και Design by Contract
Σχεδιασμός με UML
Κληρονομικότητα Interfaces
Marker Interfaces, Functional Interfaces
Default, Static, Private Μέθοδοι σε Interfaces
Skeletal implementation
Abstract Classes, Anonymous classes, Μέθοδοι callback, Lambdas, Shallow vs Deep Copy, Object Utilities και Mixin Interfaces
Abstract Μέθοδοι, Κλάσεις, Skeletal Implementation
Interfaces vs Abstract κλάσεις, Ανώνυμες Κλάσεις
Callback Μέθοδοι, Lambda Expressions και Functional Interfaces
Η Κλάση Object, Mixin interfaces, το interface Cloneable
Shallow copy vs Deep Copy vs Copy Constructors
Object utility methods: equals() και hashCode()
Το interface Serializable
Ενότητα 3 – Δομές Δεδομένων και Java Collection Framework
Java Data Structures, Αναδρομή και Time Complexity
Γραμμικές λίστες, Πίνακες, Δυναμικές λίστες
Στοίβα, Ουρές, Δένδρα, Δυαδικά δένδρα αναζήτησης, AVL-δένδρα
Σωροί, Β, Β+ Δένδρα
Γραφήματα, Αλγόριθμοι Διάσχισης DFS, BFS
Αλγόριθμοι και Πολυπλοκότητα, Συμβολισμός Ο (Big O Notation)
Αναδρομικά Προβλήματα, Διαίρει και Βασίλευε
Αναδρομικό Παραγοντικό, Fibonacci
Αλγόριθμοι αναζήτησης και ταξινόμησης
MergeSort, QuickSort, Selection Sort, Bubble Sort, Heap Sort
Java Generics & Java Collections Framework
Java Generics, Δηλώσεις τύπων, Άνω φράγματα
Γενικές Μέθοδοι, ο χαρακτήρας ?
Type Erasure
Java Collections Framework
Interface Collection, List, Set, Queue
ArrayList, LinkedList
Set, HashSet, TreeSet
Queue, PriorityQueue
Stack, Deque
Collection sort
Maps, HashMap
Υλοποίηση HashMap
HashMap buckets, Initial capacity και Load factor
Μέθοδοι HashMap
Διάσχιση HashMap, Αναζήτηση σε HashMap
TreeMap, LinkedHashMap
Comparable, Comparator
Interface Comparable
Ταξινόμηση αντικειμένων με την compateTo()
Comparator και η μέθοδος compare()
Ταξινομήσεις
Natural Ordering
Ενότητα 4 – Java Database Connectivity, Ανάπτυξη Προγραμμάτων και Διαχείριση Εκδόσεων με το Git
Java Database Connectivity
Περιγραφή JDBC, JDBC Drivers
Αρχιτεκτονική JDBC
JDBC API, Packages, JDBC Connection
JDBC Statement, ResultSet, Queries και εφαρμογές
Εφαρμογές, παραδείγματα και διανομή εφαρμογών με αρχεία jar
Packages
Βήματα για deployment και διανομή εφαρμογών
Αρχεία jar και εκτελέσιμα jars
Maven
Ενότητα 5 – Git και GitHub
Version Management με το Git και GitHub
Version Control
Centralized vs Decentralized Αρχιτεκτονικές
Git και GitHub
Ασφάλεια Δεδομένων
Git workflow
Linux-based εντολές και διαχείριση
Global Configuration
Repositories και Cloning
Ο συντάκτης κειμένου vi
Παραδείγματα και εφαρμογές
Η «αξία» του προγράμματος
Η καρδιά του προγράμματος είναι ο κώδικας και η ανάπτυξη λογισμικού. Οι δεξιότητες που θα αποκτηθούν θα επιτρέψουν στους εκπαιδευόμενους να μπορούν να κατανοήσουν εύκολα κάθε γλώσσα προγραμματισμού και να γίνουν όχι μόνο επιτυχημένοι προγραμματιστές αλλά και επαγγελματίες στο χώρο των τεχνολογιών της πληροφορίας.