studies

Advanced Informatics and Computing Systems - Software Development and Αrtificial Intelligence

Artificial Intelligence and Smart Software Applications

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

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

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

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

Οι μικρουπηρεσίες είναι ένα πρότυπο αρχιτεκτονικής λογισμικού όπου οι εφαρμογές αναπτύσσονται ως συλλογή από μικρές, ανεξάρτητες υπηρεσίες που επικοινωνούν μεταξύ τους μέσω των διεπαφών (API). Όταν οι μιρκουπηρεσίες συνδυάζονται με την τεχνητή νοημοσύνη, μπορούν να χρησιμοποιηθούν για τη δημιουργία έξυπνων εφαρμογών που είναι υψηλά κλιμακούμενες, ευέλικτες και αποδοτικές. Η εμπειρία χρήσης (UX) είναι η διαδικασία σχεδιασμού ψηφιακών προϊόντων και υπηρεσιών που είναι εύχρηστα, αποδοτικά και ευχάριστα στη χρήση.

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, κ.α.).

  1. Οργάνωση ανάπτυξης λογισμικού με τον ευέλικτο προγραμματισμό
  2. Συμπεριφορική σχεδίαση λογισμικού
  3. Ανάπτυξη και λογισμικό υπηρεσίας διαχείρισης εκδόσεων
  4. Διαχείριση ομάδων ανάπτυξης λογισμικού
  5. Διαχείριση διαδικασιών για την ομαλή μετάβαση από την ανάπτυξη στην εγκατάσταση
  6. Σχεδιάση με χρήση REST αρχιτεκτονικής
  7. Αποδοτικότητα με βάση το HTTP v0
  8. Προκλήσεις των Object Relational πλαισίων σχεδίασης και ανάπτυξης εφαρμογών ιστού
  9. Καλές πρακτικές στη σχεδίαση front-end λογισμικού
  10. Στοιχεία για την αποδοτική εγκατάσταση εφαρμογών λογισμικού παγκόσμιου ιστού

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

  • Να εφαρμόζουν αρχιτεκτονική 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

Στο μάθημα Ειδικά Θέματα Τεχνολογίας Λογισμικού θα διδαχθούν μεθοδολογίες ανάπτυξης λογισμικού με έμφαση στην ανάλυση και το σχεδιασμό. Αρχικά θα γίνει η παρουσίαση των κυριότερων μοντέλων κύκλου ζωής λογισμικού συμπεριλαμβανομένου του Μοντέλου Καταρράκτη και της αντικειμενοστρεφούς διαδικασίας Rational Unified Process (RUP). Θα αναλυθούν τα χαρακτηριστικά ποιότητας λογισμικού και θα γίνει παρουσίαση αλγορίθμων προϋπολογισμού κόστους λογισμικού. Θα δοθεί έμφαση στη διδασκαλία της UML, η οποία είναι μια γλώσσα μοντελοποίησης που χρησιμοποιείται για αντικειμενοστρεφή ανάλυση και σχεδιασμό λογισμικού και ήδη έχει αποτελέσει ένα διεθνές πρότυπο ανάπτυξης λογισμικού που χρησιμοποιείται ευρύτατα από εταιρείες, οργανισμούς και από μηχανικούς λογισμικού για τους σκοπούς της ανάπτυξης λογισμικού. Θα γίνει αναφορά σε Εργαλεία Υποβοήθησης Ανάπτυξης Λογισμικού (CASE Tools). Επίσης θα παρουσιασθούν μεθοδολογίες λειτουργικής προσέγγισης. Το μάθημα περιλαμβάνει εργαστήρια για τη χρήση του εργαλείου Rational Rose.

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

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