This course covers information representations, x86 assembly, buffer overflow attacks, memory hierarchies, caches, virtual memory, out-of-order execution, along with compilation and system software concepts such as linking and heap management.
The goal is to improve your understanding of what a computer does to execute a program, improving your ability as a programmer.
This course will also serve as a basis for CSCI 350 (Operating Systems), CSCI 450 (Computer Networks), CSCI 457 (Computer Systems Organization), EE 451 (Parallel and Distributed Computation)