Harokopio University
School: School of Digital Technology
Department: Informatics and Telematics
Program: Undergraduate Programme

System Programming

Semester: 6 ECTS: 5.0 Elective Erasmus

General

Code: ΕΠ02

Language: Greek

Delivery: Face-to-face

Prerequisites:

Workload

  • Lectures: 39.0 hours
  • Lab: 0.0 hours
  • Study: 86.0 hours
  • Project: 0.0 hours

Course Content

Concurrent programming, multi-threaded programming, Process and thread synchronization, Practical examples and common techniques, inter-process communication, shared memory, multicore systems, condition variables, practical examples in C, Concurrent programming in databases, Consistency models in SQL and NoSQL Databases, Fault Tolerance, advanced examples

Learning Outcomes

The purpose of the course is to familiarize students with the concepts and problems encountered when creating multi-threaded programs and what facilities the operating systems and higher level programming languages offer to mitigate these problems. Expected outcomes include:
- Understanding of problems encountered by concurrent access in common resources
- Ability to design and implement software based on concurrent programming principles
- Practical excercises on common techniques for guaranteeing fault tolerance and functional correctness
- Exploitation of offered operating system services for these purposes.

Skills

Retrieve, analyse and synthesise data and information, with the use of necessary technologies
Work in teams
Advance free, creative and causative thinking