Undergraduate
studies

of informatics of university of piraeus

Courses of 6nd semester

Software Engineering

Course Code
Course Type Core
Track
Teaching Hours 4 Theory + 2 Laboratory
ECTS: 5

Contribution of the course to meet the technological requirements:
Students are exposed to modern software modeling techniques, architectural design and the modern UML modeling language

1. Software lifecycle models with emphasis on Rational Unified Process,
2. Modeling languages with emphasis on UML,
3. Software cost budget,
4. Requirements analysis, design, implementation and programming languages,
5. Inspection, maintenance and CASE tools.

Upon successful completion of this course students will be able to:
1. Compiles structured software requirements analysis documents
2. Designs software architectural designs based on modeling languages and diagrams
3. Produces code based on the design stage, which will correspond to the corresponding diagrams
4. Uses the Rational Unified Process software lifecycle model

Professor
507/CB
+30.210.4142269

540 Central Building

Artificial Intelligence and Expert Systems

Course Code
Course Type Core
Track
Teaching Hours 4 Theory
ECTS: 5

• Introductory knowledge of basic concepts in Artificial Intelligence and Expert Systems
• Solve problems in selected areas, such as genetic algorithms using artificial intelligence methods
• Basic knowledge in Machine Learning and Neural Networks

Upon completion of the course students are expected to:
1. know the basic concepts of Artificial Intelligence (AI) and Expert Systems (ES),
2. be able to identify, describe and represent simple logical problems;
3. develop search algorithms,
4. focus, deepen, distinguish and demonstrate ways of solving problems with selected methods of artificial intelligence (e.g. genetic algorithms, fuzzy logic),
5. design and develop approaches for handling uncertainty and fuzziness in rule based systems; 6. know and identify the semantic networks, as well as apply inferences to them,
7. possess basic knowledge in Machine Learning and Artificial Neural Networks.

303/Lam.126
+302104142476

Computer Systems Design

Course Code
Course Type Mandatory Direction
Track NCS
Teaching Hours 4 Theory
ECTS: 5

The course is a continuation of the background course Logig Design of Digital Systems and aims to enhance the students’ knowledge in the design of computer (digital) systems.

It focusses on the study of the following topics:
1. Modeling of digital circuits.
2. Introduction to hardware description languages. Digital circuit design using VHDL language.
3. Design of combinational circuits.
4. Design of modern sequential circuits.
5. Design of finite state machines.
6. Memory design.
7. Microprocessor design.
8. Simulation of digital circuits.
9. Synthesis of digital circuits.
10. Design of digital circuits using FPGAs.

Upon successful completion of the course, the students:
• will have obtained an in-depth understanding of the design methodology of modern digital circuits
• will be able to design and develop digital circuits using a hardware description language (VHDL)
• will have obtained skills in using modern digital circuit design, simulation and debugging environments
• will be able to apply performance optimization techniques in digital circuits
• will become familiar with the FPGA (reconfigurable) technology
• will have learnt how to design digital circuits using FPGA
• will have been updated about current research issues in the field of digital circuit design

302/Lam.126
+302104142425

Modern Telecommunication Networks and Services

Course Code
Course Type Mandatory Direction
Track NCS
Teaching Hours 4 Theory + 2 Laboratory
ECTS: 5

• The aim of the course is to provide students with the necessary knowledge regarding the followingtopics/content:
• Thedevelopment and development of high-speedλών ταχυτήτων όπως και παρουσίαση των πιο πρόσφατων επιστημονικών και τεχνολογικών networks and the presentation of the latest scientific and technological developmentsin the field.
• Concepts and protocols for broadband wired and wireless networks;
• Packet Switching Networks, Optical Networks, xDSL Technologies, IP Networks and Services, Wireless Local Networks, Wireless Broadband Networks, Satellite Communications, Internet of Things (IoT).
• Regulatory Telecommunications Issues.

Συμβολή του μαθήματος στην κάλυψη των επαγγελματικών απαιτήσεων:
1. Οι φοιτητές εισάγονται σε βασικές αρχές κι αρχιτεκτονικές Δικτύων Υψηλών Ταχυτήτων.
2. Οι φοιτητές εισάγονται σε διάφορες τεχνολογίες Δικτύων Υψηλών Ταχυτήτων.
3. Οι φοιτητές εισάγονται σε βασικές έννοιες των τεχνολογιών και προτύπων ενσύρματων και ασύρματων επικοινωνιών, τεχνολογιών διαδικτύου των πραγμάτων (ΙοΤ).
4. Οι φοιτητές μαθαίνουν την προσομοίωση Δικτύων Υψηλών Ταχυτήτων και την αξιολόγηση των ευρημάτων τους.

With the successful completion of the course, the student should:
1. Understands the basic principles and concepts of high-speed networks (wired and wireless).
2. It distinguishes high-speed networks from the rest and identifies their key features.
3. It designs a high-speed network consisting of heterogeneous/hybrid networks, crosslayer design.
4. Simulate and manage errors and failures of the high-speed network.
5. Evaluates the operating parameters and performance of a network.
6. It can set up the operation of a network to achieve the desired performance.
7. It can select and compose known networking technologies to create a network with specific operating specifications.
8. Detect new trends in the evolution of computer networks.

Professor
104/Lam.126
+30 210 4142479 | fax +30 210 4142119

Systems, Telecommunications and Services Programming

Course Code
Course Type Mandatory Direction
Track NCS
Teaching Hours 4 Theory + 2 Laboratory
ECTS: 5

Mobile Communications Platforms, Internet of Things Platforms (IoT) and Smart Technologies, IoT Systems, TCP/Processes, Signals, Introduction Sockets to Sockets Security/VR TCP/IP, Sockets, Server Architectures, Message Queuing, Bark Programming, Software Requirements Analysis and Design, Software Development Tools, Platforms for AR/VR, Games, Sensor Networks, M2M,Operating System Security, File System Security, DoS Issues in Operating Systems, Sockets Security.

With the successful completion of the course students will be able to:
1. Identify the basic concepts of the telecommunications and wireless networks sector.
2. They understand mobile platform architectures.
3. Know Internet of Things (IoT) and Smart Technologies, Game Machines, Sensor Networks, M2M.
4. They understand the concepts Of File System and Process.
5. Identify issues with the security of the Operating System and the File System.
6. They perform Requirement Analysis and Software Design.
7. Handle Software Development and Debugging Tools.
8. Design and develop AR/AR/VR, VR IoT,smart services.
9. They develop fixed computer and mobile applications as well as network applications.

Professor
104/Lam.126
+30 210 4142479 | fax +30 210 4142119

Data Analytics

Course Code
Course Type Mandatory Direction
Track IS
Teaching Hours 3 Theory + 2 Laboratory
ECTS: 5

The course offers knowledge about Data Analytics (DA) methods and techniques. In particular, it covers topics such as:
1. Intro to DA - Data Preprocessing for DA purposes
2. DA algorithms and techniques (classification/prediction, clustering, frequent pattern mining, etc.)
3. Special – advanced topics (image/audio, spatial DA)
4. Hands-on using popular programming languages for DA purposes (R, Python)

Upon the successful completion of the course, the students will be able to:
• Understand topics related to Data Analytics (DA)
• Apply data preparation techniques for DA purposes
• Choose among various DA methods, such as clustering and classification, in order to solve DA problems
• Exploit on the above knowledge, which is required in a Data Scientist’s portfolio

501,Central Building
+302104142449

505Central Building
+302104142128

Systemic Analysis

Course Code
Course Type Mandatory Direction
Track IS
Teaching Hours 4 Theory + 1 Laboratory
ECTS: 5

• Basic Concepts of Systemic Thinking in Systems Analysis.
• Systemic Approach to Systems Analysis (A. Introduction to Ways of Change, B. Applied Systems Theory).
• Strategic Hypothesis, System Configuration and Testing Methodology.
• Interactive Systems Design Methodology.
• Soft Systems Methodology.
• Critical System Heuristics.
• The Metasystem Approach to Systems Analysis.
• The Systems and Metasystem Design and Control Methodology (DCSYM) in Systems Analysis and its applications in Strategic and Process Analysis environments.
• Total Systems Intervention.
• Introduction to Multi-Systems Approach methodologies.
• STIMEVIS: Structured total systems intervention systemic multi‐methodology of viable systems and metasystems. Use of Systemic Methodologies and / or Multi-Methodologies in the Development of Information Systems.
• Software Training: DCSYM Case Tool and VSMod.
• The Webex platform in remote systems analysis management. Mandatory Work per student using the DCSYM Case Tool or VSMod Software in a real System Development environment.
• Professional real applications of systemic methodologies for the approach and operation of processes.

Upon completion of the course, students will be able to:.
1. Know and understand basic properties that characterize systems..
2. Identify and understand the concepts of Systemic Analysis..
3. Analyze Systems identifying ways of change and utilizing the content of Applied Systems Theory..
4. Define and recognize the Systems by type, as well as the meaning of a Metasystem..
5. Understand the use of Systemic Methodologies..
6. Distinguish the appropriate methodology for each type of Systems..
7. Deepen in the content and applications of Systemic Methodologies and Multimethologies for the development of information systems..
8. Familiarize with the creation of Systems Analysis models..
9. Achieve distinction of dynamic systemic levels..
10. Focus on applications within a real work environment using relevant software..
11. Practice in the implementation of remote systems analysis management.

Asimakopoulos Nikitas

Decision Support Systems

Course Code
Course Type Mandatory Direction
Track IS
Teaching Hours 4 Theory
ECTS: 5

The course focuses on typical decision support methods and techniques that form the basis for the development of analytical models that can be integrated into decision support information systems.

• Introductory concepts, decision, decision problem, criteria, consistent family of criteria, characteristics of a set of alternative decisions, problematic.
• Introduction to decision support systems, architecture, development methodologies.
• Analytical preference-oriented and data-oriented decision support models.
• Methods and techniques of multi-criteria decision analysis. The method of analytical hierarchy.
• Data envelopment analysis as a method of performance measurement.

Εισαγωγή στα συστήματα υποστήριξης αποφάσεων, αρχιτεκτονική, μεθοδολογίες ανάπτυξης.
Αναλυτικά Μοντέλα υποστήριξης αποφάσεων με προσανατολισμό στις προτιμήσεις (preference oriented), με προσανατολισμό στα δεδομένα (data oriented).
Μέθοδοι και τεχνικές πολυκριτηριακής ανάλυσης αποφάσεων. Η μέθοδος αναλυτικής ιεράρχησης.
Η περιβάλλουσα ανάλυση δεδομένων (Data envelopment analysis) ως μέθοδος αποτίμησης της αποδοτικότητας συστημάτων.

Upon successful completion of the course the student will be able to:
• Recognize the structured aspects of semi-structured decision problems that can be partially modeled mathematically.
• Identify the basic techniques of multi-criteria decision analysis and apply them to problems whose semi-structured nature is due to the existence of multiple and conflicting criteria for evaluating alternatives.
• Identify analytical data-driven decision support models.
• Understand the Data Envelopment Analysis (DEA) method in the frame of measurement of the performance of decision-making units.
• Use appropriate software to solve linear programs and interpret the results.

Despotis Dimitrios

702/Lam.126
+302104142411

Multimedia Systems

Course Code
Course Type Mandatory Direction
Track TSIS
Teaching Hours 4 Theory
ECTS: 5

The Multimedia Systems course deals with a scientific field in which several different scientific disciplines meet and interoperate, including the disciplines of signal processing, information theory and communications. Therefore, the goal is to develop solutions for the effective creation, storage/compression and distribution of multimedia content. As a consequence, this course aims at presenting in a unified way the diverse concepts of multimedia processing, the nature of problems that multimedia content design is expected to solve and the most important multimedia content digitization, compression and networking techniques. The contents of the course are split into four parts, namely: Multimedia Content Creation, Multimedia Content Compression, Multimedia Content Networking and Contemporary Trends. Each part consists of one or more teaching sections and can taught over one or more lectures.

Part I: Multimedia content creation
Section 1: Introduction to Multimedia Systems – Past, Present and Future
Section 2: Digital content creation
Section 3: Media Representation and Formats
Section 4: Color theory

Part II: Multimedia content compression
Section 5: Compression overview
Section 6: Image compression
Section 7: Video compression
Section8: Audio compression
Section 9: Graphics compression

Part II: Multimedia content networking Section 10: Wired and Wireless Networking Section 11: Digital Rights Management

Part IV: Contemporary trends
Section 12: MPEG-4, Multimedia Databases, Information Retrieval and Multimedia Frameworks.

Μέρος ΙV: Σύγχρονες Τάσεις
Ενότητα 12: MPEG-4, Πολυμεσικές Βάσεις Δεδομένων και Αναζήτηση Πληροφορίας, Πολυμεσικά Πλαίσια

With the successful completion of the course, the student will:
• Possess advanced knowledge regarding algorithms, techniques and methods for digital content creation, compression and networking, including lossless/lossy compression of images/audio/video/graphics (JPEG, JPEG2000, MPEG-4), wireless networking (e.g., Bluetooth) and digital rights management (e.g., DRM solutions for the music industry).
• Understand how digital signal processing theory, color theory, psychoacoustics, information theory, compression and networking are combined to create and operate multimedia systems.
• Possess the skills to analyze real world problems (involving open-source data), for which it is required to design/develop/implement systems that process/analyze multimedia content, conduct feasibility studies, select the appropriate algorithms/techniques and assess/compare the effectiveness of competing solutions.
• Deal with the computational burden and complexity imposed by data stemming from real-world problems in a team environment.
• Possess advanced Python/Matlab/GNU Octave programming skills for the implementation of algorithms, techniques and methods for the processing of multimedia content.
• Identify and re-use existing open-source implementations related to multimedia content processing, like the ffmpeg library of functions.
• Identify concepts related to multimedia content processing in the neighboring fields of Signal Processing, Information Theory, Data Compression and Data Networking.

302,Central Building
+302104142322

505Central Building
+302104142128

Natural Language Processing

Course Code
Course Type Mandatory Direction
Track TSIS
Teaching Hours 4 Theory
ECTS: 5

Το μάθημα εμπεριέχει τα εξής:
1. Εισαγωγή στην Επεξεργασία Φυσικής Γλώσσας.
2. Επίπεδα Ανάλυσης Φυσικής Γλώσσας (Φωνολογικό, Μορφολογικό, Συντακτικό, Σημασιολογικό, Πραγματολογικό).
3. Γραμματικές – Τεχνολογητές (Συντακτικοί Αναλυτές) για τη Φυσική Γλώσσα.
4. Εξαγωγή γνώσης από κείμενα.
5. Ερωταποκρίσεις σε φυσική γλώσσα.
6. Ανάπτυξη εφαρμογής.

Με την παρακολούθηση του μαθήματος ο φοιτητής :
Γνωρίζει τη δομή ενός συστήματος επεξεργασίας φυσικής γλώσσας.
Κατανοεί τις έννοιες της παραγωγής λόγου, της ανάλυσης λόγου και της αυτόματης μετάφρασης.
Διακρίνει και εκτιμά πότε είναι απαραίτητο ένα σύστημα επεξεργασίας φυσικής γλώσσας.
Αναπτύσσει αλγορίθμους για λεκτική και συντακτική ανάλυση, εξαγωγή γνώσης, παραγωγή λόγου.

604,Lam.126
+302104142146

Bioinformatics

Course Code
Course Type Mandatory Direction
Track TSIS
Teaching Hours 4 Theory
ECTS: 5

The field of Bioinformatics is where different scientific disciplines collaborate to develop algorithms and statistical methods for the analysis and understanding of large collection of biological data, including sequences of nucleotides, amin acids and protein structures, as well as the phylogenetics of organisms. During the last decade, the science of Bioinformatics has designed and implemented tools that allow for the processing and analysis of diverse information sources related to the functionality of cells. Therefore, the main objective of this course is to provide fundamental knowledge in the field of Bioinformatics regarding the aforementioned problems and tasks and set the knowledge foundation for the students who wish to pursue a career in the field. In addition to taught theory, the course also evolves over an applied dimension that uses publicly available data, so that the students become familiar with concepts and algorithms from a practical perspective. The course is split over twelve sections and each section can be taught over one or more lectures:

Section 1: Introduction to Bioinformatics
Section 2: Access to Sequence Data and Literature Information
Section 3: Pairwise Sequence Alignment
Section 4: Basic Local Alignment Search Tool
Section 5: Advance Database Searching
Section 6: Multiple Sequence Alignment
Section 7: Molecular Phylogeny and Evolution
Section 8: DNA - eukaryotic chromosome
Section 9: Analysis of next-generation sequencing data Section 10: Bioinformatics approaches to RNA Section 11: Gene Expression: Microarray Data Analysis Section 12: Protein Analysis and Proteomics

With the successful completion of the course, the student will be able to:
• Understand and explain the main Bioinformatics objectives
• Understand the functionality of popular molecular databases and genome browsers an use diverse internet resources for sets of genes and proteins, with an emphasis on the NCBI portal functionality.
• Use scoring matrices, understand dynamic programming concepts and perform sequence alignment operations on DNA and protein sequences using the Needleman-Wunsch and Smith-Waterman algorithms.
• Understand the BLAST method, interpret BLAST results and perform BLAST searches on the NCBI portal.
• Understand position scoring matrices and Hidden Markov modeling.
• Understand and explain the main stages of multiple sequence alignment and conduct comparative alignment studies.
• Understand and explain the molecular clock hypothesis, define positive and negative selection, and understand different types of phylogenetic trees.
• Understand basic type of repeating DNA elements along with the respective analysis procedures.
• Understand fundamental concepts related to next-generation sequencing technology.
• Describe the main RNA categories.
• Understand steady-state RNA measurement techniques.
• Explain rotein analysis and proteomics.
• Possess Python/Matlab/GNU Octave programming skills to implement bioinformatics algorithms.

302,Central Building
+302104142322

505Central Building
+302104142128

Didactics of Informatics

Course Code
Course Type Elective
Track
Teaching Hours 4 Theory
ECTS: 5

In this course, we focus on Informatics as a teaching subject. We present examples of application of algorithmic thinking and programming to other disciplines. We discuss a chronology of the introduction of the subject to various levels of education in Greece, along with the relevant learning theories. In the main part of the course, we address the Didactics of Informatics both on hardware and software level, stressing the importance of educational software development. We explore common students’ misconceptions, as they are presented in international research programs, ranging from computer architecture, to the concept of programming variable, to control flow statements, to data structures, to sub-routines, to typical solvable problems, etc. We attempt a number of simulated teachings in selected topics, emphasizing on teaching organization spanning several typical time scales (45 min period, semester, school year). We develop techniques for composing activities aiming to rectify misconceptions, using alternative teaching approaches, incorporating learning objects for personalized teaching, etc.

TOPICS:
1. Historical background
2. Didactic of Informatics in Preschool Education
3. Examples of educational software
4. Didactic of Informatics in Primary Education
5. Informatics as an interdisciplinary tool: Programming in Excel for simulation – visualization of concepts in Physics, Chemistry, and Mathematics.
6. Didactic of Informatics in Secondary Education
7. Algorithmic logic in the study of physical phenomena by using and (mainly) developing simulation software
8. Introduction to didactics
9. Teaching techniques
10. Learning theories in education
11. Bloom’s taxonomy
12. Design of teaching approach
13. Gagné’s Theory
14. The concept of programming variables
15. Didactics of control flow statements (conditionals)
16. Didactics of control flow statements (loops)
17. Didactics of data structures
18. Didactics of sub-routines
19. Didactic approaches on programming
20. Learning object repositories
21. Educational scenario repositories
22. Educational robotics
23. Online research
24. Conceptual maps in education

Upon successful completion of the course the student is expected to be able to:
• organize his/her teaching approach by detecting the students’ level and presenting the unit’s concepts using techniques that include models of exploratory learning and collaborative teaching,
• compose activities suitable for the students’ familiarization with basic algorithmic control structures and data structures,
• look for learning objects available online on respective digital repositories and incorporate them in the teaching process as elements of visualization, simulation, investigation, experimentation etc.,
• look for educational/learning scenarios kai teaching practices deemed as optimal as well as structure his/hers own,
• evaluate his/her students and his/her teaching approach by applying appropriate research tools and quantitative indicators.

305, centre building
+302104142141

Security Governance

Course Code
Course Type Elective
Track
Teaching Hours 4 Theory
ECTS: 5

Course Description The main objective of this course is to enable students to assess the security that is offered by an information system as well as the quality of the security that is offered from the application of processes of an organisation.

More precisely, we will analyse the following:
• Common vulnerabilities of systems and applicatons.
• Methods and tools to discover vulnerabilities of apps and systems
• Exploitation & persistence
• Digital forensics
• Information risk analysis.
• Security plans, policies and processes.
• Regulatory framework and security standards
• Continuity and recovery plans.

Upon successful completion of the course the students would be able to:
• Know methods and tools to identify vulnerabilities
• Determine possible vulnerabilities in an information system
• Understand common vulnerabilities of information systems and applications
• Identify possible attacks through log file analysis
• Examine and assess the security issues of a process of an organisation
• Identify and classify the methodologies of risk analysis
• Design and implement a security policy in an organisation

502/CB
+302104142270 , Phone Number: +30 6944783685 , +32(0) 485064238 , skype: nineta.polemi

540 Central Building

Group Support Systems

Course Code
Course Type Elective
Track
Teaching Hours 2 Theory + 2 Laboratory
ECTS: 5

Understanding the basic principles of collaboration systems and methods.

Specific learning objects:
1. Team support models.
2. Shared data synchronization procedures and techniques.
3. Typical teamwork support tools.
4. Voting methods.
5. Collective intelligence (user-based navigation mechanisms, collaborative navigation, collaborative referral systems).
6. Social Networks and Analysis Techniques.
7. Collaborative systems programming.
8. Collaborative software development.

Upon completion of the course students are expected to:
1. understand and describe the basic principles of collaborative systems and methods of cooperation,
2. devise and implement team support models, evaluating the common purpose and roles,
3. know and apply shared data synchronization procedures and techniques,
4. use standard teamwork support tools,
5. apply voting methods,
6. utilize collective intelligence through user-based navigation mechanisms, collaborative navigation and collaborative filtering systems,
7. design and implement collaborative systems programming,
8. monitor, record and evaluate the “functional behavior” of the Social Networks, composing the collected data for the implementation of their analysis techniques,
9. be able to design and develop software collaboratively

Despotis Dimitrios

702/Lam.126
+302104142411

303/Lam.126
+302104142476

Intelligent Social Networks Interaction

Course Code
Course Type Elective
Track
Teaching Hours 4 Theory
ECTS: 5

This course focuses on presenting a unified algorithmic framework for addressing the problems that emerge within the context social network analysis. In particular, the learning outcomes of this course concentrate on developing algorithmic mechanisms for analyzing a wide spectrum of data modalities that are interchanged within online social networks such as textual data, multimedia data or data that represent the structural organization of the digital social media.

Indicative teaching and learning outcomes:
• Graph-theoretical representation of social networks.
• Statistical properties of social networks emerging from their graph-theoretical representation.
• Community Detection & Community Evolution Tracking in social networks.
• Node Classification Algorithms in Social Networks.
• Link Prediction in Social Networks.
• Keyword filtering using the streaming API of Twitter.
• Text Mining
• Topic Modelling
• Sentiment Analysis

By completing this course, students are expected to:
• Obtain a deep understanding of the graph-theoretical representation of social networks.
• Obtain a deep understanding of the statistical properties of social networks that emerge from their graph-theoretical representation.
• Analyze and determine the structural information contained within a social network.
• Develop semi-supervised learning algorithms for node classification in social networks.
• Develop algorithms for the computation of graph-theoretic node centrality measures in digital social networks.
• Develop algorithms for community detection in social networks.
• Develop algorithms for the extraction of the connected components of a social network.
• Analyze the textual information conveyed within a digital social network through the utilization of Corpus Vectorization, Topic Modelling and Sentiment Analysis Algorithms.
• Obtain a deeper understanding of algorithmic mechanisms for the generation of artificial networks.
• Perform algorithmic analysis of co-authorship networks.
• Obtain a deeper understanding of information diffusion models in social networks.
• Understand the fundamental concepts of opinion formation models in social networks.

543/CB
+30 210 4142314

Software Design Patterns

Course Code
Course Type Elective
Track
Teaching Hours 4 Theory + 2 Laboratory
ECTS: 5

Course Description The course is about the theoretical study and practical development training in the design of efficient software, manageable source code and the use of software design standards that facilitate the evolution, reuse and efficiency of software applications. It is based on the concept of software design patterns that are the "example" of best practice in the implementation approach to a recurring system and logic programming problem.
The course includes the presentation of software patterns with the aim of laying the foundations for higher level programming performance and skills. The most popular software design patterns of Singleton, Builder, Visitor, Prototype, Factory, and AbstractFactory, which are also known as the gang of four, are presented and practiced in the popular, efficient and effective programming in both object-oriented and other programming languages requires the knowledge and application of standards in software development. In addition, the practical improvement of existing code is being practiced by applying advanced software design principles.

1. Necessity of Classes
2. Associations between classes and UML
3. Polymorphism & Principle of Integration
4. Principle of Low Coupling & Advanced Software Design Principles
5. Principle of Unique Competence & Open-Closed Design Principle
6. Liskov Substitution Principle & Principle of Inversion of Dependencies
7. Principle of Separation of Interconnections
8. Apply principles to Software Design Standards
9. Adapter & Composite & Bridge
10. Unit & Visitor & Observer
11. Factory

Upon successful completion of this course students will be able to:
1. Explain and apply advanced object-oriented software design principles (π. χ. single responsibility, open-closed etc)
2. Create source code following a software design pattern
3. Critically analyze source code and refactor it based on software design patterns
4. Distinguish and develop solutions to recurring software development problems using software patterns and principles.

Contribution of the course to the coverage of technological requirements:
1. Students are exposed to modern efficient source code design techniques for effective software
2. Students learn effective development and reorganization techniques for increased efficiency
3. Students learn to evaluate and identify software cases where a software development template is required

543/CB
Phone Number /Fax:+30 210 4142312

Parallel Computing

Course Code
Course Type Elective
Track
Teaching Hours 4 Theory
ECTS: 5

1. Introduction to the concepts of Parallel Computing
2. Classification of Parallel Computing Systems
a. Flynn’s taxonomy
b. Classification based on memory
3. Performance metrics
4. Mutual exclusion – Semaphores – Atomic instructions
a. Implementation algorithms
5. Programming models for parallel architectures
a. Threads - The POSIX Threads programming model
b. The OpenMP programming model
c. The MPI programming model
d. Mapping of parallel algorithms to programming models
6. Data dependencies – Vectorization
7. Data structures for Parallel Computing
8. Co-processors
a. GPU architecture
b. Programming models for GPU programming
c. Mapping of parallel algorithms on GPUs

Upon completion of the course, students will be able to:
1. Distinguish among the different categories of Parallel Systems and evaluate their advantages and disadvantages
2. Evaluate the performance of a parallel application using appropriate tools and appropriate performance metrics
3. Create new algorithms for the parallel computer systems being studied
4. Describe what a critical section, mutual exclusion, a semaphore and atomic instructions are
5. Distinguish when mutual exclusion is required in parts of a parallel application
6. Describe mutual exclusion implementation algorithms
7. Distinguish in what kind of parallel architecture a specific programming model can be used
8. Develop a parallel application using any of the programming models POSIX Threads, OpenMP, MPI and a programming model for graphics cards (GPU)
9. Distinguish between different types of data dependencies and the effect they have on parallelization
10. Explain what vectorization is and what benefits it offers
11. Explain parallel algorithms for implementing basic data structures
12. Distinguish which data structures should be used on a case-by-case basis to achieve high performance in a parallel program
13. Describe the architecture of GPUs
14. Describe programming models for GPU programming
15. Describe performance optimization techniques for parallel applications

Upon completion of the course, students will have developed the following skills:
1. They will be able to identify the parts of a serial application that have increased chances of achieving better performance when parallelized
2. They will be able to develop a parallel application using the appropriate algorithms, tools and programming models for the computer system in use
3. They will be able to evaluate the performance of the parallel application they use or have created
4. They will be able to identify parts of parallel application that can be optimized
5. They will be able to apply techniques to optimize performance at these parts
6. They will be able to design new parallel algorithms for the computer system in use

301, Lam. 126
+302104142124

English VI

Course Code
Course Type Foreign Language
Track
Teaching Hours 4 Theory
ECTS: 3

- Presentation and elaboration of advanced level texts with topics of various scientific areas that are combined and supported by the applications of Informatics Science (eg Statistics, Games and Internet, Financial issues of Financial Institutions and International Organizations).
- Translation of original texts of scientific interest
- Watching TED talks on Hackers, Electronic Games, Mathematics, IT, and similar topics
- Translation
- Scientific terminology

After the successful completion of the course the students:
- understand and process texts and terminology of academic and professional context
- Write summaries of extended texts
- Manage oral discourse, deliver public speeches, or lectures and present oral texts of interdisciplinary content (including Informatics)
- translate to and from English specific terminology through scientific articles and texts
- identify and utilize fundamental theories and empirical data through a variety of bibliographic databases

Mormori Pelagia

French VI

Course Code
Course Type Foreign Language
Track
Teaching Hours 4 Theory
ECTS: 3

• Vocabulary specialized in Informatics.
• Translation of specialized texts to and from French.
• Human or Machine Translation of texts referring to finding a parking spot, mobile services architecture over the internet, technology of incorporated computational systems, network-based information systems, intelligent human-computer communication technologies, decision support systems, etc.

Upon successful completion of the course students are expected to:
• Have an exceptional knowledge of the French language in written and oral form.
• Compose specialized text.
• Translate text of general and specialized content to and from French.
• Comprehend scientific articles.
• Collect information from such sources and incorporate it in the scientific paper they are expected to present.
• Know basic functions and capabilities of software for machine translation.
• Be able to translate text concerning the scientific field of Informatics.

4ος/Zeas
+302104142176