studies
Master Degree (M.Sc.) in "Informatics"
Courses of 1st semester
1st semester
Introduction to Computer Science with the programming language PYTHON
Course Code ΜΠΠΛΕΥ01
Course Type Obligatory
Teaching Hours 3
ECTS: 5
Εισαγωγικά στοιχεία
Παράσταση και κωδικοποίηση δεδομένων
Πράξεις-Άλγεβρα Boole
Βασικές αρχές αλγορίθμων, πολυπλοκότητας και δικτύων
Βασικές αρχές λειτουργικών συστημάτων
Εισαγωγή στον προγραμματισμό: γλώσσες προγραμματισμού, μεταγλώττιση, γλώσσα
μηχανής, κατηγορίες γλωσσών προγραμματισμού.
Βασικές δομές δεδομένων: τύποι δεδομένων, αριθμοί, αλφαριθμητικά, λίστες και πίνακες,
σύνολα, λεξικά
Έλεγχος ροής προγράμματος: συνθήκες, τελεστές σύγκρισης, σύγκριση αλφαριθμητικών και ακολουθιών, boolean τελεστές, εμφωλιασμένες επαναλήψεις.
Συναρτήσεις
Χρήση αρχείων κειμένου για εισαγωγή και έξοδο δεδομένων
Σφάλματα και Εξαιρέσεις
Συλλογή δεδομένων από το διαδίκτυο
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- Να κατέχουν εξειδικευμένες γνώσεις σχετικά με τις βασικές αρχές της επιστήμης των υπολογιστών μέσω της γλώσσας προγραμματισμού Python
- Να γράφουν (να δημιουργούν, να συνθέτουν) προγράμματα (απλά ή σύνθετα)
- Να μετρούν, να ελέγχουν και να αξιολογούν με κριτική αντίληψη την ορθότητα και την καταλληλόλητα ενός προγράμματος.
- Να εκσφαλματώνουν προγράμματα.
- Να γνωρίζουν ευρέως, να επιλέγουν, να διακρίνουν, να ερμηνεύουν, να συνδυάζουν και να εφαρμόζουν με ευχέρεια βασικές προγραμματιστικές έννοιες, δομές και τεχνικές.
- Να εκτελούν απλούς και σύνθετους αριθμητικούς υπολογισμούς μέσω του προγραμματισμού.
- Να χρησιμοποιούν δομές ελέγχου, συνθήκες, δομές απόφασης και δομές επανάληψης-βρόχους.
- Να δομούν τα προγράμματά τους με χρήση επαναληπτικών και αναδρομικών συναρτήσεων.
- Να διακρίνουν, να εκτιμήσουν και να κατανοήσουν την πολυπλοκότητα ενός αλγορίθμου
- Να συνθέτουν, να οργανώνουν και να προγραμματίζουν βασικές πράξεις σε δεδομένα όπως εύρεση και ταξινόμηση.
- Να μπορούν να επεξεργάζονται με ευχέρεια αρχεία κειμένου
- Να μπορούν να επεξεργαστούν αυτόματα πληροφορία από το διαδίκτυο
- Να μπορούν να χρησιμοποιήσουν και να εργαστούν με αποθετήρια κώδικα.
- Να εφαρμόζουν με ευχέρεια και πρωτοτυπία τις θεωρίες και μεθοδολογίες του γνωστικού τους πεδίου στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των αρχών και πρακτικών της επιστήμης των υπολογιστών με ποικίλους γνωστικούς τομείς.
- Να εφαρμόζουν τις γνώσεις, αρχές και πρακτικές της επιστήμης των υπολογιστών για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο.
- Να αναπτύσσουν με αυτονομία τις σχετικές με την επιστήμη των υπολογιστών γνώσεις και ικανότητές τους.
- Να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις αρχές και πρακτικές της επιστήμης των υπολογιστών
540, Central Building
Programming Principles –Languages C, C++
Course Code MPPLAP01
Course Type Obligatory
Teaching Hours 3
ECTS: 5
Σύγχρονη Τεχνολογία
Πληροφορική & Εξέλιξη Λογισμικού
Επίλυση Προβλημάτων με Υπολογιστές
Προγραμματισμός σε Παραθυρικό περιβάλλον
Εξέλιξη γλωσσών Προγ/μου
Βασικές Αρχές της C++
Εντολές της C++
Τελεστές και Προεπεξεργαστής C++
Απλή είσοδος/ έξοδος και εφαρμογές προγραμμάτων σε C++
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές/τριες θα είναι σε θέση να:
- διαθέτουν εξειδικευμένες γνώσεις σχετικά με τους επιστημονικούς κλάδους της Αλγοριθμικής και του Προγραμματισμού,
- κατανοούν τις βασικές αρχές προγραμματισμού ενός Η/Υ,
- αναγνωρίζουν και θα κατανοούν τα βασικά στοιχεία της γλώσσας προγραμματισμού C++,
- να διακρίνουν τις βασικές αρχές του συναρτησιακού και αντικειμενοστραφούς προγραμματισμού,
- να αξιοποιήσουν με ευχέρεια τις βασικές αλγοριθμικές δομές σε γλώσσα C++
- να επιλύουν απλά και σύνθετα υπολογιστικά προβλήματα αξιοποιώντας με κριτική σκέψη βασικές Δομές Δεδομένων,
- να εφαρμόζουν με ευχέρεια και πρωτοτυπία τα βασικά εργαλεία ανάπτυξης και εκσφαλμάτωσης λογισμικού σε ένα προγραμματιστικό περιβάλλον, αξιολογώντας κριτικά την καταλληλόλητά τους ανάλογα με τις παραμέτρους του,
- να εφαρμόζουν με ευχέρεια και πρωτοτυπία τις αρχές προγραμματισμού στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο,
- να επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των αρχών αρχές προγραμματισμού με ποικίλους γνωστικούς τομείς.,
- να εφαρμόζουν τις αρχές προγραμματισμού για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- να αναπτύσσουν με αυτονομία τις σχετικές με αρχές προγραμματισμού γνώσεις και ικανότητές τους,
- να επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις αρχές προγραμματισμού.
540, Central Building
Data Structures
Course Code MPPLDD01
Course Type Obligatory
Teaching Hours 3
ECTS: 5
Introduction to algorithms, asumptotic notations, basic analysis of the algorithm performance, arrays, linked lists, stacks, queues, sorting, trees, binary search trees, heaps, balanced trees (avl-trees, red-black trees), hashing, union-find structure, B-trees, applications.
On successful completion of this unit students will be able to:
1. Aptly apply the suitable data structures for solving computational problems in various application fields.
2. Evaluate the time complexity of the basic operations of data structures both analytically and experimentally.
3. Evaluate the space complexity of a data structure both analytically and experimentally.
4. Efficiently implement data structures taking into account the features of the implementation platform.
302, Central Building
+302104142322
543, Central Building
Phone Number /Fax:+30 210 4142312
Programming Languages and Compilers
Course Code MPPLGPM01
Course Type Obligatory
Teaching Hours 3
ECTS: 5
Το μάθημα ασχολείται με τη Θεωρία των Γλωσσών, την κατασκευή αυτομάτων αναγνώρισης λεκτικών μονάδων, αλλά και με επιμέρους τμήματα, που αποτελούν τη βάση της δημιουργίας ενός μεταγλωττιστή (compiler) μιας γλώσσας προγραμματισμού. Το μάθημα διαιρείται στις ακόλουθες ενότητες:
- Ενότητα 1: Εισαγωγή στην Μεταγλώττιση.
- Ενότητα 2: Στοιχεία Θεωρίας Γλωσσών (ορισμός γλωσσών, γραμματικές, αυτόματα, μέσα για τον ορισμό σημασιολογικών προδιαγραφών).
- Ενότητα 3: Τρόποι προσδιορισμού σύνταξης (σύνολα, BNF, Συντακτικά διαγράμματα, EBNF).
- Ενότητα 4: Λεκτική Ανάλυση (λεκτικός αναλυτής, αναγνώριση λεκτικών μονάδων, κανονικές γραμματικές και κανονικές εκφράσεις, ανάνηψη από λεκτικά λάθη, καθορισμός λεκτικών ομάδων, υλοποίηση λεκτικού αναλυτή, LEX, υλοποίηση λεκτικού αναλυτή).
- Ενότητα 5: Συντακτική και Σημασιολογική Ανάλυση (στρατηγικές συντακτικής ανάλυσης, αναλυτές από πάνω προς τα κάτω, αναλυτές από κάτω προς τα πάνω, υλοποίηση συντακτικού αναλυτή, σημασιολογική ανάλυσηΕνότητα 6: Παραγωγή κώδικα (ενδιάμεσες αναπαραστάσεις, παραδείγματα).
Με την επιτυχή ολοκλήρωση του μαθήματος, ο/η φοιτητής/τρια θα είναι σε θέση:
- Να διαθέτει ευρεία γνώση σχετικά με τους μεταγλωττιστές
- Να αναγνωρίζει και να εξηγεί τι είναι γλώσσα και γραμματική και πως συμβολίζονται
- Να αναγνωρίζει και να εξηγεί τους διαφορετικούς τρόπους προσδιορισμού σύνταξης (BNF, EBNF, συντακτικά διαγράμματα).
- Να χρησιμοποιεί με ευχέρεια τις προαναφερθείσες γνώσεις για να τις υλοποιεί.
- Να αναγνωρίζει και να εξηγεί τι είναι πρόταση, παραγωγή, προτασιακός τύπος,
- Να παράγει με ευχέρεια συμβολοσειρές από μία γραμματική και να αναπτύσσει το συντακτικό δέντρο μιας παραγωγής.
- Να αναγνωρίζει τις κανονικές εκφράσεις και τους συμβολισμούς FLEX.
- Να αναγνωρίζει ένα αυτόματο στοίβας (ντετερμινιστικό και μη-ντετερμινιστικό).
- Να χρησιμοποιεί ένα αυτόματο στοίβας για την αναγνώριση μιας συμβολοσειράς.
- Να κατασκευάζει το ελαχιστοποιημένο ντετερμινιστικό πεπερασμένο αυτόματο για μια δεδομένη κανονική έκφραση.
- Να γνωρίζει, κατανοεί και εφαρμόζει με ευχέρεια τις στρατηγικές συντακτικής ανάλυσης.
- Να ορίζει, να εξηγεί και να υπολογίζει τα σύνολα FIRST, FOLLOW, EMPTY, LOOKAHEAD, να κατασκευάζει τον προβλέποντα συντακτικό πίνακα και να αναγνωρίζει μια LL(1) γραμματική.
- Να ελέγχει αν αναγνωρίζεται μια δεδομένη συμβολοσειρά από έναν συντακτικό αναλυτή.
- Να διακρίνει τα είδη των προτεραιοτήτων που δύναται να υπάρχουν μεταξύ συμβόλων μιας γραμματικής και τους συμβολισμούς αυτών.
- Να αποτιμά και να αξιολογεί τις προτεραιότητες μεταξύ των συμβόλων μιας δεδομένης γραμματικής.
- Να κατασκευάζει με ευχέρεια τον πίνακα προτεραιοτήτων μιας γραμματικής.
- Να γνωρίζει, να εξηγεί και να υπολογίζει τα σύνολα LEFT, RIGHT.
- Nα εφαρμόζουν με ευχέρεια και πρωτοτυπία τις σχετικές με τους μεταγλωττιστές γνώσεις τους στις έρευνες, μελέτες και εργασίες τους με κριτικό και δημιουργικό τρόπο.
- Nα επιδεικνύουν κριτική κατανόηση στον τρόπο διασύνδεσης των σχετικών με τους μεταγλωττιστές γνώσεων τους με ποικίλους γνωστικούς τομείς,
- Nα εφαρμόζουν τις σχετικές με τους μεταγλωττιστές γνώσεις τους για την επίλυση σύνθετων ζητημάτων στο χώρο εργασίας με επιστημονικά τεκμηριωμένο τρόπο,
- Nα αναπτύσσουν με αυτονομία τις σχετικές με τους μεταγλωττιστές γνώσεις και ικανότητές τους,
- Nα επιλύουν προβλήματα και να λαμβάνουν στρατηγικές αποφάσεις με αφετηρία την επαγωγική σκέψη βασιζόμενοι στις σχετικές με τους μεταγλωττιστές γνώσεις τους.
Professor
507, Central Building
+30.210.4142269
505, Central Building
+302104142128
207, Central Building
+302104142131
Operating Systems
Course Code MPPLLS01
Course Type Obligatory
Teaching Hours 3
ECTS: 5
Basic principles of Operating Systems. Architecture, structure and categorization of Operating Systems. Processes and Threads. Inter-Process Communication. CPU scheduling. Memory management. Virtual memory. Memory pagination. Algorithms for memory pagination. File and folder management. File systems.
On successful completion of this unit students will be able to:
Understand basic principles of Operating Systems.
Perform basic administration of modern Operating Systems.
Use Command-Line Interface.
Run and execute basic shell scripts.
302/Lam.126
+302104142123

Δρ. Ι. Αντρεου
Elective Courses
Special Topics in Mathematics
Course Code MPPLSA01
Course Type Elective
Teaching Hours 3
ECTS: 5
sets. Differentiation. Integration. Matrices. Determinants. Systems. Algebraic Structures. Boolean Algebra. Mathematical Software.
After successfully completing this course, students are expected to have acquired the basic knowledge of mathematics that are needed in Computer Science.
Mathematical Logic
Course Code MPPLML01
Course Type Elective
Teaching Hours 3
ECTS: 5
Propositional Calculus. Recursive Definitions. Proof by Induction. Truth Values. Truth Assignment. Logical Implication. Satisfiability. Horn Formulas. Normal Forms. SAT Problem. Compactness Theorem. Axioms and Completeness of Propositional Calculus. Proof. Truth Trees. Resolution Principle. Mathematical Logic and Boolean Algebra. Introduction to Predicate Calculus. Quantifiers.
After successfully completing this course, students are expected to have acquired the ability to apply the basic principles of Mathematical Logic not only in their effort to solve particular problems in Mathematics and Computer Science, but more generally in order to address problems that they are facing, in a systematic, well organized and consistent way, to realize that there is a close relation between Mathematical Logic and Boolean Algebra. Students are also expected to have acquired the notions of Proof and Satisfiability, and to be able to use particular proof techniques and algorithms, such as Truth Trees and the Resolution Principle.
Discrete Mathematics
Course Code MPPLGP01
Course Type Elective
Teaching Hours 3
ECTS: 5
Basic Notions:Sets. Relations. Mappings.Combinatorics:Orderings. Combinations. Permutations.Basic Principles:Induction. Pigeonhole. Diagonalization. Inclusion – Exclusion.Sums – Differences:Factorial Polynomials. Newton's Theorem.Boolean Algebra: Equations. Systems. Boolean Functions. Relation to Mathematical Logic.Graphs:Basic Definitons and Results.Trees:Basic Definitions and Results. Ordered Trees. Binary Trees. Traversal of Binary Trees.Languages – Automata:Basic Definitions. D-Automata. Languages and Automata
After successfully completing this course, students are expected to have acquired the basic knowledge of mathematical notions and results needed in Computer Science, i.e., the students are expected to be able to use some basic mathematical principles, to manipulate sums and differences, as well as to be familiar with the basic notions and results in Set Theory, Combinatorics, Graph Theory, Boolean Algebra, Languages and Automata.

Sapounakis Aristides
542, Central Building
+30 210 4142262

541, Central Building
+30 210 4142276
Website Development with Modern Web Technologies
Course Code ΜΠΠΛΛΠ01
Course Type Elective
Teaching Hours 3
ECTS: 5
604,Lam.126
+302104142146