DS-209 Operating Systems [C]

- Course Code DS-209 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 1st Semester Faculty Konstantinos Lambrinoudakis
- Apostolos Meliones
- A. Galani, C. Manousopoulos

The purpose of the course is to familiarize the students with the basic concepts of operating systems, their design principles, the themes they manage and the impact of their various variants on the operation of systems.

In this context, the learning outcomes of the course, after its successful completion, are that the students will be able:

- to understand the basic concepts of operating systems as well as the key areas / operating difficulties of a computational system that they are required to manage.
- to know the basic mechanisms that an operating system implements in order to serve multiple processes, to manage memory and manage the file system.
- to analyse, evaluate and justify alternative technologies / mechanisms of operating systems.

- Basic Concepts and History of Operating Systems.
- Operating Systems Structure.
- Processes: Process Properties and Implementation, Interprocess Communication, Process time sharing and scheduling.
- Thread Use and Implementation, Emerging threads, Conversion of a single thread code to Multi-Threaded code, Thread Schedule.
- Deadlocks: Ostrich’s Algorithm, Detection, Recovery, Avoidance, Prevention.
- Memory Management: Virtual Memory, Design and Implementation of paging Mechanisms, Page Replacement Algorithms, Segmentation.
- Input / Output: Input / Output Hardware and Software, Disks, Terminals.
- File Systems: Files and Directories, Implementation.

DS-014 Logic and Logic Programming [C]

- Course Code DS-014 Type of Course Core
- Theory/Lab Sessions 4 hours / 0 hours ECTS Credits 5
- Semester 1st Semester Faculty Apostolos Meliones

At the end of the course, students will be equipped with fundamental knowledge in first order mathematical logic, which allows the critical deepening in the scientific domain of mathematical logic, including higher order systems.

Students will be able to model and process real-life problems using tools of mathematical logic. The obtained skills include abilities such as the semantic analysis and precise modeling of real-life problems in the typical systems of the propositional and first order predicate logic, the use of proof systems and logic evaluation of arguments. Furthermore, students will be able to implement small scale expert system and artificial intelligence applications using the Prolog programming language.

The systematization of logic, which is strongly addressed by the course, will help students understand better and more deeply a plethora of scientific topics included in their program of studies and efficiently determine complex logic calculations both in the system hardware level and during application development in all practiced programming languages.

The content of the course is to introduce:

- the language and semantics of propositional and first order predicate logic
- the study of logic arguments
- the understanding and use of proof systems for propositional and predicate logic (tableaux, direct mathematical argumentation, equivalences, natural deduction, Beth analysis)
- the translation between logic and natural language
- the Prolog programming language for Artificial Intelligence applications

DS-006 Mathematical Analysis – Linear Algebra [C]

- Course Code DS-006 Type of Course Core
- Theory/Lab Sessions 4 hours / 2 hours ECTS Credits 7
- Semester 1st Semester Faculty Michael Filippakis

After successfully completing this course, students are expected to have acquired the basic knowledge of Mathematical Analysis regarding sequences, series, functions of one variable (differentiation, integration) and the numerical methods that are necessary to Computer Science. After successfully completing this course, students are expected to be familiar with the notion of the algebraic structure, and to be equipped with the necessary knowledge regarding matrices and determinants, as well as with their use for the solution of linear systems. Students are also expected to be familiar with the basic knowledge regarding the inner product, the characteristics values and vectors of matrices and their use for the diagonalization, the orthogonal diagonalization and the evaluation of the powers of matrices. The course directly supports most of the curriculum subjects and lessons: Note that during the lesson, specific examples of application are discussed in some of the above curricular subjects such as applications in telecommunication systems, cryptography, digital services such as e- learning, e-health. In conclusion, the students through the course process develop mathematical thinking and analyze, adapt their acquired knowledge to apply them to a variety of subjects in the field of study or the field of study, as well as to acquire new knowledge. In addition, they learn to solve complex or new problems in their scientific field of study by developing integrated as well as creative or innovative solutions and approaches while supporting their solutions and views in a methodical and scientific way. Finally, they learn to analyze and critically and responsibly choose ideas and information about those elements that concern them.

- Sequences. Series.
- Functions of One Variable.
- Differentiation.
- Iterative Methods for Solving Equations.
- Polynomial Approximation of Functions.
- Numerical Differentiation.
- Indefinite Integral. Differential Equations.
- Definite Integral.
- Algebraic Structures: Groups. Rings.
- Fields. Vector Spaces.
- Basic Linear Algebra: Matrices. Determinants. Linear Systems.
- Characteristics of a Matrix: Eigenvalues. Eigenvectors. Diagonalization of Matrices. Bilinear Forms.
- Inner Product: Orthonormalization. Gram-Schmidt Algorithm.
- Linear Transformation Matrices: Change of bases matrix. Matrix of a linear transformation.

DS-010 Probability Theory [C]

- Course Code DS-010 Type of Course Core
- Theory/Lab Sessions 4 hours / 1 hours ECTS Credits 6
- Semester 1st Semester Faculty Michael Filippakis

This course attempts to enhance the knowledge gained in the course Probability Theory explain the fundamental concepts and to provide an appropriate mathematical background that enables the students to study the fields of computers and computers networks. The course directly supports most of the curriculum subjects and lessons: Note that during the lesson, specific examples of application are discussed in some of the above curricular subjects such as applications in telecommunication systems, cryptography, digital services such as e- learning, e-health using new technologies with the help of programs such as Matlab, Octave, SPSS, R. After successfully attending this course, students are expected to have acquired the basic ones that are necessary in Information Technology. In conclusion, the students through the course process develop mathematical thinking and analyze, adapt their acquired knowledge to apply them to a variety of subjects in the field of study or the field of study, as well as to acquire new knowledge. In addition, they learn to solve complex or new problems in their scientific field of study by developing integrated as well as creative or innovative solutions and approaches while supporting their solutions and views in a methodical and scientific way. Finally, they learn to analyze and critically and responsibly choose ideas and information about those elements that concern them.

- Accidental experiment, samples and possibilities.
- Definitions of possibilities.
- Finite samples with results of equal possibilities.
- Provisions, combinations, binomial theorem.
- Committed probability.
- The multiplicative theorem.
- Total probability and Bayes theorem.
- Independent trials.
- Random variables, probability distributions.
- Parameters of distributions, interrelation of distribution accidental variables.
- One-dimensional distributions.
- Continuous distributions.
- Discrete distributions
- Generators of proneness; probabilities generators.
- Two-dimensional distributions.
- Marginal distributions distributions, Average-Committed distributions
- Transformations of random variables-Stochastic independence of two random variables.

DS-501 C Programming [C]

- Course Code DS-501 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 7
- Semester 1st Semester Faculty Dimosthenis Kyriazis

The goal of this course is to introduce basic programming principles using the C programming language. C is a principal programming language and a fundamental component of C++ and Java. With the completion of the course, the student will be in position to:

- understand and become familiar with the key concepts and principles of programming regardless of the programming language (e.g. methods / functions, variables, control loops, etc.).
- know the main characteristics of the programming language C, as a basic language that can be applied to different cases and which is independent from the underlying operating system.
- be able to implement code artefacts that provide solutions to a variety of problems by utilizing programming techniques and methods.

- Introduction.
- Algorithms
- Pseudo code
- Concepts of programming languages
- Main elements of a c program

- Data types, variables, operands and expressions.
- Types, declarations and variable initialization
- Type modifiers
- Type casting.

- Flow control.
- Control: if, if…else, for, while, do etc.
- Use of logical and relational operands

- Arrays and strings.
- Use, creation and management of single-dimension
- Multi-dimensional arrays, use, creation and management of strings

- Pointers.
- Definition and initialization
- Use of pointers

- Functions.
- Function prototypes
- Recursive functions
- Function arguments/parameters
- Passing arguments to the main() function

- Input/output functions.
- Characters and alphanumeric input / output
- Analytical presentation of get (), puts (), printf (), scanf ()

- File management.
- Introduction to streams
- Introduction to file management
- Analytical examination
- Input / output functions in files.

- Structures, unions and enumerations.
- Define structures
- Structure management
- Use of structures
- Indicators in structures
- Creating associations

Moreover, the EVDOXOS system is utilized to provide additional useful information to the students as well as exercises that respond to the corresponding thematic topics / sessions covered by the course.

More »