This course is the second part of a two semester sequence, Computer Systems I and II. The goal of this course is to bridge the gap between high-level programming and actual computer components, such as processors, caches, operating systems, compilers, linkers, and so on. This course will teach the way computer systems work from the low level device interrupts up to processes, threads, memory management, file systems and security. One main aspect of this course will be programming projects, which will enable hands-on learning while gaining valuable and practical experience in computer systems.

Note that this is a class on systems concepts, not on C programming. Most of the basic constructs such as if statements, loops, function syntax, switch case statements and operators are the same in C and Java, and you are expected to know them from CSC 1052.

Specific Outcomes