This course is an introduction to computer architecture and low-level programming. It describes the hardware architecture of the modern computer and its key components such as the central processing unit (registers and the arithmetic and logic unit), cache structure, memory, and storage, and the basic functions of the operating system including process scheduling and memory management. The course teaches students how to write programs with an understanding of how high-level instructions are executed on the modern CPU, their equivalent low-level representations, the inherent limitations of the binary number systems, and the resulting errors in arithmetic computations. It also develops the concept of low-level programming using C and x86-64 as assembly languages.
Course Number
OCS35
Level
High School
Semester
Year-long
Credit per Semester
5.00
Subject
Prerequisites
Completion of Data Structures and Algorithms in Java (OCS25)