σπουδες

ΠΜΣ Προηγμένα Συστήματα Πληροφορικής – Ανάπτυξης Λογιστμικού και Τεχνητής Νοημοσύνης

Προηγμένες Τεχνολογίες Ανάπτυξης Λογισμικού

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

Μαθήματα κατεύθυνσης

1ο ΕΞΑΜΗΝΟ

Αναγνώριση Προτύπων και Μηχανική Μάθηση

Τσιχριντζής Γεώργιος

302, κεντρικό κτίριο
+302104142322

543/ΚΕΚΤ
+30 210 4142314

Ανάπτυξη Λογισμικού για τον Παγκόσμιο Ιστό

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

Αλγοριθμικές Τεχνικές και Εφαρμογές

Λαμβάνοντας υπόψη το μέγαλο εύρος του αντικειμένου, το μάθημα εστιάζει κυρίως στους παράλληλους αλγορίθμους και παράλληλο υπολογισμό:
– Βασικές αλγοριθμικές τεχνικές για συστήματα διαμοιραζόμενης και κατανεμημένης μνήμης (Πήδηση δεικτών, Διαίρει και Βασίλευε, Σωλήνωση, Εξισορρόπηση φορτίου)
– Παράλληλοι αλγόριθμοι για αναζήτηση, ταξινόμηση, προβλήματα γραφημάτων ( συντομότερες διαδρομές, συνεκτικές συνιστώσες, ελάχιστο γεννητικό δέντρο), αριθμητικοί υπολογισμοί (πολλαπλασιασμός πινάκων, επίλυση συστήματος γραμμικών εξισώσεων, επίλυση διαφορετικών εξισώσεων), επεξεργασία εικόνας (π.χ. τμηματοποίηση εικόνας), υπολογιστική γεωμετρία (κυρτό περίβλημα, προβλήματα ορατότητας), προβλήματα μηχανικής (π.χ. προσομοίωση κίνησης ουρανίων σωμάτων (n-body simulation))
-Παράλληλος Προγραμματισμός: OpenMP, Pthreads, Java threads, CUDA, OpenCL, MPI

Με την επιτυχή ολοκλήρωση αυτής της ενότητας οι φοιτητές θα είναι σε θέση να:
1. Να εφαρμόζουν εύστοχα τις κατάλληλες αλγοριθμικές τεχνικές για την επίλυση υπολογιστικών προβλημάτων που προκύπτουν στα διάφορα πεδία εφαρμογών.
2. Να κατανοούν τη εγγενή δυσκολία ενός αλγοριθμικού προβλήματος.
3. Να εκτιμούν τόσο αναλυτικά όσο και πειραματικά την ποιότητα λύσης ενός αλγορίθμου.
4. Να προσδιορίζουν αναλυτικά την πολυπλοτητα χώρου και χρόνου των αλγοριθμικών τεχνικών.
5. Να υλοποιούν αποδοτικά αλγορίθμους λαμβάνοντας υπόψη την συγκεκριμένη πλατφόρμα υλοποίησης.

Ειδικά Θέματα Τεχνολογίας Λογισμικού

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

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

Βίρβου Μαρία

Καθηγήτρια
507/ΚΕΚΤ
+30.210.4142269

2ο ΕΞΑΜΗΝΟ

Ανάπτυξη Λογισμικού για Κινητές Συσκευές

Αντικείμενο του μαθήματος είναι η ανάπτυξη εφαρμογών οι οποίες μπορούν να εκτελεστούν από σύγχρονες κινητές συσκευές (smartphones) με ενσωματωμένο λειτουργικό σύστημα. Οι εφαρμογές αυτές δύναται να λειτουργήσουν τόσο στα σύγχρονα «έξυπνα» τηλέφωνα “smartphones”, όσο και σε άλλες «κινητές» συσκευές, οι οποίες έχουν κάνει την εμφάνισή τους τα τελευταία χρόνια και χρησιμοποιούν λειτουργικό σύστημα (Tablets, Wearables). Στο μάθημα αναλύονται περιληπτικά τα δημοφιλέστερα λειτουργικά συστήματα κινητών συσκευών, καθώς και τα εργαλεία ανάπτυξης εφαρμογών σε αυτά, ωστόσο η ύλη περιλαμβάνει κυρίως τη χρήση της αντικειμενοστρεφούς γλώσσας προγραμματισμού Java, για την ανάπτυξη εφαρμογών σε κινητές συσκευές υπό το λειτουργικό σύστημα Android. Ενδεικτικά, η ανάπτυξη των mobile apps θα υλοποιηθεί με τη χρήση του περιβάλλοντος ανάπτυξης λογισμικού Android Studio. Η Java είναι η πρώτη σε χρήση γλώσσα προγραμματισμού παγκοσμίως (δεδομένα 2017), ενώ το λειτουργικό σύστημα Android κατέχει το μεγαλύτερο μερίδιο της παγκόσμιας αγοράς των smartphones (δεδομένα 2018).

Ο μεταπτυχιακός φοιτητής, ο οποίος θα έχει ολοκληρώσει με επιτυχία το μάθημα, θα είναι σε θέση:
● Nα χρησιμοποιεί το εργαλείο Android Studio για την ανάπτυξη κινητών εφαρμογών
● Να αναπτύσσει native mobile apps κάνοντας χρήση του Android SDK
● Να χρησιμοποιεί τοπικές (SQLite) βάσεις δεδομένων
● Να χρησιμοποιεί τις πλέον σύγχρονες υπηρεσίες Cloud και Mobile backend as a service που παρέχει η Firebase
● Επιπλέον το μάθημα καλύπτει και την ύλη που αφορά:
○ στους αισθητήρες των κινητών συσκευών, στις υπηρεσίες γεοεντοπισμού και σε πλήθος άλλων προχωρημένων τεχνικών προγραμματισμού (asynchronous programming, android services, broadcast receivers, android intents).

540, κεντρικό κτίριο

Υπολογιστική Νέφους

Τα τελευταία χρόνια έκανε την εμφάνισή της μια νέα γενιά υπηρεσιών βασιζόμενων στην ιδέα του «υπολογιστικού νέφους», με στόχο την πρόσβαση στην πληροφορία και στα δεδομένα από οπουδήποτε και ανά πάσα στιγμή, με περιορισμό ή εξάλειψη της ανάγκης για υλικό hardware. Με τον όρο «υπολογισμός νέφους» προσδιορίζεται η χρήση υπολογιστικών πόρων υλικοτεχνικού αλλά και λογισμικού επιπέδου, χρησιμοποιώντας υπηρεσίες, μεταφερόμενες μέσω του διαδικτύου. Οι υπηρεσίες υπολογιστικού νέφους (cloud comput­ing) αποτελούν ένα από τα παγκοσμίως μεγαλύτερα πεδία ανταγωνισμού των ημερών μας ανάμεσα σε εταιρείες κολοσσούς στο χώρο της Πληροφορικής και του λογισμικού, όπως η Google, η Amazon και η Microsoft, οι οποίες αγωνίζονται να λάβουν πλεονεκτική θέση στον εν λόγω ραγδαία αναπτυσσόμενο κλάδο. Το αντικείμενο του μαθήματος είναι τόσο η γνωριμία και η εξοικείωση με το χώρο των υπολογιστικών νεφών, όσο και ο επί της πράξης σχεδιασμός των υποδομών για τη χρήση και τη λειτουργία αυτών. Μελετούνται οι τεχνολογίες της θεωρίας του υπολογισμού νέφους, παρουσιάζονται υπηρεσιοστρεφείς αρχιτεκτονικές (Service Oriented) και δίνονται τα απαραίτητα εφόδια για την ένταξη της τεχνολογίας αυτής στα προγραμματιστικά εργαλεία του σύγχρονου τεχνολόγου λογισμικού.

302, κεντρικό κτίριο
+30 210 4142137
fax +30 210 4142472

Μιχάλας Άγγελος

Τεχνολογίες Εξατομίκευσης Λογισμικού

Βίρβου Μαρία

Καθηγήτρια
507/ΚΕΚΤ
+30.210.4142269

543/ΚΕΚΤ
Τηλέφωνο/Fax:+30 210 4142312

Προηγμένα Θέματα Λογισμικού Υπηρεσιών Ιστού

Βίρβου Μαρία

Καθηγήτρια
507/ΚΕΚΤ
+30.210.4142269

543/ΚΕΚΤ
Τηλέφωνο/Fax:+30 210 4142312

3ο ΕΞΑΜΗΝΟ

Μεταπτυχιακή Διατριβή

Υλικό και σύνδεσμοι