Computer Systems Architecture

Fall 2025

General Information

Instructor: Nader Sehatbakhsh, Assistant Professor, UCLA
TAs: Fatemeh Arkannezhad (fatemeharkan [at] g [dot] ucla [dot] edu), Dao Xian (Samuel) Ding (dingdx [at] g [dot] ucla [dot] edu), and Justin Feng (jfeng10 [at] g [dot] ucla [dot] edu)
Lectures: Moore Hall 100, T-Th 12-1:50 PM
Office Hours: Tuesdays 2-3 PM (in-person) or by appointment* (Zoom or in-person)
Textbook: David A. Patterson and John L. Hennessy, Computer Organization and Design: the Hardware/Software Interface: RISC-V Edition
Links: We will use Campuswire and Gradescope in this course. Please use the links posted in Bruinlearn to enroll.
* To schedule an appointment, send a direct message on Campuswire.

Course Description

The aim of this course is to learn the basics of modern microprocessors and their interactions with other units, such as the memory hierarchy, GPUs, and I/O. At the high-level, Computer architecture is the science and engineering of selecting and interconnecting hardware components to create a computer that meets functional, performance, and cost goals. More specifically, in this course you will learn basic principles and techniques in architecting a computer including designing instruction set architecture (ISA), pipeline, and instruction-level parallelism. You will learn these topics in more detail by designing and implementing a multi-stage pipelined, superscalar processor for a simple RISC ISA using C/C++. Further, you will learn a range of architectural techniques used in modern processor design including superscalar design, out-of-order execution, GPU architecture, and cache hierarchies.