studies

M.Sc. in "Advanced Informatics and Computing Systems - Software Development and Αrtificial Intelligence"

Advanced Software Development Technologies

Η κατεύθυνση «Προηγμένες Τεχνολογίες Ανάπτυξης Λογισμικού» στοχεύει στην ανάπτυξη λογισμικού το οποίο εξυπηρετεί σύγχρονες ανάγκες και απαιτήσεις του προγραμματισμού. Περιλαμβάνει τα πεδία της ανάπτυξης λογισμικού στοχευμένου στον παγκόσμιο ιστό, λογισμικό ανάπτυξης εφαρμογών για τις νέες “έξυπνες” κινητές συσκευές (smartdevices, smartphones), το ταχύτατα αναπτυσσόμενο πεδίο της Υπολογιστικής Νέφους (Cloud Computing), καθώς και τον ασφαλή προγραμματισμό. Τα παραπάνω πεδία αποτελούν πλέον σημαντικές νέες κατευθύνσεις στην επιστήμη της Πληροφορικής, αναπτύσσονται και εξελίσσονται με συνεχείς αυξανόμενους ρυθμούς, εξυπηρετώντας ολοένα και μεγαλύτερα ποσοστά του παγκόσμιου πληθυσμού. Ο μεταπτυχιακός φοιτητής, ο οποίος θα έχει παρακολουθήσει με επιτυχία τα μαθήματα της κατεύθυνσης «Προηγμένες Τεχνολογίες Ανάπτυξης Λογισμικού», θα είναι γνώστης θεμάτων υψηλής τεχνολογίας, καθώς θα αποκτήσει το απαραίτητο θεωρητικό και προγραμματιστικό υπόβαθρο για να ανταπεξέλθει στις αυξημένες απαιτήσεις των σύγχρονων τεχνολογικών εξελίξεων. Θα διαθέτει τα εφόδια για να αναπτύξει λογισμικό στοχευμένο στις τρέχουσες αλλά και στις μελλοντικές εξελίξεις της Πληροφορικής.

Obligatory Courses

1st semester

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

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

Προηγμένα Θέματα Αντικειμενοστραφούς Προγραμματισμού (Java)

Στόχος του μαθήματος είναι ένας φοιτητής που κατέχει το βασικό επίπεδο (basic-middle level) του αντικειμενοστρεφούς προγραμματισμού, να φτάσει έως και το προχωρημένο επίπεδο στο εν λόγω πεδίο. Η κατ’ εξοχήν επικρατέστερη γλώσσα του OO Programming, η Java χρησιμοποιείται ως βάση για το μάθημα, ωστόσο οι γνώσεις που θα αποκομίσει ο φοιτητής μπορούν να εφαρμοστούν σε οποιοδήποτε πεδίο και γλώσσα προγραμματισμού.

 

Στο μάθημα περιλαμβάνονται μεταξύ άλλων:

  • Java 19
  • Design Patterns
  • Threading-Synchronization
  • Stream API – Functional Style Programming
  • Build-in Functional Interfaces
  • Known Frameworks (Spring Boot, Java Microharness Framework)
  • Reflection
  • Advanced OO: Enums, Records, Sealed Classes

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

  • Να κατέχει εξειδικευμένες γνώσεις σχετικά με τον αντικειμενοστρεφή προγραμματισμό
  • Να διαθέτουν ευρεία γνώση σχετικά με τη γλώσσα Java
  • Να επιλέγει και να εφαρμόζει με ευχέρεια τα διάφορα πρότυπα σχεδίασης
  • Να επιλέγει και να εφαρμόζει τεχνολογίες λειτουργικών διεπαφών
  • Να σχεδιάζει και να αναπτύσσει προηγμένες αντικειμενοστραφείς λειτουργίες όπως Enums, Records, Sealed Classes
  • Έχει ευρεία γνώση και να κατανοεί βασικές ιδιότητες στα Προηγμένα θέματα Αντικειμενοστρεφούς Προγραμματισμού (Java).
  • Εστιάζει με ευχέρεια σε εφαρμογές εντός πραγματικού εργασιακού περιβάλλοντος με τη χρήση των σχετικών λογισμικών
  • Εφαρμόζει με ευχέρεια και πρωτοτυπία τις έννοιες, μεθοδολογίες, μοντέλα των προηγμένων θέματα αντικειμενοστρεφούς προγραμματισμού (Java) στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
  • Επιδεικνύει κριτική κατανόηση στον τρόπο διασύνδεσης των εννοιών, μεθοδολογιών και μοντέλων των προηγμένων θέματα αντικειμενοστρεφούς προγραμματισμού σε Java, με ποικίλους γνωστικούς τομείς.
  • Εφαρμόζει τις σχετικές με τον αντικειμενοστρεφή γνώσεις για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο.
  • Αναπτύσσει με αυτονομία τις σχετικές με τον αντικειμενοστρεφη προγραμματισμό και ικανότητές τους,
  • Επιλύει προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις έννοιες, μεθοδολογίες, και μοντέλα του αντικειμενοστρεφούς προγραμματισμού.

540, Central Building

Algorithmic Techniques and Applications

Considering the wide scope of the subject, this M.SC. Course focus mainly on the parallel algorithms and computation:
- Basic algorithmic techniques for shared memory and distributed memory systems (Pointer jumping, Divide and Conquer, Pipelining, Load Balancing)
- Parallel algorithms for searching, sorting, graph problems (shortest paths, connected components, minimum spanning tree), arithmetic computations (matrix multiplication, solutions of a system of linear equations, solutions of differential equations), image processing (e.g. image segmentation), computational geometry (convex hull, visibility problems), problems from mechanics (e.g. n-body simulation)
- Parallel Programming: OpenMP, Pthreads, Java threads, CUDA, OpenCL, MPI

On successful completion of this unit students will be able to:
1. Aptly apply the algorithmic techniques for solving computational problems in various application fields.
2. Identfy the inherent difficulty of an algorithmic problem.
3. Evaluate the quality of an algorithmic solution both analytically and experimentally.
4. Analytically determine the time and the space complexity of algorithms.
5. Efficiently implement algorithms taking into account the features of the implementation platform.

301, Lam. 126
+302104142124

542, Central Building

+30 210 4142262

Special Topics in Software Engineering

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

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

Professor
507, Central Building
+30.210.4142269

Elective Course

2nd semester

Software Development for Mobile Devices

This course focuses on the development of software applications that can be executed in a large variety of mobile devices which incorporate and Operating System. Developed applications can operate either in smartphones or in other mobile platforms, such as Tablets and Wearables. The course starts with a brief overview of all existing mobile platforms, programming languages and tools and then focuses mainly in using Object Oriented Programming through Java and the Android Operating System. Java is considered as the most popular programming language in use (2018 statistics), while Android by far owns the largest market-share (2018 statistics).

Postgraduate students who have successfully completed the course will be able to:
● Use the Android Studio IDE in order to design and develop mobile apps
● Use the Android SDK and its basic classes
● Develop local SQLite databases
● Access cloud and mobile backend services through Firebase
● Handle the new Android Runtime permission mechanisms
● Access and handle data from device sensors
● Access and handle data from Location Services
● Use a variety of modern android programming techniques such as:
○ Android asynchronous calls
○ Android Services
○ Broadcast Receivers
○ Android Intents

540, Central Building

Cloud Computing

In recent years, a new generation of services has emerged based on the idea of the "computing cloud", with the aim of accessing information and data from anywhere and at any time, by limiting or eliminating the need for hardware. The term "cloud computing" refers to the use of computing resources for both hardware and software, using services that are transmitted over the Internet. Cloud computing services are one of the world's largest competing platforms today among computer and software giants such as Google, Amazon and Microsoft, which are vying to gain an advantage in due to a rapidly growing industry. The subject of the course is the acquaintance with the field of computational clouds, as well as the practical design of the infrastructures for their use and operation. The technologies of cloud computing theory are studied, Service Oriented architectures are presented and the necessary equipment for the integration of this technology in the programming tools of modern software technology is given.

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

 

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

302, Central Building
+30 210 4142137
fax +30 210 4142472

Μητρόπουλος Σαράντης

Michalas Angelos

Καλλέργης Δημήτριος

Software Personalization Technologies

  • Οι Τεχνολογίες Εξατομίκευσης Λογισμικού βασίζονται στην ενδελεχή μοντελοποίηση των χρηστών, εστιάζοντας στη δυναμική απόκτηση μοντέλου από το σύστημα λογισμικού και την αυτόματη εξατομίκευσή του στις ιδιαίτερες ανάγκες κάθε μεμονωμένου χρήστη.
  • Στόχος είναι η αυτόματη προσαρμογή, η γνωστική αποφόρτιση των χρηστών και ο εξατομικευμένος προσανατολισμός πλοήγησής τους στις εφαρμογές λογισμικού και στον κυβερνοχώρο.
  • Αναλύονται μεθοδολογίες για τη δημιουργία εξατομικευμένων λογισμικών συστημάτων, ενσωματώνοντας τις προτιμήσεις, το επίπεδο γνώσης, τα συναισθήματα, στόχοι και άλλες ανάγκες των χρηστών.
  • Εξετάζονται ποικίλα πεδία εφαρμογής εξατομίκευσης λογισμικού, όπως: Κοινωνικά δίκτυα Εκπαιδευτικά Συστήματα, e-commerce, e-learning, e-government, e-tourism, οn-line συστήματα πληροφοριών, Ανάκτηση Πληροφοριών, Εξόρυξη Δεδομένων, Προσαρμοστικά Συστήματα Διεπαφής με τους Χρήστες, Ευφυή Συστήματα Βοήθειας, Προσαρμοστικό Λογισμικό/Προσαρμοστικά Υπερμέσα, Συστήματα Παραγωγής Προτάσεων (Recommender Systems), εξατομικευμένη πλοήγηση.
  • Συμβολή του μαθήματος στην κάλυψη των τεχνολογικών απαιτήσεων.

 

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

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

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

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

  • Συντάσσει με ευχέρεια δομημένα έγγραφα ανάλυσης απαιτήσεων εξατομίκευσης λογισμικού
  • Σχεδιάζει αρχιτεκτονικά πρωτότυπα σχέδια εξατομίκευσης λογισμικού βασισμένα σε γλώσσες μοντελοποίησης και διαγράμματα
  • Παράγει με ευχέρεια κώδικα βασισμένο στο στάδιο του σχεδιασμού, ο οποίος θα ανταποκρίνεται στα αντίστοιχα διαγράμματα εξατομίκευσης λογισμικού με έμφαση στα use case.
  • Χρησιμοποιεί με ευχέρεια το μοντέλο κύκλου ζωής λογισμικού Rational Unified Process για την ανάπτυξη συστήματος εξατομίκευσης λογισμικού
  • Εφαρμόζει με ευχέρεια και πρωτοτυπία τις σχετικές με τις γνώσεις για τις τεχνολογίες εξατομίκευσης λογισμικού στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
  • Επιδεικνύει κριτική κατανόηση στον τρόπο διασύνδεσης των σχετικών με τη τεχνολογία λογισμικού γνώσεων με ποικίλους γνωστικούς τομείς.
  • Εφαρμόζει τις σχετικές με την τεχνολογία λογισμικού γνώσεις για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο.
  • Αναπτύσσει με αυτονομία τις σχετικές με τις γνώσεις για τις τεχνολογίες εξατομίκευσης λογισμικού και ικανότητές τους.
  • Επιλύει προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι τις σχετικές με τις γνώσεις για τις τεχνολογίες εξατομίκευσης λογισμικού.

Professor
507, Central Building
+30.210.4142269

543, Central Building
Phone Number /Fax:+30 210 4142312

Secure Programming

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

 

  • Εισαγωγικές έννοιες ασφάλειας συστημάτων
  • Συστήματα Διαχείρισης Ασφάλειας
  • Κρυπτογραφικά συστήματα
  • Υποδομή Δημόσιας Κλείδας
  • Έλεγχος προσπέλασης – Ιδιωτικότητα
  • Ασφάλεια στις Τεχνολογίες
  • Ασφαλείς η/κ-υπηρεσίες
  • Εισαγωγή στην ασφάλεια δικτύων

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

 

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

540, Central Building

Advanced Topics in Web Services Software

To μάθημα ασχολείται με τη θεωρητική μελέτη και την πρακτική εξάσκηση σε θέματα Προκλήσεις στην ανάπτυξη σχεδιαστικών προτύπων ανάπτυξης λογισμικού για το σύννεφο (cloud design patterns). Αυτά τα πρότυπα σχεδιασμού είναι χρήσιμα για τη δημιουργία αξιόπιστων, επεκτάσιμων, ασφαλών εφαρμογών στο cloud.

 

Κάθε πρότυπο περιγράφει την πρόκληση που αντιμετωπίζει, σκέψεις για την εφαρμογή του και ένα παράδειγμα υλοποίησης σε .NET Azure. Τα περισσότερα πρότυπα περιλαμβάνουν δείγματα κώδικα ή αποσπάσματα που δείχνουν πώς να εφαρμόσετε το μοτίβο. Ωστόσο, τα περισσότερα μοτίβα σχετίζονται με οποιοδήποτε κατανεμημένο σύστημα, είτε φιλοξενείται σε Azure είτε σε άλλες πλατφόρμες cloud π.χ. AWS.

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

  • Πρεσβευτής
  • Επίπεδο κατά της διαφθοράς
  • Ασύγχρονη Αίτηση-Απάντηση
  • Διάφραγμα
  • Διακόπτης Κυκλώματος
  • Έλεγχος αξίωσης
  • Αντισταθμιστική συναλλαγή
  • Ανταγωνιστικοί καταναλωτές
  • Υπολογισμός Ενοποίησης Πόρων
  • CQRS
  • Διαμόρφωση φόρτου εργασίας άκρων
  • Πηγή εκδήλωσης
  • Κατάστημα εξωτερικής διαμόρφωσης
  • Ομοσπονδιακή Ταυτότητα
  • Θύρακας

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

  • Να αναγνωρίζουν τα πρότυπα σχεδίασης λογισμικού στο σύννεφο (software design patterns for the cloud)
  • Να αναγνωρίζουν και να κατανοούν τα χαρακτηριστικά ποιότητας του λογισμικού που υλοποιείται σε πολλαπλούς διακομιστές και των πληροφοριών που αυτά χρειάζεται να αντλούν
  • Nα σχεδιάζουν λογισμικό που εφαρμόζει σχεδιαστικά πρότυπα σε υποδομή σύννεφου και κατανεμημένες εγκαταστάσεις
  • Να λειτουργούν απευθείας σε διαγραμμικές υπηρεσίες (Online) καλές πρακτικές επιβεβαίωσης της καλής λειτουργίας λογισμικού

Professor
507, Central Building
+30.210.4142269

543, Central Building
Phone Number /Fax:+30 210 4142312

Elective Course

3rd semester

MSc Thesis

Material and links