CS 240
CS 240 - Foundations of Computer Systems

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 permission of the instructor.

Instructor: Staff

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

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: This course satisfies the laboratory requirement.