Include a brief summary of the course topics and requirements, the general format of the course, and the methods of evaluation. == Skills and knowledge students should have prior to beginning the course: == * Class designed for students majoring in Computer Science or in areas having a strong emphasis in Computer Science. Sound knowledge of data structures and C pogramming. == Course Topics: == * Structure of a process: address space, registers, program counter and the stack. * Asynchronous activity: hardware and software interrupts, service routines. * Multiprogramming: programming for concurrency, process and thread, shared data, race conditions, critical sections and tools/techniques for multiprogramming such as mutual exclusion, semaphores and strict message passing. * Memory management: memory allocation, stack, heap, virtual memory. * File systems: file organization and interfacing with secondary storage. * The operating system kernel: internals and interfacing via system calls. * Distributed computing: communication, client/server model, remote procedure calls. == Course Format: == * Lecture format: in class lecture * Online materials location and format: moodle * Lab or tutorial format and expectations: in class labs == Method of evaluation: == * Number of Assignments: 3 * Number of Graded Labs: 0 * Number of Quizzes: 0 * Formal Midterm? yes * Course project? no * Final Exam? yes * Group work? no * mostly programming assignments? yes * Written documents? readme files in assignment submission