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 CS 230P or CS 230X) and MATH 225, or permission of the instructor.

Instructor: Staff

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

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes: This course satisfies the laboratory requirement.

CS 240L
CS 240L - Lab: Foundations of Computer Systems

Accompanying required laboratory for CS 240.

The grading option chosen for the lecture (CS 240) - either Letter Grade or Credit/Non Credit - will apply to the lab as well; the final grade is a single unified grade for both lecture and lab and is based on the grading option you choose for the lecture.

Units: 0

Max Enrollment: 15

Prerequisites: None.

Instructor: Staff

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Spring

Notes: