Theory, design, implementation and analysis of low-resource computer operating systems for IoT applications. Through classroom lectures, homework, and projects, students learn the fundamentals of concurrency, process management, interprocess communication and synchronization, job scheduling algorithms, memory management, input-output devices, file systems, and real-time operating systems. Optional topics may include communications protocols and computer security.