The curriculum is comprised of three main components. The first is the core, which establishes the necessary common competence level. The second is a specialization, which builds upon the core.
Students choose a number of elective courses to satisfy their chosen specialization.
The third component of the curriculum is the project or thesis. This course introduces the basic concepts of multiprogramming, time-sharing and asynchronous processes. These concepts lead to interesting problems of synchronization, scheduling, memory management, information sharing and protection. This course emphasizes the design aspects of operating systems. Topics include naming, security, reliability, resource sharing and remote execution, and sharing information in a distributed system, such as electronic mail, file systems and databases.