System Programming
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
