Groups of 2-4 students implement a substantive software system under the supervision of a staff member. The software may address a problem in any domain, but must meet minimum standards of design and functionality, appropriate for a capstone course of a B.Sc. degree.
This course introduces the fundamentals of operating system design and implementation. The major components of an operating system - process management and resource scheduling, concurrency control, memory management, device management, file management, security, and the interrelations between these components are presented. Consideration is given to how design decisions can affect system performance. This course covers the core body of knowledge in operating systems and other key aspects that the IEEE/ACM Computing Curricula recommends for computing graduates, and the content and learning outcomes are informed by these guidelines. It also includes practical experience with an operating system at the system administration and system programming levels.
The style of programming used is functional, and the language used is Python. The choice of programming style and language are intended to encourage students to think about solutions to problems in terms of the requirements of those solutions, rather than the mechanics of how to fulfill them. This entry level Computer Science and Information Technology leans more towards the functional- first approach although basic concepts of Object Oriented Programming are introduced. It is a first programming course and focuses attention on basic programming concepts (such as computation, function, operation) and structures (such as basic and structured data, procedures).