studies
M.Sc. in "Advanced Informatics and Computing Systems - Software Development and Αrtificial Intelligence"
Advanced Software Development Technologies
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, κ.α.).
- Οργάνωση ανάπτυξης λογισμικού με τον ευέλικτο προγραμματισμό
- Συμπεριφορική σχεδίαση λογισμικού
- Ανάπτυξη και λογισμικό υπηρεσίας διαχείρισης εκδόσεων
- Διαχείριση ομάδων ανάπτυξης λογισμικού
- Διαχείριση διαδικασιών για την ομαλή μετάβαση από την ανάπτυξη στην εγκατάσταση
- Σχεδιάση με χρήση REST αρχιτεκτονικής
- Αποδοτικότητα με βάση το HTTP v0
- Προκλήσεις των Object Relational πλαισίων σχεδίασης και ανάπτυξης εφαρμογών ιστού
- Καλές πρακτικές στη σχεδίαση front-end λογισμικού
- Στοιχεία για την αποδοτική εγκατάσταση εφαρμογών λογισμικού παγκόσμιου ιστού
Με την επιτυχή ολοκλήρωση αυτού του μαθήματος οι φοιτητές θα είναι σε θέση:
- Να εφαρμόζουν αρχιτεκτονική 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
Special Topics in Software Engineering
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
Με την επιτυχή ολοκλήρωση του μαθήματος, ο φοιτητής/τρια θα είναι σε θέση να:
- Να γνωρίζει το θεωρητικό υπόβαθρο των υπολογιστικών νεφών
- Nα είναι εξοικειωμένος με θέματα διαχείρισης εργαλείων υπολογιστικών νεφών
- Να γνωρίζει να σχεδιάζει και να αναπτύσσει προγράμματα και εφαρμογές σε περιβάλλοντα υπολογιστικών νεφών.
- Να μπορεί να κατηγοριοποιήσουν τις υπηρεσίες και τις υποδομές του υπολογιστικού νέφους
- Να διαφοροποιεί τις δικτυακές υποδομές σε ένα κέντρο δεδομένων
- Να σχεδιάζει και να αναπτύσσει προηγμένες υπηρεσίες βασισμένες σε υποδομές δημόσιων και ιδιωτικών υπολογιστικών νεφών.
- Να σχεδιάζει και να αναπτύσσει προηγμένες υπηρεσίες βασισμένες σε υποδομές δημόσιων και ιδιωτικών υπολογιστικών νεφών.
- Να γνωρίζει τεχνικές μέτρησης απόδοσης σε κοινόχρηστα κατανεμημένα συστήματα και υπολογισιτκά νέφη.
- Να γνωρίζει τεχνικές πρόβλεψης φόρτου συστήματος υπολογιστικού νέφους.
- Να εφαρμόζουν με ευχέρεια και πρωτοτυπία γνώσεις και προγραμματιστικά εργαλεία σχετικά με την υπολογιστική νέφους στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των σχετικών με την υπολογιστική νέφους γνώσεων με ποικίλους γνωστικούς τομείς.
- Να εφαρμόζουν γνώσεις και προγραμματιστικά εργαλεία σχετικά με την υπολογιστική νέφους για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- Να αναπτύσσουν με αυτονομία τις σχετικές με την υπολογιστική νέφους γνώσεις και ικανότητές τους,
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις γνώσεις και στα προγραμματιστικά εργαλεία σχετικά με την υπολογιστική νέφους.
302, Central Building
+30 210 4142137
fax +30 210 4142472
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














