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

302,Central Building

+30 210 4142314

Software Development for the World-wide Web

Advanced Topics of Object - Oriented Programming (Java)

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

Special Topics in Software Engineering

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

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


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.

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

Michalas Angelos

Software Personalization Technologies


Phone Number /Fax:+30 210 4142312

Advanced Topics in Web Services Software


Phone Number /Fax:+30 210 4142312

3rd semester

MSc Thesis

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