DS-006 Mathematical Analysis – Linear Algebra [C]

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

DS-005 Mathematical Logic [C]

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

To introduce the language and semantics of propositional and first order predicate logic. To introduce and demonstrate the natural deduction and tableaux proof systems.

- First-order predicate logic: syntax, variables, structures, informal and formal semantics.
- Propositional logic, logical connectives, adequacy of connectives, disjunctive and conjunctive normal forms, validity, satisfiability, semantic entailment.
- Proof systems: natural deduction and tableaux for propositional and predicate logic.

DS-010 Probability Theory [C]

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

The aim of the course is to introduce the area of probability theory and explain the fundamental concepts.

- 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.
- Generators of proneness; probabilities generators.

DS-201 Computer Architecture [C]

- Course Code DS-201 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 6
- Semester 1st Semester Faculty Konstantinos Lambrinoudakis
- E. L. Makri

The main objective of the course is the familiarization of the students with the binary logic, the digital design methodologies and the basic architectural characteristics and structure of a computer system.

- Digital systems history.
- Numerical systems: binary, octal, hexadecimal, conversions from one system to the other.
- Binary arithmetic operations, use of complements, binary codes, Logic Ggtes, Boolean algebra.
- Truth tables, Karnaugh charts, examples of logic circuits design, Introduction to the synchronous sequential circuits.
- Flip – Flops (D, T, RS και JK-type).
- Design of counters, registers and shift registers.
- Methodology for designing and analyzing synchronous sequential circuits.
- Structure, organization and operation of computer systems, Von Neumann architecture.
- Data representation (fixed and floating point formats), instruction sets.
- Organization and operation of the central processing unit, Control unit.
- Memory hierarchy, memory cell, addressing modes, design of random access memory, interconnecting the memory and the central processing unit.
- Virtual memory. Paging and segmentation, Cache memory.

DS-501 C Programming [C]

- Course Code DS-501 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 6
- 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. During the course the students become familiar with the concepts and principles of structured programming, and they gain the basic knowledge for the comprehension and easier learning of other programming languages in the sequel.

- 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: if, if…else, for, while, do etc. Use of logical and relational operands.
- Arrays and strings: use, creation and management of single-dimension and 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, file management.
- Structures, unions and enumerations.