PBL in Operating Systems course, NUCES

Course overview

The course addresses operating system design and implementation. Major topics covered include process management, thread management, process synchronization, deadlock management, memory management, file management, and more. This is a programming intensive course and involves implementation and use of system calls, multithreaded applications, memory management simulation, and scheduling with an emphasis on synchronization issues.

The course objectives are to:

  • Describe, discuss, and analyse services provided by the modern operating systems.
  • Build understanding and develop capacity on designing and implanting solutions that deploy concepts on processes and threads.
  • Compare and contrast commonly used scheduling tasks in operating systems, analyse synchronization issues, and implement synchronization mechanisms such as semaphores, monitors, and others.
  • Build understanding and develop capacity on deploying operating system concepts related to virtualization.
  • Build understanding on operating system resource management, dead lock management, and memory management techniques.

Participants in piloting 

This course targets undergraduate students in the Faculty of Computer Science. Approximately 250 students were enrolled in five sessions that were delivered in the spring of the 2019 – 2020 academic year. Most of the participants were 4th semester, 2nd year, students enrolled in the Bachelor of Science in Computer Science Program. The course is mandatory in the Master’s program

Timeframe

Spring 2019

Use of ALIEN services and tools

The course deployed active learning methodologies in the context of project work. Students implemented hands-on exercises that focused on shell scripting, process creation and handling, system call execution, inter-process communication, signal handling, threading for parallel processing, and synchronization.

Student evaluation took place through problem-based learning approaches that integrated laboratory work, practical quizzes, and a project. Each student submitted a written report of typically 8 pages and delivered a 15 minute presentation. Students were evaluated on technical content, completeness, and accuracy of their work.