Περισσότερα...

- THE HOU
- ADMINISTRATION
- PRESIDENT
- VICE – PRESIDENTS
- DIRECTORATE OF ADMINISTRATIVE SERVICES
- ADMINISTRATIVE SERVICES – DEPARTMENTS
- Library
- Department of Public & International Relations
- Department of Academic Instruments
- Department of Facilities & Execution of Wokrs
- Department of Special Account for Research Funds
- Department of Education
- Department of Student Registry
- Department of Economic Affairs
- Personnel Department
- Branches

- ADMINISTRATIVE STAFF

- EDUCATION
- SCHOOLS
- STUDY PROGRAMMES
- STUDY INFORMATION
- REGISTRATIONS
- Training & lifelong learning

- RESEARCH
- ANNOUNCEMENTS
- CONTACT
- Student’s Advocate
- President and Vice Presidents
- Directorate of Administrative Services
- Faculty members
- HOU Departments and Services
- Administrative staff
- Study Programme Secretariats
- Office of Strategic Planning and Development
- Centre for Continuing Education and Lifelong Learning (CCE/KEDIVIM) of HOU)
- Educational Content, Methodology and Technology Laboratory (e-CoMeT Lab)
- Career Office
- Quality Assurance Unit (MODIP)
- Counseling & Psychological Support
- Internal Evaluation and Training Unit (MEAE)
- Branches
- Complaint Form
- Declaration of Accessibility

- THE HOU
- ADMINISTRATION
- PRESIDENT
- VICE – PRESIDENTS
- DIRECTORATE OF ADMINISTRATIVE SERVICES
- ADMINISTRATIVE SERVICES – DEPARTMENTS
- Library
- Department of Public & International Relations
- Department of Academic Instruments
- Department of Facilities & Execution of Wokrs
- Department of Special Account for Research Funds
- Department of Education
- Department of Student Registry
- Department of Economic Affairs
- Personnel Department
- Branches

- ADMINISTRATIVE STAFF

- EDUCATION
- SCHOOLS
- STUDY PROGRAMMES
- STUDY INFORMATION
- REGISTRATIONS
- Training & lifelong learning

- RESEARCH
- ANNOUNCEMENTS
- CONTACT
- Student’s Advocate
- President and Vice Presidents
- Directorate of Administrative Services
- Faculty members
- HOU Departments and Services
- Administrative staff
- Study Programme Secretariats
- Office of Strategic Planning and Development
- Centre for Continuing Education and Lifelong Learning (CCE/KEDIVIM) of HOU)
- Educational Content, Methodology and Technology Laboratory (e-CoMeT Lab)
- Career Office
- Quality Assurance Unit (MODIP)
- Counseling & Psychological Support
- Internal Evaluation and Training Unit (MEAE)
- Branches
- Complaint Form
- Declaration of Accessibility

Περισσότερα...

**Module code: **PLIPRO

**ECTS Credit Points: **6

**Module Type: **Compulsory

**Unit characterization: **Labotatory

**Year:** 1^{st}

**Language: **Greek

**Module General description: **The course aims to give students a detailed and practical introduction to basic concepts of programming and software development through a modern high-level programming language (Python). Specifically, it aims to introduce concepts such as variables, expressions, control flow, complex data structures and file processing, permanent data storage.

The laboratory consists of mandatory laboratory exercises, which are an important part of the course. In the framework of laboratory exercises, there will be guided analysis and solution of real life problems from various fields of human activity that include data management and storage, development of appropriate interaction with the user and data extraction from the internet.

**Learning Outcomes: **

- a) Upon successful completion of the course module, the students will understand:

- the structure of a program in Python programming language
- the concepts of logical and syntactic errors, as well as debugging process
- the operation of decision commands in the Python programming language
- the logical operators and logical operations of the Python programming language
- the basic data types of the Python programming language
- the functionality of data structures: list, stack, queue, dictionary and tuples
- the basic concepts of object-oriented programming
- the basic concepts of event driven programming

- b) Upon successful completion of the course module, students will understand:

- the differences between iteration loops in python programming language (for, while)
- how to declare functions in the python programming language, and how to return a value (or not)
- the concept of the recursive functions, as well as the advantages / disadvantages over the iterative functions (with loop)
- the concept of modular programming and the step-by-step incremental refinement for designing their programs
- the difference between mandatory and optional function parameters
- string management
- the concept of object-oriented programming using classes and objects
- the concept of inheritance and polymorphism
- the methodology of event driven programming

- c) Upon successful completion of the course module, the students will be able to:

- describe their solutions in computational steps in the Python programming language
- use modern data structures such as tuples, sets, sequences, dictionaries and lists.
- use and modify existing programs in Python (scripts and functions).
- use Python programming environments with an emphasis on the use of Anaconda – Spyder – Jupyter Notebooks.
- use Python csv, json, pickle libraries for file management
- use Python’s os, os.path libraries that allow interaction with operating system, the creation and deletion of folders, and display their contents.
- use the Python tkinter library for graphical interface design
- use Python sqlite3 library to manage databases
- use the Python pandas library for data management and analysis
- use Python NumPy library for scientific computations with the available implementations of N-dimensional arrays and functions for linear algebra problems
- use the Python matplotlib library to create high quality graphical representations
- use Python Scipy library for computations with the implemented function for probability and statistics problems
- use Python SymPy library for symbolic computations
- debug programs with recurring syntax or logical errors

- d) Upon successful completion of the course module, the students will be able to:

- select the appropriate data structures and variables for the basic functions of their programs
- implement programs that use the appropriate data structures (lists, stacks, queues, dictionaries, tuples)
- implement programs using object-oriented programming
- optimize components of their programs in order to increase efficiency
- implement a database in a modern relational database management system and use well-known query language (SQL) for efficient organization, management and retrieval of data.
- be able to draw useful conclusions using data analysis
- have a good background in order to attend more advanced courses in programming.

Upon completion of the course module the student should have the following learning outcomes as knowledge and skills:

- To know the principles of programming, to understand how a problem can be solved with computer programming.
- Using multiple levels of abstraction and selecting appropriate data structures to develop a program for solving a real problem that highlights the usefulness of information technology in dealing with social problems.
- To understand the different programming styles (procedural, object-oriented, functional), to be able to choose an appropriate programming style, to produce the desired outputs to specific inputs, to check the correctness of components of a program and to produce documentation of the program.
- Be able to link a program to a database and gain experience with the event driven programming.
- Be able to use available libraries for data analysis and scientific computations, machine learning, etc.

**Teaching Method:** Distance education with five Group Counseling Meetings during the academic year on weekends.

**Evaluation:** Elaboration of written assignments during the academic year. The average mark of the written assignments contributes by 30% to the final mark. The programming project, which haw the role of Final Examinations, contributes by 70% to the final mark.

**Final and Repeat Exams:** TU PLIPRO does not have written Final and Repeat Exams. The students are examined orally in a Group Assignment (GA) in the form of a programming project that they are asked to conduct. The topic of the GA is announced at the end of the 18th week. In order to participate in the GA and in its oral examination students must have enrolled in the TU PLIPRO and have fulfilled their contractual obligations regarding the Written Assignments (WAs) as described previously. In the event that a student enrolls in the TU but does not fulfill his/her contractual obligations, he/she has the right to re-enroll in TU (in the following academic year) but with the same financial and educational obligations. The student who re-enrolls in the TU having fulfilled his/her contractual obligations regarding the WAs, does not redo the WAs, but joins a group for a new GA.

During the oral examination, the Advisor-Professor grades the student’s performance in the GA, taking into account the final report and the student’s acquired general knowledge from the TU. Indicatively, the following are evaluated:

- Completeness of the solution
- Quality and completeness of the report
- Code quality
- Answering questions during the oral exam

The GA is graded by the Advisor-Professor in the range 0-10, separately for each member of the group. It is not necessary that all members of the same group get the same grade. The grade is registered as “Final Examination Grade” in the “Electronic Spaces for the Educational Process” Service of the HOU (http://study.eap.gr/) and contributes by 70% to the final grade of the TU, as long as it is passable (i.e. ≥5). If the student participates in the GA but does not manage to secure a passable grade (≥5) during the oral examination, then he/she has the opportunity to be re-examined in the same way (orally), in the same academic year. This grade is registered as “Repeat Exam Grade” in the HOU “Electronic Spaces for the Educational Process” Service (http://study.eap.gr/).

**Final Marking**: The average of the grades of the four (4) written assignments contributes by 30% to the final TU grade, as long as the grade of the final and/or repeat oral examination of the GA is passable (≥5). The grade of the final and/or repeat oral exam of the GA contributes by 70% to the final grade of the TU, as long as it is passable (≥5). If the grade of the final oral examination is not passable, then the student has the opportunity to be re-examined once more (again orally) during the same academic year. If the re-examination grade is not passable either, then the student does not successfully complete the TU but has the right to re-enroll in the following academic year.

**Module code:** PLI10

**ECTS Credit Points: **18

**Module Type: **Compulsory

**Year:** 1^{st}

**Language: **Greek

**General Description: **The main objective of the module is to acquaint the student with the basic principles of Computer Science and information management, to gain basic knowledge of problem solving, techniques, tools and structured programming languages, as well as program development principles. Also, the aim is to acquaint knowledge in the use of simple and complex data structures and in the management of information systems, in order to be able to follow the evolutionary course of technology, informatics and their application, now and in the future.

**Learning Outcomes:**

__VOLUME 1: INTRODUCTION TO COMPUTER SCIENCE __

**a) Knowledge**

Upon successful completion of the study of the first volume, students will know:

- the historic evolution of computers and informatics
- the basic subjects of Informatics and its applications
- the computer structure as well as the functionality of its subsystems
- how to store and represent data and information on a computer
- the basic numbering systems used in informatics and their arithmetic operations
- the description of the basic logic gates and circuits
- the concepts of programming, algorithms and programming languages

**b) Understanding**

Upon successful completion of the study of the first volume, students will understand:

- the ways of storing, transmitting and processing data
- operations in various arithmetic systems
- the process of representing logical – digital circuits
- algorithmic concepts as well as the concepts of application software and systems

**c) Application**

Upon successful completion of the study of the first volume, students will be able to:

- perform value conversions and arithmetic operations on different arithmetic systems
- design logical (digital) sequential circuits

**d) Analysis**

Upon successful completion of the study of the first volume, students will be able to:

- describe the various computer subsystems and their functionality
- to categorize the basic subjects of Informatics and its applications

**e) Synthesis**

Upon successful completion of the study of the first volume, students will be able to:

- compose logical circuits from gates

**f) Evaluation**

Upon successful completion of the study of the first volume, students will be able to:

- evaluate the impact of Informatics in respect to technology evolution and its implications in society

__VOLUME 2: PROGRAMMING TECHNIQUES __

**a) Knowledge**

Upon successful completion of the study of the second volume, students will know:

- the concept of algorithms, programming practices, program design principles, the criteria of programs’ suitability, as well as structured programming principles and programming structures
- advanced programming techniques, such as subroutines, recursion and regression
- software documentation issues and debugging

**b) Understanding**

Upon successful completion of the study of the second volume, students will understand:

- how to solve problems, how to design and develop programs
- the concepts of variable, data type, data structure, operator, parameter and expression
- the communication between the main program and its sub-programs
- how sorting and search algorithms work
- the range of variable declaration

**c) Application**

Upon successful completion of the study of the second volume, students will be able to:

- describe an algorithm through pseudocode
- design algorithms using basic programming practices and program design methodologies
- apply defensive programming

**d) Analysis**

Upon successful completion of the study of the second volume, students will be able to:

- recognize and categorize the main programming languages

**e) Synthesis**

- implement sorting and search algorithms
- design algorithms using arrays

**f) Evaluation**

Upon successful completion of the study of the second volume, students will be able to:

- select the proper programming structures for algorithmic implementations
- evaluate the efficiency of an algorithm

__VOLUME 3: DATA STRUCTURES __

**Knowledge**

- Upon successful completion of the study of the third volume, students will know:
- The concept of basic data structures, their implementation and its difference from an individual data type
- One-dimensional and two-dimensional arrays (concept, definition, memory representation, import, print, search-sort using various algorithms) have been already described in previous volumes
- The concept of “Dynamic Data Structure”, and more specifically:
- Single Linked Lists, Double Linked Lists, Circular Linked Lists, with several operations such as:
- (Enter-Delete values, Search-Sort by various algorithms)
- The concepts of Stack and Queue. Static vs Dynamic implementation. Import (enqueue) Export (dequeue)
- The concept of Tree as dynamic data structure
- In more detail: The concepts Binary Tree, Complete Binary Tree, Binary Search Tree, Heap Tree

**Static vs Dynamic representation. Techniques for accessing a binary tree **

**NOTE: **

- The concept of structure (struct) has been described in Volume 4 (Programming languages)
- The concept of simply linked list and its representation in memory has been described in Volume 4 (Programming languages)

**Understanding**

Upon successful completion of the study of the third volume, students will understand:

- The different ways in which a data structure can be represented in the main memory of the computer
- How important Data Structures are for the development effective algorithms and programs
- The appropriate way of selecting Data Structures in solving algorithmic problems
- Several sorting algorithms and the different ways of data searching using data structures
- Bubble Sort, Merge Sort, Selection Sort algorithms
- Linear Search, Binary Search

**Application**

Upon successful completion of the study of the third volume, students will be able to:

- Develop the above data structures in C programming language and implement them into C programs
- APPLICATIONS: To solve real-world problems-applications by adopting appropriate Data Structures (Dynamic or Static)
- Develop algorithmic applications with search and sorting techniques using appropriate data structures for each application
- Design variations and/or combinations of different sorting and search algorithms.
- Design modifications, extensions, or combinations of basic algorithms of operations in lists, stacks, queues, binary search trees, and heap tree

**Analysis**

Upon successful completion of the study of the third volume, students will be able to:

- Categorize data structures and their various applications
- Adopt an analytical way of thinking, meaning that:
- Will be able to analyze real-world problems and select the appropriate data structures for dealing with it
- Implement programs per use case that require the adoption of the proper data structures (table, list, stack, queue, trees)

**Synthesis**

Upon successful completion of the study of the third volume, students will be able to:

- Implement programs per use case that require the adoption of the proper data structures (table, list, stack, queue, trees)

**Ev****aluation**

- Upon successful completion of the study of the third volume, students will be able to:
- Design and implement efficient algorithms in parallel with the ability of selecting the appropriate data structures for real-world problem solving
- Be able to experiment with a data structure

__VOLUME 4: PROGRAMMING LANGUAGES __

**Knowledge**

Upon successful completion of the study of the fourth volume, students will know:

- The concept and basic principles of Structured Programming
- The basic types of C programming language variables, their use for data representation, as well as their declaration commands
- The need to enter comments into a C program
- The basic libraries of C Programming language
- The declaration of constants in C Programming language
- The structure of a C program, (as a case of a structured programming language)
- The concept “compiler”
- The concepts of logical and syntactic error
- The process of identifying logical and syntactic errors (debugging) using debugging or tracing methods
- The logical operators and logical operations of the C programming language
- Input and output commands scanf, printf and their use
- The implementation of all Algorithmic Selection Structures, in C programming language
- The implementation of all Algorithmic Repetition Structures, in C
- Static data structures. The concept of One/ Two Dimensional Table data stricture in C programming language
- The declaration, input and display of a Table’s elements in C
- The string concept
- Searching and Sorting Algorithms in C (Divide and conquer methods)
- Implementation of sorting and searching algorithms on Tables in C
- Working with memory – The concept of Pointer in C Language
- The concept of Function in C
- Developing C programs using functions.
- The concepts of formal and actual parameters
- Passing parameters’ values (pass by value)
- Pass by reference using pointers
- Development of relative examples-cases in C
- Use of recursive functions in C
- The “Struct”
- Using arrays of structures
- Understanding how to use structures and pointers to design and develop a simply linked list and to insert values (Conceptual – Theoretic discussion)
- Design og proper structures (struct) for various cases

**Understanding**

Upon successful completion of the study of the fourth volume, students will be able to understand:

- The differences between the three Algorithmic Repetition Structures in C programming language (for, while, do – while) as well as the selection criteria of each in the development of C programs.
- How to declare and develop functions in C programming language
- How to pass variables into functions and return their value in the main program
- Functions of void type in C
- The choice between using Static Data Structures (Tables) or Dynamic Data Structures (Simply Linked Lists)
- Dynamic memory management in C programming language
- The concept of the recursive functions, as well as the advantages / disadvantages over typical functions performing iterations (with loop execution)

**Application**

Upon successful completion of the study of the fourth volume, students will be able to:

- Develop solutions to real world or computational problems by developing programs in C
- Describe the operation as well as the results of a simple program in Cprogramming language
- Use a simple programming environment IDE (the Dev-C++ Integrated Development Environment – in Thematic Unit PLH-10
- Debug programs with logical and syntactic errors using traces or debuggers (especially in the cases of pointers).
- Take advantage of dynamic memory capabilities in C programming language to store dynamically changing data structures
- Pass parameters to functions using pointers

**Analysis**

Upon successful completion of the study of the fourth volume, students will be able to:

- Analyze a complex problem in small structural components, each of which will perform a specific function, based on the principles of structured programming
- Design and develop functions of appropriate type, based on the previous analysis
- Select the appropriate algorithmic – programming structures, as well as variables (static or dynamic memory) for the basic functions of their programs

**Synthesis**

Upon successful completion of the study of the fourth volume, students will be able to perform:

- Design a program in C programming language that will implement the solution of a real problem, using structured programming techniques

**Evaluation**

Upon successful completion of the study of the fourth volume, students will be able to perform:

- Provide an estimate of memory and runtime requirements for the functions they implement (either using a recursive or an iterative approach)
- Optimize their programming skills and techniques

**Subjects covered:**

- Introduction to Computer Science
- Programming Techniques
- Data Structures
- Programming Languages

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

The grade of the final or the resit exams shall be weighted at 70 % for the calculation of the final grade.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the four (4) assignments and (b) at least three (3) of the four (4) written assignments have been submitted.

**Module code:** PLI11

**ECTS Credit Points:** 18

**Module Type: **Compulsory

**Year:** 1^{st}

**Language: **Greek

**Prerequisite Module:** The choose of PLI11 requires the simultaneous choose or completion of PLI10

**General Description: **The main objective of the module is to introduce students to Informatics as an applied engineering science, that provides a set of documented principles, methodologies and techniques, with the help of which one can develop quality software products. Students will first be trained in the basic principles and concepts of Software Engineering, and then they will study specific issues and application areas of the methodologies it includes. Two very important and widespread application areas of Informatics are Operating Systems and Databases. Furthermore, students will study techniques for assessing the complexity and practical application of computer-based problem-solving algorithms. In addition to the transfer of knowledge and the acquisition of skills for the application of Software Engineering methodologies, the module aims at the adoption by students of a positive attitude towards the application of widespread principles and methodologies in software development. The ultimate goal is to improve the quality of software, develop a spirit of collaboration and meet the needs for which the software system was developed.

**Learning Outcomes: **

__SOFTWARE ENGINEERING I__

On successful completion of the study of this volume, students will be able to:

- Describe and explain the basic concepts of software engineering (software, tools, procedures, methodologies, life cycle etc.)
- Recognize the fundamental role of the basic principles of software engineering in the development of qualitative software and applications
- Describe the different phases in the development of a software application as well as the basic features of the most significant software life-cycle models.
- Identify the requirements of a software application and use the principles of structured analysis for their detailed specification.
- Use effectively the most known diagrammatic software representation models (data-flow diagrams, state transition diagrams etc.) for the requirements analysis of a software application.
- Design a software application following the principles of structured design (architectural design, interface design, detailed design of modules etc.).
- Explain and apply suitable fault avoidance techniques during the implementation of a software application in order to produce qualitative code without bugs.
- Describe the different stages and explain the different strategies followed during the testing process of a software module or system.

**DATABASES**

On successful completion of the study of this volume, students will be able to:

- Describe the basic concepts and models of databases as well as the main differences between a database and a database management system.
- Recognize the fundamental need of using database technology in any application that demands efficient organization and management of large-scale data.
- Explain the different methods for data organization and data access (records, indexes, b-trees etc.) in modern database systems.
- Distinguish between the different levels of database analysis and design (conceptual, logical and physical level).
- Use effectively the entity-relationship model for the conceptual design of a database.
- Perform the design of a database in the logical level with use of the relational model.
- Use effectively a theoretical query language (i.e. relational algebra) for data retrieval out of a relational database.
- Implement a database over a modern relational database management system and practically use a standard query language (i.e. SQL) for efficient data organization, management and retrieval.

**OPERATING SYSTEMS I**

On successful completion of the study of this volume, students will be able to:

- Describe the basic functions of an operating system.
- Recognize the fundamental role of operating systems in the efficiency of modern systems and applications due to their advanced multi-tasking and multi-user capabilities.
- Describe the different methods used for process scheduling in modern operating systems and explain their differences, advantages and disadvantages. .
- Explain the mutual exclusion problem and use effectively the basic mechanisms offered by a multitasking operating system for process synchronization and communication (semaphores etc.).
- Describe the different main-memory organization methods followed in modern computer systems and identify their advantages and disadvantages.
- Generalize the use of basic memory organization methods (i.e. paging, segmentation) to more complex hybrid memory schemes, which are mainly used in modern computer systems.
- Explain the function of virtual memory organization and distinguish between the different page replacement algorithms used in modern operating systems.
- Solve practical problems and exercises with regard to the above concepts and mechanisms of a modern operating system (process management, CPU scheduling, process synchronization and communication, memory management, virtual memory organization).

**Subjects covered:**

- Software engineering I
- Operating systems I
- Databases

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

The grade of the final or the resit exams shall be weighted at 70 % for the calculation of the final grade.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the four (4) assignments and (b) at least three (3) of the four (4) written assignments have been submitted.

**Module code:** PLI12

**ECTS Credit Points:** 18

**Module Type: **Compulsory

**Year:** 1^{st}

**Language: **Greek

**General Description: **After the completion of this course, students will be able to understand, interpret and describe fundamentals, while they will be able to solve various problems arising from Computer Science. Such a mathematical knowledge is necessary for two reasons: (a) students are familiarized with mathematics as the common language for all exact sciences, (b) students are trained on applying mathematical and computer science methods for solving practical problems, as described in the syllabus, and (c) enables the students to acquire mathematical thinking which is based on demonstration of scientific results that is very important in informatics.

**Learning Outcomes: **On successful completion of the study:

- Students will expand their knowledge of the three areas of advanced mathematics which compose the syllabus of this course .They will be able to understand basic principles and theorems of Linear Algebra, Calculus of single variable and Probability Theory.
- They will acquire the necessary skills for applying advanced mathematics in order to develop critical thinking and analytical problem solving ability.
- Moreover, students will comprehend and evaluate the logical sequence of advanced mathematics, in particular to the role and construction of mathematical proofs and solutions in various problems.

Finally, students will be able to compose and apply the methods described in the syllabus in order to solve efficiently interdisciplinary problems and expand their knowledge in mathematical applications, especially in such relevant to computer science.

**Subjects covered:**

- Linear Algebra
- Calculus of a single variable
- Probability Theory and Statistics

In addition, elements of computational platforms (Matlab, Mathematica, Octave etc.) are included

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

The grade of the final or the resit exams shall be weighted at 70 % for the calculation of the final grade.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the four (4) assignments and (b) at least three (3) of the four (4) written assignments have been submitted.

**Module code:** PLI20

**ECTS Credit Points: **18

**Module Type: **Compulsory

**Year:** 2nd

**Language: **Greek

**General Description: **The main objective of the module is to familiarize the students with the branches of Mathematics that are absolutely necessary for the foundations of Computer Science. The module includes Mathematical Logic, which is the main tool for formal inference and for the foundations of Computer Science. Moreover, the module includes some classic branches of Discrete Mathematics, which, in contrast to Continuous Mathematics, promote a particular way of thinking, very close to the way of thinking typically applied in Computer Science. The main proof technique in Discrete Mathematics is the Mathematical Induction, while the solution of discrete mathematical problems often requires problem-specific approaches. The structures and the objects of Discrete Mathematics are directly applied to the foundations of Computer Science, such as the fields of Theory of Algorithms and Data Structures. Finally, the module focuses (with its second textbook) on Graph Theory, which is the branch of Discrete Mathematics with most applications to Computer Science, since graphs provide very natural and meaningful models of many problems from different subject areas of Computer Science.

**Learning Outcomes: **Upon successful completion of the module, students will be able to:

- Understand the basic techniques of combinatorial enumeration and counting, the basic notions of propositional and first-order logic and the basic notions of graph theory.
- Understand the form of counting problems, the expressing potential and limitations of propositional and first-order types and some interesting graph properties.
- Solve counting problems of different forms, verify and prove properties of propositional and first-order types and solve graph theoretic problems, with emphasis on the use of mathematical induction.
- Model various problems as counting and/or graph problems.
- Use and apply basic algorithms and techniques in logic and graph theory.

**Subjects covered:**

- Discrete mathematics
- Graph theory
- Mathematical logic

**Teaching Method:** Distance education with six Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit five (5) written assignments during the academic year. The average grade of the five (5) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the five (5) assignments and (b) at least three (3) of the five (5) written assignments have been submitted.

**Module code**: PLI21

**ECTS Credit Points**: 18

**Module Type**: Compulsory

**Year**: 2^{nd}

**Language**: Greek

**General description**: The aim of this module is to introduce students to the hardware of computing systems. Specifically, starting from basic concepts of digital logic and logic circuits, the students study the fundamental building blocks of digital systems. They learn how to analyze and design combinational and sequential circuits. These circuits are the basic building elements of any computational system, the architecture of which is subsequently studied. The subjects that follow are the structure of the Central Processing Unit, the memory and that various ways of performing data Input/Output. Finally, the module deals with microprocessors, the structure and operation of two basic microprocessor families (Intel & Motorola) and the programming at the Assembly language level.

**Learning Outcomes:**

__VOLUME 1: DIGITAL DESIGN__

On successful completion of the study of the first volume, students will know:

- The difference between analog and digital signals.
- The advantages of digital against analog systems
- Binary representation of numbers (BCD, sign magnitude, 1’s complement, 2’ s complement) and the arithmetic operations between them
- The fundamentals of error detecting and correcting codes and as examples parity based codes Hamming code.
- To differentiate between combinational and sequential circuits.
- Various ways to specify logic functions (truth table, logic expression) and simplify them (e.g. using theorems of Boolean algebra, using Karnaugh map).
- Correspondence of simple logic functions to logic gates and the schematic representation of logic functions with logic gates (logic circuits).
- The functionality and the design of complex logic functions which are common in digital systems (comparators, adders, decoders, multiplexers).
- To design large combinational units using as building blocks less complex logical circuits.
- Several elementary sequential circuits (flip-flops) and their function.
- To analyze sequential circuits.
- To design sequential circuits.
- To design registers of different functionality (parallel input, shift register, multifunctional register)

__VOLUME 2: COMPUTER ARCITECTURE__

On successful completion of the study of the second volume, students will know:

- The components of a computer system and their operation.
- The meaning of architecture, structure, organization and implementation of a computer system.
- Methods of performance evaluation.
- The representation of information.
- The encoding of machine language instructions and the memory addressing modes.
- Central Processing Unit subunits (register file, shifters, arithmetic/logic unit, multiplier, divider) structure, organization and function.
- Memory units which are used for the implementation of the memory system and their features.
- Memory hierarchy.
- Cache memory (fetch policies, organization, placement and replacement policies and policies for updating higher levels of the memory hierarchy).
- Main memory organization and features (size, word length, bandwidth).
- Busses and their classification (dedicated, shared, CPU-memory busses, system busses, input/output busses, synchronous and asynchronous busses).
- Arbitration and arbitration types
- Input/output organization (programmed Input/Output, interrupts, direct memory access)

__VOLUME 3: MICROPROCESSORS__

On successful completion of the study of the third volume, students will know:

- The meaning of microprocessor, microcomputer and microcontroller.
- The evolution of the microprocessors.
- Features of several commercial microprocessors.
- Interfacing peripherals and main memory to microprocessors.
- Programming in assembly language (Intel,8085)

**Subjects covered:**

- Digital design I
- Computer architecture I
- Microprocessors

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI22

**ECTS Credit Points: **18

**Module Type: **Compulsory

**Year:** 2^{nd}

**Language: **Greek

**General description**: The purpose of the PLI22 course is to familiarize the student with the different computer networking techniques, as well as the means and ways of communication and transmission of information. The student will first get acquainted with the communication system and the operations that are taking place for the transmission of information. These include signal representation, modulation techniques and digitalization of analog signals (Volume B: Digital Communications). It will then introduce the student to the concepts of computer networks, protocols and their architectures (Volume C: Computer Networks I). Finally, the student will be introduced to Information Theory, Data Compression, Channel Capacity and Error-Correcting Codes, concepts and techniques necessary for reliable and secure data transmission (Volume A: Theory of Information and Coding).

**Learning Outcomes: **

__A) Information Theory & Error Control Coding__

- Introduction to the concept of information as a quantitative measure and its formulation as Shannon entropy.
- Calculate the entropy and amount of information of random events
- Create instantaneous source codes
- Model various discrete sources of information and apply various source coding algorithms in order to calculate the entropy and the redundancy of a source (with or without memory)
- Measure the capacity of various communication (noiseless or noisy) channels
- Measure the capacity of various communication (noiseless or noisy) channels
- Introduction to discrete channels and calculating their capacity.
- Understanding the mechanisms of detecting and correcting errors during the transmission of symbols over the channels.
- Introduction to linear codes for coding and decoding information
- Calculation of the performance of error-correcting codes.

__B) Digital Communications__

- Understand the concepts of discrete signals, Fourier transforms, analogue and digital modulation, and sampling
- Examine periodicity of a signal and calculate its period and frequency.
- Use Fourier transforms in order to find the frequencies of a signal.
- Apply various modulation schemes in order to shift the a signal from its baseband frequencies to a high frequency band.
- Calculate the required bandwidth of signals after modulation.
- Apply filters in order to manipulate a signal.
- Apply Nyqvist’s theorem in order to calculate the minimum sampling frequency.
- Explain how to convert analogue signals into digital signals.

__C) Computer Networks__

- Understanding layering principle in IP and OSI models and the role of each layer.
- Understanding the differences between packet-switching and circuit-switching and estimating their performance.
- Distinguish between different types of networks e.g Local area networks, Wide area networks and their corresponding technologies used e.gEthernet, Token–TokenRing802.11
- Apply CRC for coding and decoding bits
- Explain the use of framing in physical and link layers and how synchronisation is achieved betweensender and receiver
- Explain how key retransmission protocols like , ABP, Go–Back–N, και Selective Repeat.
- Calculate the throughput of these retransmission protocols and compare their performance
- Explain the architecture and protocol operations of 4 major Local area networksEthernet 802.3, 802.5, FDDI και11)
- Estimate and compare the performance of these four networks
- Identify three medium access mechanisms.

**Subjects covered:**

- Information Theory and Error Correction
- Digital Communication
- Computer Networks

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit five (5) written assignments during the academic year. The average grade of the five (5) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the five (5) assignments and (b) at least three (3) of the five (5) written assignments have been submitted.

**ECTS Credit Points**: 6

**Module Type**: Compulsory

**Year**: 2nd

**Language**: Greek

**Prerequisite Module:** The choice of PLI Lab I is allowed only, if the student has completed in previous years or will complete in the current year (simultaneously with it) at least the PLI21 module.

**General description**: The purpose of the PLI LAB I module, is the introduction of students in the hardware of the computer systems. Specifically, starting from the basic logic circuits we demonstrate the fundamental building blocks of digital systems. Students learn to design and implement both combinational and sequential circuits. These circuits are the basic building blocks of any computer system, the architecture and programming of which will be studied by students during the subsequent PLI LAB II module. The design will be based on the use of digital circuit design tools using schematic diagrams as well as the use of VHDL (VHSIC Hardware Description Language). Their implementation and experimentation with elementary systems will be done using a development card equipped with integrated FPGAs (Field Programmable Gate Array) and the appropriate flow of programming tools.

**Learning Outcomes **

Upon successful completion of the course, the student will be able to:

- To understand the basic technologies involved in the design, development and testing of digital circuits
- Use effectively modern digital circuit design and simulation software tools
- To design digital circuits using schematic diagrams
- Design digital circuits using the VHDL hardware description language (VHSIC Hardware Description Language).
- Design basic units of a processor using the VHDL language
- To distinguish the basic building blocks of FPGA components and their application for designing and implementing digital circuits
- Use modern FPGA programming tools and design flows for the design and development of digital circuits
- To implement digital circuits on development boards equipped with integrated FPGAs by using appropriate computer programming tools
- Implement, integrate and validate complex digital systems by interconnecting peripherals on development boards
- To use modern laboratory equipment (oscilloscopes, signal generators, multimeters, signal analyzers, etc.) for the analysis and functional control of digital systems.

**Subjects covered**:

- Digital design
- Computer architecture

**Evaluation: **The average of the grades of the two laboratory assignments is taken into account at 30% for the final grade. The grade of the second phase (laboratory examination) will be taken into account to the extent of 70% for the final grade.

The Laboratory Exercise takes place exclusively at the Digital Systems Laboratory in Patras and is completed within two (2) consecutive days.

**Module code:** PLI24

**ECTS Credit Points:** 18

**Module Type: **Compulsory

**Year:** 3^{rd}

**Language: **Greek

**General description**: The purpose of the module is to introduce to students with the concepts, tools, and processes related to “Software Design”. The main objectives of the module are, students:

- to get acquainted with concepts related to compilers and interpreters,
- to be able to build basic parts of a compiler,
- to learn with object-oriented technology and software analysis,
- to familiarise to the basic concepts of software development tools,
- to be introduced to basic software and software quality assurance and, finally
- to learn object-oriented programming through Java programming language.

**Learning Outcomes: **

*Part Α: Compilers*

Upon successful completion of the course, the student will be able:

- To explain what a compiler and what an interpreter is and describe the translation stages.
- To use regular expressions and automata for lexical analysis.
- To use context-free grammars and parse trees for syntactic analysis.
- To apply top-down and bottom-up techniques for syntactic analysis.
- To apply grammar transformation techniques to make a grammar suitable for recursive-descend parsing and LL (1) detection.
- To implement a lexical and syntax analyzer using the Java programming language.
- To design and use a symbol table.
- To explain and construct syntactically directed translation schemes.
- To describe intermediate code representations and optimization mechanisms.
- To describe principles of target code generation.

*Part B: Software Engineering II Object Oriented Analysis and Design*

Upon successful completion of the course, the student will be able:

- To describe and explain the basic concepts of object-oriented software technology (software, tools, processes, methodologies, life cycle, etc.).
- To know ICONIX object-oriented development methodology and, secondarily, Unified Process, as well as the phases, iterations, and activities it involves.
- To use ICONIX methodology for the development of an object-oriented software system.
- To develop analysis models by using UML.
- To develop the use case model and the corresponding diagrams.
- To develop the problem domain model.
- To design a software system
- To develop various UML diagrams such as: robustness diagrams, sequence diagrams, class diagrams, state diagrams, software components diagrams, software packages diagrams, and deployment diagrams.
- To develop the software using an object-oriented programming language.
- To conduct quality control (coupling, cohesion, etc.) of the software system.
- To prepare the necessary documentation artifacts.

*Part C: Programming Languages ΙΙ – Object Oriented Programming*

Upon successful completion of the course, the student will be able:

- To outline and describe the basic object-oriented programming concepts such as class, object, instance, inheritance relationship, aggregation relationship, etc.
- To describe the proper syntax of java data structures, types and operators.
- To implement classes, instances, methods and class relationships.
- To implement the principles data hiding, overriding and polymorphism.
- To write small and medium scale object-oriented applications.
- To read data files and use data bases for data storage.
- To implement exception handling mechanisms.
- To write multi-threaded applications exception handling mechanisms
- To create graphical user interfaces for applications using java libraries.

*Additional material: Software Project Panning -Object oriented methodologies*

Upon successful completion of the course, the student will be able:

- To describe and explain key concepts of project management (project, project management phases, organizational structures, project scope, scheduling, etc.).
- To understand the different structures used for organizing projects and teams.
- To create project plans including Gantt charts.
- To perform project network analysis using CPM and PERT project management techniques.
- To estimate the required project effort using the use case points.
- To manage resources and perform resource leveling for a project.
- To describe and apply cost estimation techniques for a project.
- To describe and explain the basic principles of software quality assurance and use quality metrics to measure software quality.
- To describe the concept of software risk in software development projects, and predict-manage risks that are likely to occur in a project.

**Subjects covered:**

- Compilers
- Software engineering II
- Programming languages II – Object oriented programming

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit five (5) written assignments during the academic year. The average grade of the five (5) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the five (5) assignments and (b) at least three (3) of the five (5) written assignments have been submitted.

**Module code:** PLI30

**ECTS Credit Points:** 18

**Module Type: **Compulsory

**Year:** 3^{rd}

**Language: **Greek

**General description**: The main objective of the module is to introduce students to the foundational principles of computation in Computer Science and to computational thinking. The goal is to learn fundamental algorithmic techniques for problem solving as well as the limits of computation. In particular, the module studies fundamental issues of computability that include the solvability or unsolvability of problems by computers, the estimation of computational resources that are required to solve a particular problem, the concept of algorithm, as well as the process of designing, analyzing, and implementing algorithms to the point that they can be useful in practice.

**Learning Outcomes: **

The PLI30 module consists of three distinct parts: 1) Algorithms and Complexity, 2) Theory of Computation, and 3) Automata and Formal Languages. The learning outcomes are distinguished into A) Knowledge and Understanding, B) Intellectual (Thinking) Skills, C) Analysis & Synthesis Skills.

*A) Knowledge and Understanding.*

On successful completion of the module, the students will be able to:

- Describe simple algorithms in pseudocode, explain its functionality, use asymptotic notation, determine the worst-case running time, formulate and solve recursive equations, describe the generic algorithmic methods of Divide-and-Conquer, Greediness and Dynamic Programming, as well as the graph searching techniques of Depth-First Search (DFS) and Breadth-First Search (BFS).
- Describe and define formally a Turing machine and its related concepts (Computation, Function, Grammar without limitations, M-recursive function), record the sequential steps of computation, define intuitively and formally the concept of an algorithm, define the halting problem, describe the universal machine Turing, refer some well-known intractable problems, describe the dove-tailing technique, define the DTIME and NTIME complexity classes as well as the classes P, NP, and EXP, describe the class NP via a polynomial verifier and a short certificate, describe the meaning of complete, tractable and hard problems, describe the role and use of reductions, define the classes of polynomial and exponential space complexity PSPACE and EXPSPACE, describe the space and time constructed functions, define and prove theorems of space and time hierarchy, define an approximation algorithm, describe the probabilistic Turing machine, and distinguish between the features of Monte Carlo and Las Vegas algorithms.
- Describe the concept of a language, its fundamental operations and what is a regular expression, state the characteristics of a finite state machine, describe the process of accepting an input string, define a finite automaton and explain what is the transition function, describe the language acceptable by a deterministic and a non-deterministic finite automaton, state the pumping lemma for regular languages and its use, define a context-free grammar and its variables, terminal symbols and derivations, state the basic features of a push down automaton (PA), describe the recognition process of an input string and explain its transition function, state the two types of string recognition and the corresponding languages that are acceptable by PAs, define a deterministic push down automaton, describe how a grammar can be transformed into an equivalent one that does not contain unitary rules ass well as state and explain how the pumping lemma is used for context-free grammars.

*Β**) Intellectual (Thinking) Skills. *

On successful completion of the module, the students will be able to:

- Use the asymptotic analysis in determining the complexity of iterative and recursive algorithms, determine exact asymptotic estimations for solving recursive equations, apply the “divide and conquer” method for solving problems of intermediate difficulty, use the method of dynamic programming and the greedy method to solve computational problems of mix difficulty, store a graph using the adjacency list and the adjacency matrix representation, apply the techniques of Depth-First Search (DFS) and Breadth-First Search (BFS for exploring a graph.
- Prove that the halting problem is undecidable using the diagonalization method, prove the important properties of Turing decidable and Turing recognizable languages, prove that the satisfiability (SAT) problem is NP-complete, prove that a problem is Turing decidable or undecidable, decide whether a given problem belongs to the class P, or NP, or NP-complete, prove the existence of PSPACE-complete problems through polynomial time reductions (problem QSAT), classify problems to the classes of polylogarithmic complexity.
- Prove the closure properties of regular languages under the operations of union, intersection, concatenation and Kleene star, prove that two expressions belong to the same language, explain why every finite language is regular, prove whether a given language is regular or not, transform a non-deterministic finite automaton to a finite one, prove whether a given language is context-free, design pushdown automata, apply the pumping Lemma for context-free languages.
*C) Analysis & Synthesis Skills*.

On successful completion of the module, the students will be able to:

- Select the most suitable algorithm for a given set of input instances, compare the exponent of two functions using asymptotic notation, prove that a greedy algorithm computes the optimal solution, use effectively the methods of Divide-and-Conquer, Greediness and Dynamic Programming to design new algorithms, reason about complicated algorithms and compute their complexity, synthesize or modify existing algorithms for problem solving.
- Design simple Turing machines that execute requested computations or recognize or decide a given language, distinguish between decidable and undecidable problems, relate the time complexity between variants of the Turing machine, synthesize effectively basic Turing machines in order to create more complex ones, identify the usefulness of the dove-tailing technique, reduce a given problem of known complexity to another and thus determining the complexity of the second problem, relate the two space complexity classes and the way they are correlated via the Savitch theorem.
- Identify the regular expression that corresponds to a language, justify why regular languages are closed under the operations of intersection, union, concatenation and Kleene star, construct a finite automaton for a given regular expression, construct the regular expression corresponding to the language of a given finite automaton, transform a non-deterministic finite automaton to a deterministic one that accepts the same language, explain when a certain context-free grammar is ambiguous, transform an automaton to a regular language and vice versa, justify the recognition of a context-free language by a pushdown automaton, develop algorithms for solving decision problems for regular and context free languages.

** Subjects covered:**

- Algorithms and complexity
- Theory of Computation
- Automata and formal languages

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit five (5) written assignments during the academic year. The average grade of the five (5) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code**: PLI31

**ECTS Credit Points**: 18

**Module Type**: Compulsory

**Year**: 3^{rd}

**Language**: Greek

**General description**: The main objective of the module is to impress upon students that computer science is an applied science that attempts to bridge the gap between man and machines. The module includes both foundations and applications of AI.

The tremendous advances of computing have not yet fully materialized into seamless communication with humans in natural language or into generic learning, though a wide array of applications has been fielded with success. Since Artificial Intelligence does aim to empower machines with traits or features of human intelligence, there is a strong incentive to study the techniques and the processes that allow a computer to display behaviour that resembles that of human beings, in a variety of contexts.

The module starts by covering fundamental concepts in state space representations and search for problem solving, constraints handling and adversarial search. It then moves on to aspects of knowledge representation and reasoning with first-order logic and complements the treatment with an introduction to logic programming (with Prolog). It then moves on to deal with learning, placing an emphasis on neural networks (but, also, covering decision trees and clustering), and then moves on to genetic/evolutionary algorithms and genetic programming, presenting them as a stochastic search technique that can be used for a variety of optimization problems. Finally, hybrid algorithms are presented that combine the last two technologies in order to alleviate their disadvantages and enforce their advantages.

Considering combinations of the above mentioned learning outcomes, after completing PLI31, a student will be able:

- to streamline problem solving by selecting a suitable representation for the state space and by applying fundamental search algorithms (exhaustive search, heuristic search)
- to represent knowledge in predicate logic and to convert it to a form that can be submitted to reasoning via resolution
- to solve a search/optimization problem using genetic algorithms, by suitably selecting a representation and some genetic operators
- to experimentally decide on the suitable architecture of a neural network to solve a classification/prediction problem
- to use the proper programming tools/environments for implementing all techniques mentioned above
- to combine representation, search, prediction and reasoning techniques towards developing systems that implement hybrid approaches

Besides the theoretical treatment, students are also introduced to a variety of systems and problems that can be used for a hands-on approach to the subject, ultimately aiming to show that any problem should be viewed as being suitable to be attacked from a variety of angles, and sometimes by a combination of techniques.

**Learning Outcomes**: After completing PLI31/INF31 a student will be able:

Knowledge

- Decide if a problem can be cast as a search problem.
- Describe the terminology of the machine learning domain.
- Identify artificial neural networks and decision trees as fundamental machine learning techniques.

Comprehension

- Understand simple Prolog programs and simple Prolog constructs.
- Be able to use recursion and lists in logic programming.
- Understand the differences between blind and informed search algorithms.

Application

- Write a Prolog program, submit queries and understand the results.
- Use natural language to explain sentences in propositional or predicate logic.
- Apply a search algorithm to a given search space.
- Apply machine learning algorithms to various data sets using the WEKA software.
- Apply the k-means algorithm to any data set.

Analysis

- Explain how a simple Prolog program works.
- Formulate search problems by defining state spaces, start and goal states, and state transition operators.
- Analyze a data set identifying features/attributes and classes, towards applying a machine learning algorithm.

Synthesis

- Describe a world using propositional and/or predicate logic and apply inferences.
- Use Prolog for logic programming tasks.
- Construct a heuristic function for a search problem.
- Construct an evaluation function for a two-player game.
- Construct a fitness function for a genetic algorithm.

Evaluation

- Judge whether a simple Prolog program is fit for purpose for a specific problem and be able to suggest simple corrective measures.
- Compare search algorithms in a set of problems.
- Evaluate a machine learning algorithm or a machine learning model on a data set by using suitable metrics.

**Subjects covered**:

- Artificial intelligence and expert systems
- Neural networks and applications
- Genetic algorithms and applications

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

The grade of the final or the resit exams shall be weighted at 70 % for the calculation of the final grade.

Students have the right to participate in the final/resit exams if (a) at least 50% of the potentially excellent grade has been obtained when adding the total of the four (4) assignments and (b) at least three (3) of the four (4) written assignments have been submitted.

**ECTS Credit Points**: 6

**Module Type**: Compulsory

**Year**: 3rd

**Language**: Greek

**Prerequisite Module:** The choice of PLI Lab II is allowed only, if the student has completed in previous years the PLI Lab I module.

**General description**: The purpose of the PLI Lab II module, which is a continuation of PLI Lab I, is to introduce the student to computer architecture by designing computer hardware using the VHDL hardware description language. The structure of the Central Processing Unit, the input and the input-output modes of data are the topics discussed in the first part of the section. Their implementation will be based on the design flow with integrated FPGA technologies. In the second part, students deal with Microprocessors and their programming in assembly language and higher level C language. The programming and implementation of respective systems will be based on commercially available microcontrollers and the development boards that include them.

**Learning Outcomes **

Upon successful completion of the course, the student will be able to:

- Understand the basic microprocessor design technologies
- Design simplified microprocessors using the high level VHDL hardware description language (VHSIC Hardware Description Language)
- Use effectively system design and simulation software tools to integrate and impement microprocessor systems on FPGAs
- Understand the basic principles of microprocessor programming
- Use effectively programming and simulation software tools of commercially available microprocessors
- Distinguish the basic building blocks of complex integrated microprocessor systems (System-on-Chip) using FPGA technology
- Use modern FPGA programming tools and design flows for microprocessor implementation and programming
- Use modern programming tools and flows of commercially available microcontrollers
- Implement microprocessor circuits on development boards equipped with integrated FPGAs by applying the appropriate computer programming tools

**Subjects covered:**

- Digital design
- Computer architecture

**Teaching Method:** Distance education with four Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **The average of the grades of the two laboratory assignments is taken into account at 30% for the final grade. The grade of the second phase (laboratory examination) will be taken into account to the extent of 70% for the final grade.

The Laboratory Exercise takes place exclusively at the Digital Systems Laboratory in Patras and is completed within two (2) consecutive days.

**Module code:** PLI23

**ECTS Credit Points:** 20

**Module Type: **Optional mandatory instead of PLI40, PLI42or PLI47

**Year:** 4^{th}

**Language: **Greek

**General description**: The main purpose of Module is to acquaint students with the basic conceptual and technological versions of telematics services and internet technologies, to become familiar with the programming languages and to get acquainted with the programming techniques of web applications, as well as to study the social impact of Information and Communications Technology (ICT). The main purpose of the module is to understand the basic concepts of telematics networks, and the estimation of transmitted information, to become familiar with the concepts of data transmission / packets transmission in broadband networks, telematics networks’ performance, with the concepts of information management taking into account the technical characteristics of telematics networks, the IP Addressing, to become familiar with the basic concepts of mobile telecommunication systems, the concepts of the offered traffic and the grade of service (GoS), the frequenciesreuse etc. It also aims to become familiar with Internet technologies, HTTP protocol and understand the basics of user interaction with Internet pages, to become familiar with the performance of the HTTP protocol, as well as with Internet protocol analysis tools. Also, the module’s main goal is the development of simple and advanced websites and portals, to be familiar with the programming languages and the programming techniques of web applications: HTML, CSS, Javascript, PHP, MySQL; to acquire the ability to judge and select the appropriate language / technology of web programming, to recognize the importance of authentication and authorized user access to a web application. Understanding and applying World Wide Web programming techniques using XML, DTD, DOM, XSL.

**Learning Outcomes: **On successful completion of the module, students will be able to:

- Explain and present the basic concepts of modern telematics networks and services.
- Analyze and design wireless and mobile (GSM, UMTSetc) networks.
- Explain the addressing schemes of the Internet.
- Distinguish the routing algorithms and protocols of the Internet.
- Associate telematics services with distributed object-oriented technology and service-oriented architecture.
- Utilize various web programming technologies and develop a web application.
- Gain the ability to judge and choose the appropriate language / technology of web programming.
- Recognize the importance of authenticating and authorizing users to access a World Wide Web application.
- Discuss the architecture of the World Wide Web (WWW).
- Compose methods of the HTTP protocol.
- Create simple WWW pages using HTML and CSS.
- Construct dynamic WWW applications by inserting client-side JavaScript) and server-side (PHP) scripts in HTML code.
- Integrate server-side scripting (PHP) with Data Bases (MySQL ).
- Design data descriptions in the WWW with XML.
- Transform XML descriptions by using XSL.
- Measure and evaluate the performance of Internet and WWW.
- Analyze caching and proxy techniques in the WWW.
- Apply web application programming techniques using XML, DTD, DOM, XSL.
- Explain searching and security mechanisms of the WWW.
- Discuss the increasing and diversifying social impact of Information and Communication Technologies.

**Subjects covered:**

- Telematics
- Internet – Web
- Computers and Society, Information society

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI32

**ECTS Credit Points:** 20

**Module Type: **Optional

**Year:** 4th

**Language: **Greek

**Module general description**: Τhe purpose of this module is to provide knowledge and techniques for decision making. It focuses on Modeling Continuous and Discrete Systemsand Simulation, on developing mathematical models and designing algorithmic techniques to resolve them, like the simplex method and the method of ellipsoids.

**Learning Outcomes**: The course has three discrete modules: 1) Modelling and Simulation 2) Foundations of Linear Programming 3) Game Theory

- Acquired knowledge

Upon successful completion of the course the students should be able to: – Make a distinction between emulation and simulation, whether some activity is deterministic or stochastic, formulate the equations that describe a physical system, construct a mathematical model – Recognize the components of a Petri net and model a system with these, recognize the various simulation languages, know the various random number generation numerical methods and statistically analyze simulation results. – Know the Simplex method for linear programming, the duality theory of linear programming, find the optimum solution through the dual program and perform sensititivy analysis, know the ellipsoid method and interior point methods as well as elements from Game Theory.

- Applied knowledge

Upon successful completion of the course the students should be able to: – Apply random number sampling techniques – Model physical problems as linear programming problems – Solve LP’s with Simplex method – Model a system with Petri nets – Solve Game theory equilibrium problems

**Subjects covered:**

- Modeling and simulation
- Linear programming
- Game theory

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code**: PLI35

**ECTS Credit Points**: 20

**Module Type**: Optional

**Year**: 4^{th}

**Language**: Greek

**Learning Outcomes: **

__Computer Security__

Upon completion of this course, students will be able to:

- Understand the terminology of this area
- Understand operating system security issues
- Develop and manage access control methods
- Protect an information system from malware attacks
- Understand and utilize risk assessment methods
- Develop an information system Security Plan
- Understand the legal aspects of personal data protection

__Network Security__

Upon completion of this course, students will be able to:

- Understand the terminology of this area
- Understand the OSI network security architecture
- Manage Internet security issues
- Develop security methods at the application level
- Manage selected application security systems
- Understand the legal aspects of protection of data communications

__Cryptography__

Upon completion of this course, students will be able to:

- Understand the terminology of this area
- Understand the essential mathematical background
- To understand the pros and cons of modern cryptosystems
- Manage a cryptosystem
- Utilize digital signatures
- Understand the legal aspects of using cryptosystems

**Subjects covered:**

- Computer security
- Network security
- Cryptography

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI36

**ECTS Credit Points:** 20

**Module Type: **Optional

**Year:** 4^{th}

**Language: **Greek

**Module general description**: PLI36 offers both basic and advanced knowledge of networks and services related to three main axes: The first axis focuses on the pure network part, as illustrated by the IP and TCP protocols. In this context, the offered knowledge covers Ethernet and operating structural principles, network interconnection with switches and routers, IP packet analysis, basic concepts of partitioning and addressing, IPv6 and IPsec protocols, processes and of basic routing algorithms (such as Bellman-Ford and Dijkstra), intra-sectoral (RIP and OSPF) and cross-sectoral routing (BGP). The second axis deals with network design issues starting with network types, basic architectures and corresponding design tools for loss and latency analysis, the M / M /, M / G / 1, and Erlang models, the basic graph algorithms, bridging, minimum shortest tree, shortest path, and flow capacity allocation. The third axis extends knowledge beyond IP networks to other types of networks and services, with an emphasis on photonics, wireless, mobile and satellite networks. Moreover, it covers broader issues related to the development tools for networks and telecommunications services. The above three axes are accompanied by practical training in appropriate open source tools that complement the theoretical knowledge.

**Learning Outcomes**: The first pilar refers to a generic networks knowledge consisting in:

- IP and TCP networking protocols
- Ethernet networks
- Interconnection of networks with switches and routers
- IP packet analysis focusing on the concepts of segmentation and addressing.
- IPv6 and IPsec protocols.
- Basic procedures and the basic routing algorithms (such as Bellman – Ford and Dijkstra), intra-sectoral (RIP and OSPF) and cross-sectoral routing (BGP).

Regarding the second pila of basic network design, the students:

- will know how to utilize the different types of networks, the basic network architectures and the corresponding design tools.
- will know the basic network analysis captured by M/M/, Μ/G/1 and Erlang models.
- will understand concepts such as bridging, minimum overlapping tree, shortest path and capacity allocation based on flows.

With the successful completion of the third axis, i.e., advance network beyond IP design and services, the students:

- will acquire knowledge about photonics, wireless, mobile and satellite networks.
- will gain knowledge about services application frameworks.

It is important to note that the three pillars of theoretical background is complemented by learning how to handle appropriate open source tools related with network design and analysis.

**Subjects covered:**

- Computer Networks II
- New directions in networks and services
- Network design issues

**Teaching Method**: Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit five (5) written assignments during the academic year. The average grade of the five (5) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI37

**ECTS Credit Points:** 20

**Module Type: **Optional

**Year:** 4^{th}

**Language: **Greek

**Module general description: **The purpose of this thematic area is to explore the issue of the integration of Information Communication Technologies in education. The main topics which analyze and discuss this thematic area consist of: computer-assisted learning, learning theories, educational software, open learning environments, computer science in education, teaching computer science, programming as a learning tool in education, educational software, tools for developing educational models, evaluation of educational software, prototyping, and quality control.

**Learning Outcomes:**

*PLI-37–I Didactics of Informatics*

- a) On successful completion of the study of the first volume students will know:

- the role of Informatics in Education
- the role of Informatics in Greek Education
- advanced concepts of Didactics of Informatics (learning structural and object oriented programming, psychology of programming)
- the role informatics a sa subject matter in education
- specific issues relative to the Didactics of Information focused on structural and object oriented programming

- b) On successful completion of the study of the first volume students will know:

- the role of Informatics as a cognitive discipline in alignment with the principles of pedagogy
- the pedagogical and didactical approaches and principles of Informatics and ICT at all levels of an education system

- c) On successful completion of the study of the first volume students will know:

- design learning activities and educational scenarios in order to teach informatics as a subject matter
- use appropriate educational software in the teaching of informatics
- apply and evaluate learning activities and educational scenarios into teach informatics as a subject matter

*PLI-37–II Informatics in Education*

- a) On successful completion of the study of the second volume students will know:

- the pedagogical models and approaches concerning the introduction of Information and Communication Technologies in Education
- the evolution of Informatics in Education as different phases
- the Learning Theories (behaviorism, constructivism, socio-cultural theories activity theory) and Information and Communication Technologies (ICT)
- the role of Information and Communication Technologies in teaching and learning (teaching machines, computer assisted learning, microworlds, multimedia and hypermedia learning, virtual reality, e-learning, simulations, modelling, Logo, educational robotics, edutainment).
- the learning theories and instructional strategies integrated with Information and Communication Technologies(ICT)
- the basic principles of communication and interaction between the humans and the computer
- the basic principles of design and evaluation of the education software

- b) On successful completion of the study of the second volume students will know:

- the concept of educational software and its usefulness in the educational process
- the concept of open-ended computing environment and its usefulness in the teaching and learning process
- theoretical issues and principles of educational software: principles of instructional design and evaluation of educational software

- c) On successful completion of the study of the second volume students will know:

- use appropriate educational software in teaching subjects in various learning areas in primary and secondary education
- use e-learning and distance learning environments in teaching and learning
- consider on the educational applications of the Information and Communications Technologies (ICT)
- design learning activities and educational scenarios for teaching and learning in the curricula of primary and secondary education
- design learning activities with e–learning environments

*PLI-37–III Design of Educational Software *

- a) On successful completion of the study of the third volume students will know:

- the principles of design educational software
- the principles of design interfaces and navigation, content and interaction
- the models for the development of education software
- the tools for the development of education software
- issues related to digitalization of sound, image and video
- issue related to documentation of software
- the principles applied for the evaluation of software
- the principles applied for the pedagogical use of the software
- the issue related to the technological evaluation of the software
- the basic principles related to the qualitative assurance of the educational software

- b) On successful completion of the study of the third volume students will know:

- the purpose of designing educational software
- the purpose of evaluating educational software
- the purpose of quality control and assurance of educational software

- c) On successful completion of the study of the third volume students will know:

- design multimedia materials for educational use
- design simple educational applications e–learning
- use e-learning tools to design distance learning applications
- develop distance and e-learning applications to teach informatics
- evaluate educational software
- evaluate e–learning environments
- evaluate distance learning applications
- apply quantitative and qualitative methods, technics and tools for the evaluation of educational software

**Subjects covered:**

- Didactics of ICT
- ICT and Education
- Design of Educational Software

**Teaching Method:** Distance education with five Contact Sessions held at weekends during the academic year.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code**: PLI40

**ECTS Credit Points:** 20

**Module Type: **Optional mandatory instead of PLI23, PLI42 or PLI47

**Year:** 4th

**Language: **Greek

**Module general description: **PLI40, as it is implemented during the current academic year, includes the development of a Graduate Thesis (G.T.), which deals with solving, at theoretical and applied level, one or more problems that are related to the sciences and technologies of Informatics and Telecommunications. Therefore, PLI40, within the framework of the thesis, provides the opportunity for synthesis and utilization of the knowledge acquired during the studies. The scientific responsibility for the development of the thesis is assigned to a three-member Judgment Committee (J.C.), one member of which is responsible for supervising and supporting the student (Supervisor), in accordance with the prevailing ethics and practice in Computer Science and respecting the principles of Open and Distance Education as well as of Adult Education.

**Learning Outcomes: **Upon completing this module, the students will be able to:

- Analyze a complex problem by identifying the basic skills and tools that are necessary for problem solving.
- Design the actions that lead to the solution of the problem, incorporating good practices and composing skills from different scientific fields.
- Implement, evaluate and improve the solution of the problem.
- Incorporate and apply a structured, module and resit methodology of problem solving.
- Have an easy going cooperation with the Supervisor and the members of the JC, by showing responsibility and building up communication skills.
- Write a concise Thesis that includes the analysis of the problem, the methodology used and the produced results.
- Defend publicly their Thesis, answering to relative questions.

For the successful realization of the Thesis, it is suggested to incorporate a four phase methodology: conception, processing, development, transition. At the end of each phase the student has to submit an essay to the JC and is evaluated by the Supervisor.

**Subjects covered:**

- Compilers
- Databases
- Operating systems

**Teaching Method:** Distance education including five Group Consultation Meetings (GCM) during the academic year on weekends.

**Evaluation: **Students are obliged to carry out 4 written assignments in Greek, during the academic year, which are the parts of the Thesis. The average grade of the assignments participates in forming the final grade of the Thesis by 30%, if the thesis is approved for final examination-presentation, and there is a pass grade in the final examination-presentation. The grade of the final examination-presentation, which takes place in front of a three-member committee in a special meeting, participates by the remaining 70% in forming the final grade.

**Module code:** PLI42

**ECTS Credit Points:** 20

**Module Type: **Optional mandatory instead of PLI23, PLI40, PLI47

**Year:** 4^{th}

**Language: **Greek

**General Module Description**: The aim of the course is to offer advanced knowledge and skills related to Software Engineering (Software Technology). In some aspects, it is a continuation of the course PLI11 and to a lesser extent of the course PLI24, especially with respect to the topics described in the book “Software Technology II”.

**Learning Outcomes:**

__FORMAL SPECIFICATIONS __

Upon successful completion of the module, the student will be able to:

- Describe and explain the term ‘software specifications’.
- Reference three categories of specifications depending on the degree of formality: formal, semi-formal and non formal.
- Indicate the major semi-formal specification production techniques.
- State the features of formal specifications’ languages
- Have background knowledge on the mathematical tools that are the basis for formal specifications’ languages, such as the propositional calculus, the predicate calculus, logic functions and the set theory.
- Explain and apply the axiomatic and algebraic specifications to describe a piece of software and its functions using equations, recurrence relations and regular expressions.
- Write and interpret Z schemata, as well as basic symbols and operators
- Specify using Z schemata the invariance or the change of a software module state, operations, error handling procedures and data manipulation functions.
- Create complex shapes using the Z notation language and specify complex software operations using functions, sequences and multi-sets.
- Give the formal definition of Petri nets and describe their basic concepts, rules and properties.
- Identify and design Petri nets of three different categories: treaty-event, position-transition and networks of discrete items.
- Use effectively tools for designing Petri nets and their practical application.
- Overturn myths about the application of formal specifications.
- Enumerate and apply the 10 commandments of proper practical application of formal techniques.

__SOFTWARE VERIFICATION AND VALIDATION __

Upon successful completion of the module, the student will be able to:

- Discern software verification and validation (V&V) activities and understand their position in the software lifecycle.
- Discern the static informal V&V techniques from the dynamic informal V&V techniques

Describe the static V&V techniques (static analysis, walkthrough, review, and more) and know their objectives, application points and the respective advantages of each technique. - Describe and explain the three phases of testing: unit testing, integration testing and validation testing.
- Explain and effectively apply the most important techniques for designing test cases for the functional testing of software (black box testing) such as: equivalence partitioning, boundary value analysis, cause-effect graph.
- Explain and effectively apply the most important techniques for designing test cases for the structural testing of software (white box testing) such as: basic path testing, loop testing.
- Explain and effectively apply the most important techniques for designing test cases for testing the interfaces between the components that make up a software system
- Know the most important issues for the practical application of various software testing techniques, such as top-down integration testing and bottom-up, alpha and beta testing, performance testing, recovery testing, and more.
- Explain and effectively apply the most important debugging methods following a successful testing phase in order to correct the identified bugs, such as brute force techniques, backtracking and techniques for locating the cause of the bug.
- Design and apply performance testing (load & stress testing) for multi-user applications and web applications in particular.

__SOFTWARE MANAGEMENT AND SOFTWARE QUALITY__

Upon successful completion of the module, the student will be able to:

- Know what software quality is and how it is assured.
- Discern the differences in the process of software quality assurance compared to other products.
- Know the prevalent models of software quality assurance and effectively implement the ISO9126 standard.
- Know what are the internal and external software quality metrics, which is the procedure of measuring them and to what extent they are interrelated.
- Know and effectively apply the Halstead metrics and interpret the meaning of the results.
- Know the fundamental problem and objectives of the Human Computer Interaction field, as well as the basic interaction modelling theories (such as the human processor model, the keystroke level model, Fitts’ Law, Hick-Hyman Law and Power Law of Practice).
- Know and effectively apply the most widely used evaluation methods (heuristic evaluation, cognitive walkthrough, user observation, questionnaires, performance measurement).
- Know and effectively apply the basic techniques for collecting, analysing and interpreting quantitative data in the context of the usability evaluation of an interactive application.
- Select the appropriate combination of usability evaluation methods depending on the type of the interactive application and the stage of its development.

**Subjects covered:**

- Formal specifications
- Software Validation and Verification
- Software management and software quality

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI44

**ECTS Credit Points:** 20

**Module Type: **Optional

**Year:** 4^{th}

**Language: **Greek

**General Description**: The main objective of the module is to introduce the students in the fields of signals and their processing, which are fundamental for a large number of areas involving acquisition, processing, storage and transmission of information. In volume A, the notions of signals and systems and the related fundamental mathematical tools are presented (Fourier and Laplace transforms). Volume B focuses on digital signal and image processing, the discrete Fourier transform and the z transform in order to conclude with the design of digital filters. Also, an introduction to digital images is presented. In volume C, the processing of digital images is further described by highlighting image enhancement, segmentation through an introduction to pattern recognition with Bayesian classification.

**Learning Outcomes:**

On successful completion of this module, students will be able to:

- Understand basic principles of signals and systems; of fundamental transforms (Fourier, Laplace and Z); of convolution, sampling, frequency response and of the basic principles of digital filters in one-dimensional signals and images.
- Interpret one- or multi-dimensional signals (speech, seismic, heart rate, etc), correctly implement the digitization of continuous-time signals, calculate the frequency content of signals and design basic filters for their processing.
- Apply simple digital image processing techniques, like image enhancement, image segmentation and image description
- Analyze and design continuous-time and discrete-time signal processing systems.

**Subjects covered:**

- Signals and systems
- Digital signal and image processing
- Image analysis and pattern recognition

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

**Module code:** PLI47

**ECTS Credit Points:** 20

**Module Type: **Optional mandatory instead of PLI23, PLI40 or PLI42

**Year:** 4^{th}

**Language: **Greek

**Module general description:** The module PLI47 focuses on educating students on distributed systems issues. More specifically, the main target is knowledge acquisition on distributed file systems, code programming using threads and processes, distributed processing and data analysis using Hadoop MapReduce and Spark.

**Learning Outcomes:**

Αfter completing PLI47 a student will be able:

- to analyze the way distributed systems are operating
- to use Big Data technologies for problem solving
- to analyze the operation of a distributed application
- to design and develop parallel applications using threads in the Java programming language
- to design and develop distributed applications using inter-process communication techniques in Java
- to design and develop distributed applications using the MapReduce programming model and Hadoop, using Java
- to design and develop distributed applications using the Spark distributed engine and the Scala programming language
- to analyze the way modern operating systems and database management systems are operating

**Subjects covered:**

- Distributed systems
- Operating systems II
- Distributed databases

**Teaching Method:** Distance education with five Group Counseling Meetings (OSS) during the academic year on weekends.

**Evaluation: **Students are assigned to submit four (4) written assignments during the academic year. The average grade of the four (4) written assignments, weighted at 30%, is taken into consideration for the calculation of the final grade. The grade of written assignments is activated only with a score equal to or above the pass level (≥5) in the final or resit exams.

- PLI PRO Programming
- PLI 10 Introduction to Informatics
- PLI 11 Software Engineering
- PLI 12 Mathematics for Informatics I
- PLI 20 Discrete Mathematics and Mathematical Logic
- PLI 21 Digital Systems
- PLI 22 Computer Network Fundamentals
- PLI LAB Digital Systems Laboratory Course I
- PLI 24 Software Design
- PLI 30 Foundations of Computer Science
- PLI 31 Artificial Intelligence – Applications
- PLI LAB IΙ Digital Systems Laboratory Course II
- PLI 23 Telematics, Internets and Society
- PLI 32 Linear Programming and Modeling
- PLI 35 Computer Systems Security
- PLI 36 Advanced Networks and Services
- PLI 37 Informatics and Education
- PLI 40 Project Development in Software Topics
- PLI 42 Special Issues in Software Engineering
- PLI 44 Signals and Image Processing
- PLI 47 Distributed Systems

Διαχείριση Συγκατάθεσης Cookies

Για να παρέχουμε την καλύτερη εμπειρία, χρησιμοποιούμε τεχνολογίες όπως cookies για την αποθήκευση ή/και την πρόσβαση σε πληροφορίες συσκευών. Η συγκατάθεση για τις εν λόγω τεχνολογίες θα μας επιτρέψει να επεξεργαστούμε δεδομένα προσωπικού χαρακτήρα, όπως συμπεριφορά περιήγησης ή μοναδικά αναγνωριστικά σε αυτόν τον ιστότοπο. Η μη συγκατάθεση ή η ανάκληση της συγκατάθεσης, μπορεί να επηρεάσει αρνητικά ορισμένες λειτουργίες και δυνατότητες.

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

Η τεχνική αποθήκευση ή πρόσβαση είναι απαραίτητη για τον νόμιμο σκοπό της αποθήκευσης προτιμήσεων που δεν ζητούνται από τον συνδρομητή ή τον χρήστη.

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

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