studies
Advanced Informatics and Computing Systems - Software Development and Αrtificial Intelligence
Artificial Intelligence and Smart Software Applications
Obligatory Courses
1st semester
Advanced Programming in PYTHON
Εισαγωγικά στοιχεία
Παράσταση και κωδικοποίηση δεδομένων
Πράξεις-Άλγεβρα Boole
Βασικές αρχές αλγορίθμων, πολυπλοκότητας και δικτύων
Βασικές αρχές λειτουργικών συστημάτων
Εισαγωγή στον προγραμματισμό: γλώσσες προγραμματισμού, μεταγλώττιση, γλώσσα
μηχανής, κατηγορίες γλωσσών προγραμματισμού.
Βασικές δομές δεδομένων: τύποι δεδομένων, αριθμοί, αλφαριθμητικά, λίστες και πίνακες,
σύνολα, λεξικά
Έλεγχος ροής προγράμματος: συνθήκες, τελεστές σύγκρισης, σύγκριση αλφαριθμητικών και ακολουθιών, boolean τελεστές, εμφωλιασμένες επαναλήψεις.
Συναρτήσεις
Χρήση αρχείων κειμένου για εισαγωγή και έξοδο δεδομένων
Σφάλματα και Εξαιρέσεις
Συλλογή δεδομένων από το διαδίκτυο
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά αφενός με τις βασικές και αφετέρου με τις προηγμένες αρχές της επιστήμης των υπολογιστών μέσω της γλώσσας προγραμματισμού Python
- Να γράφουν (να δημιουργούν, να συνθέτουν) προγράμματα (απλά ή σύνθετα)
- Να μετρούν, να ελέγχουν και να αξιολογούν με κριτική αντίληψη την ορθότητα και την καταλληλότητα ενός προγράμματος.
- Να εκσφαλματώνουν προγράμματα με ευχέρεια.
- Να γνωρίζουν ευρέως, να επιλέγουν, να διακρίνουν, να ερμηνεύουν, να συνδυάζουν και να εφαρμόζουν με ευχέρεια βασικές προγραμματιστικές έννοιες, δομές και τεχνικές.
- Να εκτελούν απλούς και σύνθετους αριθμητικούς υπολογισμούς μέσω του προγραμματισμού.
- Να χρησιμοποιούν δομές ελέγχου, συνθήκες, δομές απόφασης και δομές επανάληψης-βρόχους.
- Να δομούν τα προγράμματά τους με χρήση επαναληπτικών και αναδρομικών συναρτήσεων.
- Να διακρίνουν, να εκτιμήσουν και να κατανοήσουν την πολυπλοκότητα ενός αλγορίθμου
- Να συνθέτουν, να οργανώνουν και να προγραμματίζουν βασικές πράξεις σε δεδομένα όπως εύρεση και ταξινόμηση.
- Να μπορούν να επεξεργάζονται με ευχέρεια αρχεία κειμένου
- Να μπορούν να επεξεργαστούν αυτόματα πληροφορία από το διαδίκτυο
- Να μπορούν να χρησιμοποιήσουν και να εργαστούν με αποθετήρια κώδικα.
- Εφαρμόζουν με ευχέρεια τις θεωρίες και μεθοδολογίες του γνωστικού τους πεδίου στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
543, Central Building
+30 210 4142314
Artificial Intelligence
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά αφενός με τις βασικές και αφετέρου με τις προηγμένες αρχές της επιστήμης των υπολογιστών μέσω της γλώσσας προγραμματισμού Python
- Να γράφουν (να δημιουργούν, να συνθέτουν) προγράμματα (απλά ή σύνθετα)
- Να μετρούν, να ελέγχουν και να αξιολογούν με κριτική αντίληψη την ορθότητα και την καταλληλότητα ενός προγράμματος.
- Να εκσφαλματώνουν προγράμματα με ευχέρεια.
- Να γνωρίζουν ευρέως, να επιλέγουν, να διακρίνουν, να ερμηνεύουν, να συνδυάζουν και να εφαρμόζουν με ευχέρεια βασικές προγραμματιστικές έννοιες, δομές και τεχνικές.
- Να εκτελούν απλούς και σύνθετους αριθμητικούς υπολογισμούς μέσω του προγραμματισμού.
- Να χρησιμοποιούν δομές ελέγχου, συνθήκες, δομές απόφασης και δομές επανάληψης-βρόχους.
- Να δομούν τα προγράμματά τους με χρήση επαναληπτικών και αναδρομικών συναρτήσεων.
- Να διακρίνουν, να εκτιμήσουν και να κατανοήσουν την πολυπλοκότητα ενός αλγορίθμου
- Να συνθέτουν, να οργανώνουν και να προγραμματίζουν βασικές πράξεις σε δεδομένα όπως εύρεση και ταξινόμηση.
- Να μπορούν να επεξεργάζονται με ευχέρεια αρχεία κειμένου
- Να μπορούν να επεξεργαστούν αυτόματα πληροφορία από το διαδίκτυο
- Να μπορούν να χρησιμοποιήσουν και να εργαστούν με αποθετήρια κώδικα.
- Εφαρμόζουν με ευχέρεια τις θεωρίες και μεθοδολογίες του γνωστικού τους πεδίου στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά αφενός με τις βασικές και αφετέρου με τις προηγμένες αρχές της επιστήμης των υπολογιστών μέσω της γλώσσας προγραμματισμού Python
- Να γράφουν (να δημιουργούν, να συνθέτουν) προγράμματα (απλά ή σύνθετα)
- Να μετρούν, να ελέγχουν και να αξιολογούν με κριτική αντίληψη την ορθότητα και την καταλληλότητα ενός προγράμματος.
- Να εκσφαλματώνουν προγράμματα με ευχέρεια.
- Να γνωρίζουν ευρέως, να επιλέγουν, να διακρίνουν, να ερμηνεύουν, να συνδυάζουν και να εφαρμόζουν με ευχέρεια βασικές προγραμματιστικές έννοιες, δομές και τεχνικές.
- Να εκτελούν απλούς και σύνθετους αριθμητικούς υπολογισμούς μέσω του προγραμματισμού.
- Να χρησιμοποιούν δομές ελέγχου, συνθήκες, δομές απόφασης και δομές επανάληψης-βρόχους.
- Να δομούν τα προγράμματά τους με χρήση επαναληπτικών και αναδρομικών συναρτήσεων.
- Να διακρίνουν, να εκτιμήσουν και να κατανοήσουν την πολυπλοκότητα ενός αλγορίθμου
- Να συνθέτουν, να οργανώνουν και να προγραμματίζουν βασικές πράξεις σε δεδομένα όπως εύρεση και ταξινόμηση.
- Να μπορούν να επεξεργάζονται με ευχέρεια αρχεία κειμένου
- Να μπορούν να επεξεργαστούν αυτόματα πληροφορία από το διαδίκτυο
- Να μπορούν να χρησιμοποιήσουν και να εργαστούν με αποθετήρια κώδικα.
- Εφαρμόζουν με ευχέρεια τις θεωρίες και μεθοδολογίες του γνωστικού τους πεδίου στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
604,Lam.126
+302104142146
Software Development for the World-wide Web
To μάθημα ασχολείται με τη θεωρητική μελέτη και την πρακτική εξάσκηση σε θέματα προγραμματισμού εφαρμογων λογισμικού για τον παγκόσμιο ιστό, στη σχεδίαση και προγραμματισμό σύγχρονου λογισμικού με βάση τις κατευθύνσεις της υπηρεσιοστρεφούς προσέγγισης (service oriented), με αρχές σχεδίασης λογισμικού REST, για την αποδοτική πρόσβασης σε πηγές πληροφοριών.
Στόχος είναι να γίνει κατανοητός ο τρόπος σχεδίασης, ανάπτυξης, λειτουργίας και συντήρησης λογισμικού με αποδοτικότητα με πρακτική εξάσκηση σε εργαστηριακό περιβάλλον (δίνονται εναλλακτικές εργαστηριακές υλοποίησης σε Ruby/Rails, Java, .NET C#, Python, κ.α.).
- Οργάνωση ανάπτυξης λογισμικού με τον ευέλικτο προγραμματισμό
- Συμπεριφορική σχεδίαση λογισμικού
- Ανάπτυξη και λογισμικό υπηρεσίας διαχείρισης εκδόσεων
- Διαχείριση ομάδων ανάπτυξης λογισμικού
- Διαχείριση διαδικασιών για την ομαλή μετάβαση από την ανάπτυξη στην εγκατάσταση
- Σχεδιάση με χρήση REST αρχιτεκτονικής
- Αποδοτικότητα με βάση το HTTP v0
- Προκλήσεις των Object Relational πλαισίων σχεδίασης και ανάπτυξης εφαρμογών ιστού
- Καλές πρακτικές στη σχεδίαση front-end λογισμικού
- Στοιχεία για την αποδοτική εγκατάσταση εφαρμογών λογισμικού παγκόσμιου ιστού
Με την επιτυχή ολοκλήρωση αυτού του μαθήματος οι φοιτητές θα είναι σε θέση:
- Να εφαρμόζουν αρχιτεκτονική REST
- Να αναγνωρίζουν αρχές σχεδίασης λογισμικού με REST
- Να αναγνωρίζουν και να κατανοούν σύγχρονες τεχνικές σχεδίασης ολοκληρωμένων εφαρμογών λογισμικού του παγκόσμιου ιστού
- Να διακρίνουν έννοιες αποδοτικής διασύνδεσης εφαρμογών παγκόσμιου ιστού με βάσεις δεδομένων (ORM)
- Να αξιολογούν και να επιλέγουν πλαίσιο σχεδίασης και ανάπτυξης λογισμικού εφαρμογών παγκόσμιου ιστού
543, Central Building
Phone Number /Fax:+30 210 4142312
Pattern Recognition and Machine Learning
Αναγνώριση Προτύπων (pattern recognition) είναι η επιστημονική περιοχή που έχει στόχο την ταξινόμηση αντικειμένων σε κατηγορίες (κλάσεις) και συμπεριλαμβάνει το επιστημονικό πεδίο της Μηχανικής Μάθησης (machine learning). Σκοπός, επομένως, του παρόντος μαθήματος είναι να παρουσιάσει με ενιαίο τρόπο τις ευρύτερα χρησιμοποιούμενες τεχνικές και μεθοδολογίες για προβλήματα αναγνώρισης προτύπων.
Το περιεχόμενο του μαθήματος χωρίζεται σε οκτώ ενότητες και κάθε ενότητα πραγματοποιείται σε μία ή περισσότερες διαλέξεις.
Ενότητα 1: Εισαγωγή στην Αναγνώριση Προτύπων
Ενότητα 2: Ταξινομητές που βασίζονται στη θεωρία αποφάσεων του Bayes:
Θεωρία Αποφάσεων του Bayes, H Γκαουσσιανή Συνάρτηση Πυκνότητας Πιθανότητας, Ταξινομητές Ελάχιστης Απόστασης, Ταξινομητής Ευκλείδειας Απόστασης, Ταξινομητής Mahalanobis Απόστασης, Εκτίμηση Μέγιστης Πιθανοφάνειας των παραμέτρων της Γκαουσσιανής Συνάρτησης Πυκνότητας Πιθανότητας
Μοντέλα Μίξης, Ο Αλγόριθμος Expectation-Maximization, Παράθυρα Parzen
Εκτίμηση Πυκνότητας Πιθανότητας με βάση τους k-πλησιέστερους γείτονες, Ο Ταξινομητής Naive Bayes, Ο Ταξινομητής Πλησιέστερων Γειτόνων
Ενότητα 3: Ταξινομητές που βασίζονται στη Βελτιστοποίηση Συνάρτησης Κόστους:
Ο αλγόριθμος Perceptron, H online έκδοση του αλγόριθμου Perceptron, Ταξινομητής Ελάχιστου Τετραγωνικού Σφάλματος, Περίπτωση πολλών κλάσεων, Μηχανές Διανυσματικής Στήριξης (ΜΔΣ/SVM): Η γραμμική περίπτωση, Επεκτάσεις για την περίπτωση πολλών κλάσεων, SVM: Η μη γραμμική περίπτωση, Ο Αλγόριθμος Perceptron με χρήση Πυρήνων, O Αλγόριθμος AdaBoost, Πολυστρωματικά Δίκτυα Perceptrons
Ενότητα 4: Μετασχηματισμοί Δεδομένων: Γένεση Χαρακτηριστικών και Μείωση Αριθμού Διαστάσεων:
Ανάλυση σε Κύριες Συνιστώσες (PCA), Ανάλυση σε Ιδιάζουσες Τιμές (SVD), Ανάλυση Γραμμικής Διάκρισης κατά Fisher, Ανάλυση σε Κύριες Συνιστώσες με Χρήση Πυρήνων, Μέθοδος Χαρτογράφησης Ιδιοτιμών του Laplacian Μητρώου
Ενότητα 5: Επιλογή Χαρακτηριστικών:
Αποκοπή Ακραίων Τιμών, Κανονικοποίηση Δεδομένων, Έλεγχος Υποθέσεων: t-Test,
Καμπύλη Receiver Operating Characteristic, Λόγος Διάκρισης κατά Fisher, Μέτρα Διαχωριστικής Ικανότητας μεταξύ κλάσεων, Απόκλιση, Απόσταση Bhattacharya και Φράγμα Chernoff, Μέτρα βασισμένα σε Μητρώα Διασποράς, Επιλογή Υποσυνόλου Χαρακτηριστικών, Βαθμωτή Επιλογή Χαρακτηριστικών, Διανυσματική Επιλογή Χαρακτηριστικών
Ενότητα 6: Σύγκριση με Πρότυπα Αναφοράς: Απόσταση Edit, Σύγκριση Ακολουθιών Πραγματικών Αριθμών, Δυναμική Χρονική Στρέβλωση στα πλαίσια της Αναγνώρισης Φωνής
Ενότητα 7: Κρυφά Μοντέλα Markov: Μοντελοποίηση, Αναγνώριση και Εκπαίδευση
Ενότητα 8: Ομαδοποίηση: Βασικές Έννοιες και Ορισμοί, Αλγόριθμοι Ομαδοποίησης, Ακολουθιακοί Αλγόριθμοι, Αλγόριθμος BSAS, Βελτίωση Ομαδοποίησης, Αλγόριθμοι Ομαδοποίησης Βασιζόμενοι στη Βελτιστοποίηση Συνάρτησης Κόστους, Αλγόριθμοι Σαφούς Ομαδοποίησης, Αλγόριθμοι Μη-Σαφούς Ομαδοποίησης, Άλλοι Αλγόριθμοι Ομαδοποίησης, Αλγόριθμοι Ιεραρχικής Ομαδοποίησης, Γενικό Σχήμα Συγχώνευσης, Εξειδικευμένοι Αλγόριθμοι Συγχώνευσης, Επιλογή της καλύτερης Ομαδοποίησης
Με την επιτυχή́ ολοκλήρωση του μαθήματος ο φοιτητής θα είναι σε θέση:
- Να διαθέτει προχωρημένες και εξειδικευμένες γνώσεις σε αλγορίθμους, τεχνικές και μεθοδολογίες αναγνώρισης προτύπων, όπως στην Μπεϋζιανή θεωρία ταξινόμησης, σε γραμμικούς και μη γραμμικούς ταξινομητές, σε Νευρωνικά δίκτυα, σε Κρυφά Μοντέλα Markov, σε αλγορίθμους ομαδοποίησης και τεχνικές επιλογής χαρακτηριστικών και μείωσης αριθμού διαστάσεων δεδομένων.
- Να αντιλαμβάνεται με ευχέρεια πώς συνδυάζονται γνώσεις πιθανοτήτων, στατιστικής, γραμμικής άλγεβρας και βελτιστοποίησης για τη δημιουργία αλγορίθμων αναγνώρισης προτύπων.
- Να αναλύει προβλήματα πραγματικών δεδομένων (ανοικτής πρόσβασης), στα οποία απαιτείται η σχεδίαση/ανάπτυξη/υλοποίηση συστημάτων ταξινόμησης αντικειμένων.
- Να εκτιμά με κριτική σκέψη το εφικτό των προβλημάτων αυτών, να επιλέγει τους κατάλληλους αλγορίθμους/τεχνικές και να προβαίνει στην αποτίμηση και συγκριτική μελέτη των επιδόσεων εναλλακτικών λύσεων.
- Να διαχειρίζεται με ευχέρεια τον φόρτο και την πολυπλοκότητα τέτοιων προβλημάτων πραγματικών δεδομένων σε περιβάλλον ομαδικής εργασίας.
- Να κατέχει προχωρημένες προγραμματιστικές δεξιότητες σε περιβάλλον ανάπτυξης λογισμικού Python/MATLAB/GNU Octave για την υλοποίηση πρωτότυπων αλγορίθμων, τεχνικών και μεθόδων ταξινόμησης αντικειμένων.
- Να εκτιμά και να επαναχρησιμοποιεί υφιστάμενες υλοποιήσεις συναρτήσεων ανοιχτού κώδικα, σχετικών με το πεδίο της αναγνώρισης προτύπων, όπως των συναρτήσεων της βιβλιοθήκης scikit-learn.
- Να διακρίνει έννοιες συναφείς της αναγνώρισης προτύπων, στα συγγενή επιστημονικά πεδία της Μηχανικής Μάθησης, της Ανάλυσης Δεδομένων και της Τεχνητής Νοημοσύνης.
- Να εφαρμόζει με ευχέρεια και πρωτοτυπία αλγορίθμους, τεχνικές και μεθοδολογίες αναγνώρισης προτύπων στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύει κριτική κατανόηση στον τρόπο διασύνδεσης των αλγορίθμων, τεχνικών και μεθοδολογιών αναγνώρισης προτύπων με ποικίλους γνωστικούς τομείς.
- Να εφαρμόζει αλγορίθμους, τεχνικές και μεθοδολογίες αναγνώρισης προτύπων για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο.
- Να αναπτύσσει με αυτονομία τις σχετικές με την αναγνώριση προτύπων γνώσεις και ικανότητές τους.
- Να επιλύει προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στους αλγορίθμους, στις τεχνικές και στις μεθοδολογίες αναγνώρισης προτύπων.
302, Central Building
+302104142322
543, Central Building
+30 210 4142314
Special Topics in Software Engineering
Professor
507, Central Building
+30.210.4142269
2nd semester
Advanced Deep Learning with PYTHON
Το μάθημα παρουσιάζει υπερσύγχρονες αρχιτεκτονικές Βαθέων Νευρωνικών Δικτύων, όπως: Πολυστρωματικά Perceptrons, Συνελικτικές αρχιτεκτονικές, Επαναλαμβανόμενα Νευρωνικά Δίκτυα, Μηχανισμοί Προσοχής και Μετασχηματιστές. Επιπλέον, το μάθημα συζητά έννοιες και ζητήματα που σχετίζονται με την εκπαίδευση που είναι ζωτικής σημασίας για την απόκτηση μιας σταθερής κατανόησης των βασικών αρχών των πιο σημαντικών εκπαιδευτικών διαδικασιών, όπως η μηχανική του αλγόριθμου backpropagation, ο συντονισμός παραμέτρων και τα ζητήματα σύγκλισης / υπερπροσαρμογής. Το μάθημα εξελίσσεται σε πέντε διαλέξεις και η πρόοδος των φοιτητών αξιολογείται μέσω ενός παραδοτέου ομαδικού έργου.
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά με υπερσύγχρονες αρχιτεκτονικές Βαθέων Νευρωνικών Δικτύων
- Να επιλέγουν και να εφαρμόζουν με ευχέρεια τη διαδικασία εκπαίδευσης νευρωνικών δικτύων με αλγόριθμο backpropagation
- Να επιλέγουν και να εφαρμόζουν τεχνικές συντονισμού παραμέτρων
Να έχουν ευρείες γνώσεις σε ζητήματα ζητήματα σύγκλισης / υπερπροσαρμογής
- Να έχουν αναπτύξει δεξιότητες συνεργατικότητας και ανάπτυξης ομαδικού πνεύματος.
- Να εφαρμόζουν με ευχέρεια και πρωτοτυπία τεχνικές και αλγορίθμους βαθιάς μηχανικής μάθησης στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των τεχνικών και αλγορίθμων βαθιάς μηχανικής μάθησης με ποικίλους γνωστικούς τομείς.,
- Να εφαρμόζουν τις τεχνικές και αλγορίθμους βαθιάς μηχανικής μάθησης για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- Να αναπτύσσουν με αυτονομία τις σχετικές με την βαθιά μηχανική μάθηση γνώσεις και ικανότητές τους,
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις τεχνικές και στους αλγορίθμους βαθιάς μηχανικής μάθησης.
543, Central Building
+30 210 4142314
Fuzzy Software Technologies
Το μάθημα περιλαμβάνει τα εξής:
- Εισαγωγή στην ασαφή λογική
- Οι βασικές αρχές της ασαφούς λογικής
- Ασαφή σύνολα και πράξεις επί αυτών
- Συναρτήσεις συμμετοχής
- Ασαφείς μεταβλητές
- Ασαφείς κανόνες
- Ασαφή Συστήματα Συμπερασμάτων (Fuzzy Inference Systems)
- Ασαφή γνωστικοί χάρτες (Fuzzy Cognitive Maps)
- Συνδυασμός Ασαφούς Λογικής με ‘άλλες τεχνικές
- Παραδείγματα και περιπτώσεις χρήσης ασαφών συστημάτων λογισμικού σε ποικίλους τομείς
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά με την ασαφή λογική και την χρήση της σε συστήματα λογισμικού.
- Να διαθέτουν ευρεία γνώση σχετικά με τα ασαφή σύνολα, τις ασαφείς μεταβλητές, τις συναρτήσεις συμμετοχής, τους ασαφείς κανόνες.
- Να αναγνωρίζουν τα μέρη ενός ασαφούς συστήματος συμπερασμάτων.
- Να διακρίνουν τις διαφορετικές κατηγορίες των ασαφών συστημάτων συμπερασμάτων.
- Να αναπτύσσουν με ευχέρεια και κριτική σκέψη ένα ασαφές σύστημα συμπερασμάτων.
- Να αναγνωρίζουν και να σχεδιάζουν έναν ασαφή γνωστικό χάρτη.
- Να συνδυάζουν τεχνικές βασισμένες στην ασαφή λογική με άλλες τεχνικές τεχνητής νοημοσύνης (όπως νευρωνικά δίκτυα, μηχανική μάθηση, μεθοδολογίες λήψης αποφάσεων).
- Να επιλέγουν και να εφαρμόζουν με ευχέρεια τεχνικές βασισμένες στην ασαφή λογική για την ανάπτυξη λογισμικού που αφορά διάφορους τομείς του επαγγελματικού και επιχειρησιακού τομέα.
- Να αναγνωρίζουν τις συνθήκες ασάφειας και να αναπτύσσουν καινοτόμες λύσεις βασιζόμενοι στην ασαφή λογική.
- Να διαθέτουν αυξημένη κριτική αντίληψη της εξελικτικής δυναμικής και των θεμάτων αιχμής της ασαφούς λογικής.
- Να εφαρμόζουν με ευχέρεια τις θεωρίες, αρχές και τεχνικές της ασαφούς λογικής στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης της ασαφούς λογικής με ποικίλους γνωστικούς τομείς.
- Να εφαρμόζουν τις δυνατότητες ενός ασαφούς συστήματος συμπερασμάτων για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο.
- Να αναπτύσσουν με αυτονομία τις σχετικές με την ασαφή λογική γνώσεις και ικανότητές τους,
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στην ασαφή λογική.
Professor
507, Central Building
+30.210.4142269
207, Central Building
+302104142131
Blockchain Technologies and Smart Contract Development
Αυτό το μάθημα εστιάζει στην εισαγωγή των φοιτητών στην τεχνολογία blockchain. Αφού παρουσιάσουμε τις βασικές έννοιες πίσω από το blockchain, παρουσιάζουμε τους διάφορους αλγόριθμους συναίνεσης και τη λειτουργικότητα που παρέχεται. Μετά τη διερεύνηση της ιχνηλασιμότητας σε δημόσιες αλυσίδες μπλοκ, στραφούμε στην ανάπτυξη έξυπνων συμβολαίων για να αναπτύξουμε πρακτικές εφαρμογές σε μπλοκ αλυσίδες πραγματικού κόσμου.
Πιο συγκεκριμένα αυτό το μάθημα καλύπτει τα ακόλουθα θέματα:
- Εισαγωγή στο blockchain
- Αλγόριθμοι συναίνεσης (Απόδειξη εργασίας, Απόδειξη στοιχήματος, ανοχή βυζαντινών σφαλμάτων)
- Ιχνηλασιμότητα σε blockchain (ιχνηλασία συναλλαγών στο blockchain)
- Ανάπτυξη έξυπνων συμβολαίων στο Ethereum/Hyperledger (θα εξαρτηθεί από το έτος)
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά με τις βασικές έννοιες πίσω από τη τεχνολογία του blockchain
- Να διαθέτουν ευρεία γνώση σχετικά με τους διάφορους αλγόριθμους συναίνεσης και τη λειτουργικότητα του περιβάλλοντος
- Να επιλέγουν και να χειρίζονται με ευχέρεια πρακτικές εφαρμογές σε μπλοκ αλυσίδες πραγματικού κόσμου.
- Να επιλέγουν και να εφαρμόζουν τεχνολογίες σχετικές με τη διερεύνηση της ιχνηλασιμότητας σε δημόσιες αλυσίδες μπλοκ
- Να σχεδιάζουν και να αναπτύσσουν διατάξεις blockchain σε περιβάλλον Etherum ή Hyperledger
- Να εφαρμόζουν με ευχέρεια και πρωτοτυπία τις σχετικές με την τεχνολογία blockchain γνώσεις στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των σχετικών με την τεχνολογία blockchain γνώσεων με ποικίλους γνωστικούς τομείς.,
- Να εφαρμόζουν τις σχετικές με την τεχνολογία blockchain γνώσεις για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- Να αναπτύσσουν με αυτονομία τις σχετικές με την τεχνολογία blockchain γνώσεις και ικανότητές τους,
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις σχετικές με την τεχνολογία blockchain γνώσεις.
540, Central Building
Artificial Intelligence and Microservices in Web
To μάθημα ασχολείται με τη θεωρητική μελέτη και την πρακτική εξάσκηση σε θέματα προγραμματισμού με μικροϋπηρεσίες και containers, στη σχεδίαση και προγραμματισμό σύγχρονου λογισμικού με βάση containers, για την αποδοτική λειτουργία εφαρμογών και υπηρεσιών καθώς και λειτουργικών μερών (modules) ΑΙ τεχνικώνσε πηγές πληροφοριών.
Στόχος είναι να γίνει κατανοητός ο τρόπος σχεδίασης, ανάπτυξης, λειτουργίας και συντήρησης λογισμικού με μικροϋπηρεσίες με πρακτική εξάσκηση σε εργαστηριακό περιβάλλον.
Με την επιτυχή ολοκλήρωση αυτού του μαθήματος οι φοιτητές θα είναι σε θέση:
- Να αναγνωρίζουν τις μικροϋπηρεσίες
- Να αναγνωρίζουν και να κατανοούν τη λειτουργία των dockers
- Nα σχεδιάζουν τη μετάβαση σε αρχιτεκτονική με χρήση containers από μονολιθικές εφαρμογές
- Να λειτουργούν ΑΙ λειτουργικά μέρη ως μικροϋπηρεσίες
543, Central Building
Phone Number /Fax:+30 210 4142312
UX Design in Smart Applications
- Μοντέλα ανάπτυξης λογισμικού,
- Δομημένη Ανάλυση και Αντικειμενοστρεφής Ανάλυση,
- Αρχιτεκτονικός σχεδιασμός, λεπτομερής σχεδιασμός, Δομημένος και Αντικειμενοστρεφής σχεδιασμός.
- Ανάπτυξη εφαρμογών οι οποίες μπορούν να εκτελεστούν από σύγχρονες κινητές συσκευές (smartphones) με ενσωματωμένο λειτουργικό σύστημα. Οι εφαρμογές αυτές δύναται να λειτουργήσουν τόσο στα σύγχρονα «έξυπνα» τηλέφωνα “smartphones”, όσο και σε άλλες «κινητές» συσκευές, οι οποίες έχουν κάνει την εμφάνισή τους τα τελευταία χρόνια και χρησιμοποιούν λειτουργικό σύστημα (Tablets, Wearables).
The course summarizes the most popular mobile operating systems, as well as the tools for developing applications on them, however the material mainly includes the use of object-oriented Java programming language for developing applications on mobile devices under the Android operating system. Indicatively, the development of mobile apps is implemented using the Android Studio software development environment. In addition, the course covers the material related to the sensors of mobile devices, geolocation services and a number of other advanced programming techniques (asynchronous programming, android services, broadcast receivers, android intents).
Επιπλέον το μάθημα καλύπτει και την ύλη που αφορά στους αισθητήρες των κινητών συσκευών, στις υπηρεσίες γεοεντοπισμού και σε πλήθος άλλων προχωρημένων τεχνικών προγραμματισμού (asynchronous programming, android services, broadcast receivers, android intents).
Με την επιτυχή ολοκλήρωση αυτού του μαθήματος ο φοιτητής θα είναι σε θέση:
- Να αναλύει και να συγκρίνει μοντέλα ανάπτυξης λογισμικού
- Να επιλέγει με ευχέρεια μοντέλα ανάπτυξης λογισμικού ανάλογα με τις ανάγκες και να τα χρησιμοποιεί
- Να διαθέτει εξειδικευμένη γνώση και να αξιοποιεί το εργαλείο Android Studio για την ανάπτυξη κινητών εφαρμογών
- Να αναπτύσσει πρωτότυπες native mobile apps κάνοντας χρήση του Android SDK
- Να εκμεταλλεύεται τοπικές (SQLite) βάσεις δεδομένων
- Να γνωρίζει τις πλέον σύγχρονες υπηρεσίες Cloud και Mobile backend as a service που παρέχει η Firebase
- Να τις χρησιμοποιεί πρακτικά και με ευχέρεια
- Να σχεδιάζει και να αναπτύσσει πρωτότυπες εφαρμογές για κινητές και φορητές συσκευές υλοποιώντας τις πλέον σύγχρονες τεχνικές προγραμματισμού
- Να διασφαλίζει την αποτελεσματικότητα των λογισμικών μέσω των προαναφερθεισών εφαρμογών
- Να εφαρμόζουν με ευχέρεια και πρωτοτυπία τις σχετικές με την ανάπτυξη εφαρμογών για κινητές συσκευές γνώσεις στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των σχετικών με την ανάπτυξη λογισμικού για κινητές συσκευές γνώσεων με ποικίλους γνωστικούς τομείς.,
- Να εφαρμόζουν τις σχετικές με την ανάπτυξη λογισμικού για κινητές συσκευές γνώσεις για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- Να αναπτύσσουν με αυτονομία τις σχετικές με την ανάπτυξη λογισμικού για κινητές συσκευές γνώσεις και ικανότητές τους,
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις σχετικές με την ανάπτυξη λογισμικού για κινητές συσκευές γνώσεις.
Professor
507, Central Building
+30.210.4142269
207, Central Building
+302104142131
3rd semester
MSc Thesis











