Systems Programming
Program Overview
University of Patras Programs
The University of Patras offers a range of programs for students.
Department
The department is divided into several sections, including:
- Presentation
- Location-Building
- Administration
Presentation
The presentation section includes:
- Studies
- Chair's Welcome
- Evaluation
- Comitees
- Ethics
- Special Interest Student Groups
Location-Building
The location-building section includes:
- Library
- Computer Center
Administration
The administration section includes:
- General Assembly
Education-Studies
The education-studies section is divided into:
- Undergraduate
- Postgraduate & Phd
- Labs
Undergraduate
The undergraduate section includes:
- New Students Registration
- Study Guide
- Compulsory Courses
- Elective Courses
- Transitional Provisions
- Academic Tutor
- Special Entrance Exams
- Academic Calendar
Postgraduate & Phd
The postgraduate and PhD section includes research activities.
Staff
The staff section is divided into:
- Academic Office
- Faculty
- Supporting Staff
Information
The information section includes:
- Announcements
- Useful Documents
- Research
- Divisions
Systems Programming Course
Course Details
- Course ID: CEID_25Y401
- Semester: 7, Winter
- Department: Division of Computer Software, Division of Hardware and Computer Architecture
- Professor: HADJIDOUKAS PANAGIOTIS, PAPADIMITRIOU GEORGIOS
- ECTS: 5
Course Description
The course examines the design principles and system-level aspects of parallel computing from the perspective of computer architecture and parallel processing. It covers techniques for developing efficient code on modern computing systems, leveraging the memory hierarchy, analyzing data dependencies, and using vector instructions, either directly or through the compiler.
Course Outline
The course includes the following thematic units:
- Basic performance concepts (FLOPs, MIPS, execution time)
- Processors: ILP, pipelines, superscalar, VLIW
- Processes and IPC (inter-process communication)
- Fundamental principles of parallelism (Amdahl's Law, Flynn's taxonomy)
- Use of threads and compiler optimizations
- Parallel programming with OpenMP (basic → advanced → tasks)
- SIMD and vectorization
- Caches and multicore systems (MIMD)
- Memory coherence and consistency (atomic, critical, MSI, etc.)
