CS 211: Computer Architecture

Spring 2026.

Description

See the CS department web page.

This course covers the fundamental issues in the design of modern computer systems, including the design and implementation of key hardware components such as the processor, memory, and I/O devices, and the software/hardware interface.

Details

This is a fundamental course, equipping students with knowledge that underlies critical computing technology. Throughout the course, students will learn about low-level programming in C and assembly, the instruction pipeline, memory hierarchy, threaded and nonthreaded execution models, and digital logic, the memory hierarchy, and other select topics. The course will also cover specific case studies of recent advances in real-world computer systems.

Students will also be asked to apply their knowledge through several programming assignments and debugging assignments.

At the end of this course, students should have the preliminary skills to design and evaluate solutions involving the computer software-hardware interface to address new problems.

Assessment

All students must follow the CS department’s academic integrity policy.

Topic List

Resources

Learning C is an important part of this course, but different students have different learning preferences. In the past, the course has used the Modern C book https://gustedt.gitlabpages.inria.fr/modern-c/, but I’ve been told that makes topics over-complicated. The C Programming Language book, by Kernighan and Ritchie, is popular, but it is unfortunately outdated. The C language has been revised multiple times since that book was published in 1988. For an experienced programmer, the cppreference documentation may be sufficient, but if college has been your only exposure to programming you may find the site obtuse or esoteric. A more approachable alternative could be something like w3 schools.

Lectures and Reading

Lecture material will be located online.

Month Lecture Topic Exams and Assignment Starts
January 21 Wednesday L1 Introduction
26 Monday L2 Arrays and Pointers HW: Hello World
28 Wednesday L3 Integers and 2’s Complement
February 2 Monday L4 Memory and Variable Length Arrays HW: Rotate Bits
4 Wednesday L5 Dynamic Memory and Debugging
9 Monday L6 Structs and Modular Code
11 Wednesday L7 Bit Fields, Unions, and Fractional Values Recitation Quiz 1
16 Monday L8 Fixed Point and Floating Point HW: Stack
18 Wednesday L9 Recursion, loops, & data in Assembly
23 Monday L10 Instruction Set Architectures
25 Wednesday L11 ISAs continued Recitation Quiz 2
March 2 Monday L12 Pipeline Architectures HW: Matrix
4 Wednesday Midterm (in class)
9 Monday L13 The Threaded Execution Model
11 Wednesday L14 Addressing Modes and Instruction Decoding
23 Monday L15 Architecture Aware Code HW: Parallel
25 Wednesday L16 Memory View from Assembly
30 Monday L17 Types of Physical Memory
April 1 Wednesday L18 Cache and the Memory Hierarchy Recitation Quiz 3
6 Monday L19 More About Cacheing HW: Bomb Lab
8 Wednesday L20 Memory Usage Optimization
13 Monday L21 SIMD Instructions
15 Wednesday L22 Parallel and GPU Architecture Recitation Quiz 4
20 Monday L23 Parallel and GPU Architecture HW: DLD
22 Wednesday L24 Digital Logic
27 Monday L25 Combinational Logic
29 Wednesday L26 Sequential Logic
May 4 Monday L27 Review
8 Friday Final Exam 4:00-7:00PM Final Exam