CS314 Systems Programming
CS314 Systems Programming
Syllabus | International University of Sarajevo - Last Update on Mar 03, 2026
Computer Sciences and Engineering
Mohammed Saeed Jawad
Course Lecturer
Course Objectives
This course aims to provide students with a strong foundation in systems programming by exploring how software interacts with operating systems and computer hardware. The course focuses on low-level programming concepts, memory management, program execution, and operating system services using the C programming language in a Linux environment. Students will gain both theoretical understanding and practical skills in developing efficient, secure, and high-performance system-level applications.
Learning Outcomes
After successful completion of the course, the student will be able to:
Course Materials
Required Textbook
System Programming in Linux – Weiss (2025)
Additional Literature
1- Carlos Fenollosa, Understanding Linux Network Internals, 3rd Edition (2023)—No Starch Press. 2- Paul Orland, Linux for Developers: Jumpstart Your Linux Programming Skills, 2nd Edition (2021)—Addison-Wesley. 3- Björn Andrist & Erik Bakker, Mastering System Programming with C and Linux, 1st Edition (2022)—Packt PublishingTeaching Methods
1- Interactive lectures with system-level demonstrations
2- Live coding sessions and implementation walkthroughs Supervised laboratory programming exercises (Linux environment)
3- Problem-solving and debugging workshops 4- Small-scale system programming projects
4- Quizzes and formative assessments
5-Guided use of professional tools (GDB, Valgrind, Makefiles, profiling tools)
6-Peer discussion and code review sessions
Weekly Topics
| Week | Topic | Readings / References |
|---|---|---|
| 1 | Introduction to Systems Programming and Linux Environment (System programming concepts, role of OS, compilation process, development tools in Linux) | Weiss (2025), Ch.1–2 |
| 2 | Data Representation and Bitwise Operations (binary representation, integers, floating-point storage, endianess, bit manipulation in C) | Weiss (2025), Ch.3 |
| 3 | Machine-Level Programming and Assembly Basics (compilation pipeline, assembly overview, registers, instruction execution) | Weiss (2025), Ch.4 |
| 4 | Program Memory Layout (stack, heap, text segment, data segment, address space organization) | Weiss (2025), Ch.5 |
| 5 | File Systems and Low-Level File I/O (file descriptors, system calls, read/write operations) | Weiss (2025), Ch.6 |
| 6 | File Handling and Advanced I/O Operations (file permissions, buffering, file manipulation in Linux) | Weiss (2025), Ch.7 |
| 7 | Process Management (process concept, process creation using fork(), program execution using exec()) | Weiss (2025), Ch.8 |
| 8 | Signals and Process Control (signal handling, asynchronous events, process termination) | Weiss (2025), Ch.9 |
| 9 | Midterm Exam | All previous materials |
| 10 | Interprocess Communication – Pipes (pipe(), named pipes, communication between processes) | Weiss (2025), Ch.10 |
| 11 | Interprocess Communication – Message Queues and Shared Memory | Weiss (2025), Ch.11 |
| 12 | Multithreading Fundamentals (POSIX threads, thread creation and management) | Weiss (2025), Ch.12 |
| 13 | Thread Synchronization (mutexes, semaphores, race conditions, deadlocks) | Weiss (2025), Ch.13 |
| 14 | Memory Management and Debugging (dynamic memory allocation, memory leaks, debugging tools) | Weiss (2025), Ch.14 |
| 15 | Performance Optimization and System Programming Best Practices | Weiss (2025), Ch.15 |
Course Schedule (All Sections)
| Section | Type | Day 1 | Venue 1 | Day 2 | Venue 2 |
|---|---|---|---|---|---|
| CS314.1 | Course | Tuesday 12:00 - 14:50 | A F1.25 | - | - |
| CS314.1 | Tutorial | Friday 10:00 - 11:50 | B F2.14 | - | - |
Office Hours & Room
Assessment Methods and Criteria
Assessment Components
Final Exam
AI: Not AllowedAlignment with Learning Outcomes : LO1 LO2 LO3 LO4 LO5
Midterm Exam
AI: Not AllowedAlignment with Learning Outcomes : LO1 LO2 LO3
Quizzes
AI: Not AllowedAlignment with Learning Outcomes : LO1 LO2
Assignments
AI: Not AllowedAlignment with Learning Outcomes : LO2 LO3 LO4 LO5
IUS Grading System
| Grading Scale | IUS Grading System | IUS Coeff. | Letter (B&H) | Numerical (B&H) |
|---|---|---|---|---|
| 0 - 44 | F | 0 | F | 5 |
| 45 - 54 | E | 1 | ||
| 55 - 64 | C | 2 | E | 6 |
| 65 - 69 | C+ | 2.3 | D | 7 |
| 70 -74 | B- | 2.7 | ||
| 75 - 79 | B | 3 | C | 8 |
| 80 - 84 | B+ | 3.3 | ||
| 85 - 94 | A- | 3.7 | B | 9 |
| 95 - 100 | A | 4 | A | 10 |
Late Work Policy
Information about late submission policies will be shared during class and posted in this section. Please check back for official guidelines.
ECTS Credit Calculation
📚 Student Workload
This 6 ECTS credit course corresponds to 150 hours of total student workload, distributed as follows:
Lecture hours
42 hours ⏳ (14 week × 3 h)
Assignments
21 hours ⏳ (7 week × 3 h)
Active labs
28 hours ⏳ (14 week × 2 h)
Home study
28 hours ⏳ (14 week × 2 h)
In-term exam study
9 hours ⏳ (1 week × 9 h)
Final exam study
12 hours ⏳ (1 week × 12 h)
Quiz study
10 hours ⏳ (2 week × 5 h)
150 Total Workload Hours
6 ECTS Credits
Course Policies
Academic Integrity
All work submitted must be your own. Plagiarism, cheating, or any form of academic dishonesty will result in disciplinary action according to university policies. When in doubt about citation practices, consult the instructor.
Attendance Policy
Students are expected to adhere to the attendance requirements as outlined in the International University of Sarajevo Study Rules and Regulations. Excessive absences, whether excused or unexcused, may impact academic performance and eligibility for assessment. Mandatory sessions (e.g., labs, workshops) require attendance unless formally exempted. For detailed policies on absences, documentation, and penalties, please refer to the official university regulations.
Technology & AI Policy
Laptops/tablets may be used for note-taking only during lectures. Phones should be silenced and put away during all class sessions. Audio/video recording requires prior permission from the instructor.
Artificial Intelligence (AI) Usage: The use of AI tools (e.g., ChatGPT, Copilot, Gemini) varies by assessment component. Please refer to the AI usage indicator next to each assessment item in the Assessment Methods and Criteria section above. Submitting AI-generated content as your own work, where AI is not explicitly allowed, constitutes an academic integrity violation.
Communication Policy
All course-related communication should occur through official university channels (institutional email or SIS). Emails should include [CS314] in the subject line.
Academic Quality Assurance Policy
Course Academic Quality Assurance is achieved through Semester Student Survey. At the end of each academic year, the institution of higher education is obliged to evaluate work of the academic staff, or the success of realization of the curricula.
Learning Tips
Be prepared to contribute thoughtfully during class discussions, labs, or collaborative work. Active participation deepens understanding and encourages critical thinking.
Complete assigned readings or prep materials before class. Take notes, highlight key ideas, and jot down questions. Aim to grasp core concepts and their applications—not just facts.
Use course frameworks or methodologies to analyze problems, case studies, or projects. Begin early to allow time for reflection and refinement. Seek feedback to improve your work.
Don’t hesitate to reach out when something is unclear. Use office hours, discussion boards, or peer networks to clarify concepts and stay on track.
Syllabus Last Updated on Mar 03, 2026 | International University of Sarajevo
Print Syllabus
Referencing Curricula Print this page
| Course Code | Course Title | Weekly Hours* | ECTS | Weekly Class Schedule | ||||||
| T | P | |||||||||
| CS314 | Systems Programming | 3 | 2 | 6 | Tuesday 12:00 - 14:50 | |||||
| Prerequisite | None | It is a prerequisite to | - | |||||||
| Lecturer | Mohammed Saeed Jawad | Office Hours / Room / Phone | Currently not available |
|||||||
| msjawad@ius.edu.ba | ||||||||||
| Assistant | Assistant E-mail | |||||||||
| Course Objectives | This course aims to provide students with a strong foundation in systems programming by exploring how software interacts with operating systems and computer hardware. The course focuses on low-level programming concepts, memory management, program execution, and operating system services using the C programming language in a Linux environment. Students will gain both theoretical understanding and practical skills in developing efficient, secure, and high-performance system-level applications. | |||||||||
| Textbook | System Programming in Linux – Weiss (2025) | |||||||||
| Additional Literature |
|
|||||||||
| Learning Outcomes | After successful completion of the course, the student will be able to: | |||||||||
|
||||||||||
| Teaching Methods | 1- Interactive lectures with system-level demonstrations. 2- Live coding sessions and implementation walkthroughs Supervised laboratory programming exercises (Linux environment). 3- Problem-solving and debugging workshops 4- Small-scale system programming projects. 4- Quizzes and formative assessments. 5-Guided use of professional tools (GDB, Valgrind, Makefiles, profiling tools). 6-Peer discussion and code review sessions | |||||||||
| Teaching Method Delivery | Face-to-face | Teaching Method Delivery Notes | ||||||||
| WEEK | TOPIC | REFERENCE | ||||||||
| Week 1 | Introduction to Systems Programming and Linux Environment (System programming concepts, role of OS, compilation process, development tools in Linux) | Weiss (2025), Ch.1–2 | ||||||||
| Week 2 | Data Representation and Bitwise Operations (binary representation, integers, floating-point storage, endianess, bit manipulation in C) | Weiss (2025), Ch.3 | ||||||||
| Week 3 | Machine-Level Programming and Assembly Basics (compilation pipeline, assembly overview, registers, instruction execution) | Weiss (2025), Ch.4 | ||||||||
| Week 4 | Program Memory Layout (stack, heap, text segment, data segment, address space organization) | Weiss (2025), Ch.5 | ||||||||
| Week 5 | File Systems and Low-Level File I/O (file descriptors, system calls, read/write operations) | Weiss (2025), Ch.6 | ||||||||
| Week 6 | File Handling and Advanced I/O Operations (file permissions, buffering, file manipulation in Linux) | Weiss (2025), Ch.7 | ||||||||
| Week 7 | Process Management (process concept, process creation using fork(), program execution using exec()) | Weiss (2025), Ch.8 | ||||||||
| Week 8 | Signals and Process Control (signal handling, asynchronous events, process termination) | Weiss (2025), Ch.9 | ||||||||
| Week 9 | Midterm Exam | All previous materials | ||||||||
| Week 10 | Interprocess Communication – Pipes (pipe(), named pipes, communication between processes) | Weiss (2025), Ch.10 | ||||||||
| Week 11 | Interprocess Communication – Message Queues and Shared Memory | Weiss (2025), Ch.11 | ||||||||
| Week 12 | Multithreading Fundamentals (POSIX threads, thread creation and management) | Weiss (2025), Ch.12 | ||||||||
| Week 13 | Thread Synchronization (mutexes, semaphores, race conditions, deadlocks) | Weiss (2025), Ch.13 | ||||||||
| Week 14 | Memory Management and Debugging (dynamic memory allocation, memory leaks, debugging tools) | Weiss (2025), Ch.14 | ||||||||
| Week 15 | Performance Optimization and System Programming Best Practices | Weiss (2025), Ch.15 | ||||||||
| Assessment Methods and Criteria | Evaluation Tool | Quantity | Weight | Alignment with LOs | AI Usage |
| Final Exam | 1 | 40 | LO1, LO2, LO3, LO4, LO5 | Not Allowed | |
| Semester Evaluation Components | |||||
| Midterm Exam | 1 | 25 | LO1, LO2, LO3 | Not Allowed | |
| Quizzes | 2 | 15 | LO1, LO2 | Not Allowed | |
| Assignments | 7 | 20 | LO2, LO3, LO4, LO5 | Not Allowed | |
| *** ECTS Credit Calculation *** | |||||
| Activity | Hours | Weeks | Student Workload Hours | Activity | Hours | Weeks | Student Workload Hours | |||
| Lecture hours | 3 | 14 | 42 | Assignments | 3 | 7 | 21 | |||
| Active labs | 2 | 14 | 28 | Home study | 2 | 14 | 28 | |||
| In-term exam study | 9 | 1 | 9 | Final exam study | 12 | 1 | 12 | |||
| Quiz study | 5 | 2 | 10 | 0 | ||||||
| 0 | 0 | |||||||||
| Total Workload Hours = | 150 | |||||||||
| *T= Teaching, P= Practice | ECTS Credit = | 6 | ||||||||
| Course Academic Quality Assurance: Semester Student Survey | Last Update Date: 06/03/2026 | |||||||||
