Description of the course
The course is an introduction to Operating Systems concepts. The course develops understanding on design and implementation issues of operating systems. Students develop knowledge on operating system components, their function, design and implementation. Concepts discussed include process management, process synchronization, memory management, storage management, file systems, security and management.
Description of the participants
This is a compulsory course for Software Engineering, Computer Science and Information Technology students. The course is offered in the 2nd year of studies in the Department of Computer Science, ISRA University, Hyderabad Pakistan. In the July 2022 semester the course is attended by 39 students.
Description of gamified design thinking activities
Students were challenged to implement different operating system tasks / processes as small projects. These activities were carried out in groups of students during classes and practical lab hours throughout the semester. Students were asked to choose any OS process/problem to work on.
Step 1. Problem discovery.
Students were challenged to research a problem area of their interest and to select an activity for implementation in the area of operating systems management. For example, one group opted to work on concurrency in C++ programs; students were challenged to discover whether there was any possibility to execute two programs concurrently in a given scenario. Another group chose to implement a file copy command in the command-line interface.
Step 2. Problem re-definition.
Students were challenged to re-define the problem, namely operating system process, they opted to implement in the problem discovery phase. They were asked to observe different operating systems including Windows®, Linux® and Android® with reference to their problem. They were asked to re-define and document the problem in their own words.
Step 3. Ideation.
Students were challenged to research and synthesize solutions to their well-defined problems. For example, in case of concurrency implementation students were challenged to find out which system calls can be used for such tasks and how in C++ those system calls can be integrated into a program. Further, they were asked to develop algorithms for solving the problem in focus as per definition requirements.
Step 4. Prototyping.
Students developed a model prototype that constituted an implementation of the algorithms they defined in the ideation phase by using library interfaces wherever required. These prototypes implemented operating system processes, such as concurrency, file copying and kernel module development for Linux®.