This course will introduce students to the fundamental concepts and techniques for Operating Systems Theory and Design. Students will learn the operating system concepts including implementation, processes, deadlocks, communication, multi-processing, multilevel memory management, file systems, protection, resource allocation, and scheduling. This course is designed to provide students an overview of operating systems principles, implementations, and methodologies. Prerequisite: CPT 200.