CS240
Foundations of Computer Systems with Laboratory

This course examines how computers run programs, introducing key software and hardware abstractions and implementations between programming languages and transistors. The course traces representation and translation of data and programs through three broad topics in computer systems: computer hardware implementation, including digital logic, computer arithmetic, and machine organization; the hardware-software interface, including instruction set architecture, assembly code, and the C programming language; and abstractions for practical systems, including the physical memory hierarchy, the operating system process model, virtual memory, and memory management. Students complete extensive hands-on projects in hardware and software systems. Students are required to attend one three-hour laboratory weekly.

Units: 1.25

Max Enrollment: 24

Prerequisites: (CS 230 or CS 230P or CS 230X) or permission of the instructor.

Distribution Requirements: LAB - Natural and Physical Sciences Laboratory; MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: This course satisfies the laboratory requirement.