“This course provides the student with an understanding of the basic components of a general-purpose operating system. Topics include processes, process management, synchronization, input/output devices and their programming, interrupts, memory management, resource allocation, and an introduction to file systems. Students will be expected to design and implement a large piece of system software in the C programming language. Undergraduate credit may not be earned both for this course and for CS 502. Recommended background: CS 2303 or CS 2301, and CS 2011.”
CS 3013 focused more on select topics of low-level programming compared to CS 2303. Concepts such as threads and semaphores, pointers, memory management, and paging were heavily explored. Assignments complemented these fundamental concepts, the most notable was creating the Game of Life but with multithreading.