CS 233 - Computer Architecture
3
Credit Hours
Geoffrey Lindsay Herman
Instructor
As the course name suggests, this course is the core computer architecture class in the CS major. The class is comprised of pre-lecture homeworks (preflight assignments), homeworks, in-person group assignments (GAs), lab assignments, and biweekly quizzes. The course is largely served through PrairieLearn, with a large amount of the class being autograded.
For CS + X majors, students have the option to take either CS 233 and CS 341 or CS 340.
Topics Covered
- Data Representation in Hardware
- Basic Verilog
- MIPS
- CPU Design
- CPU Execution and Related Optimizations
- Caching
- Synchronization Primitives
Resources
Office hours are hosted as specified in the syllabus. The Crash Course YouTube channel has a computer science playlist with earlier videos focusing on computer architecture topics.
Developer’s Commentary
That looks like a lot of work!
This course has a lot of assignments. Combined with the fact that it is likely the first time students are exposed to this sector of Computer Science, students may find this course somewhat challenging and time-consuming. Be sure to start assignments early (especially some of the later Verilog assignments).
I personally think that computer architecture is extremely important for a well-rounded computer science student, even if you don’t plan to do specialize in architecture. A lot of system design and related optimizations are motivated by the dream of achieving good performance. Writing efficient algorithms is one part of the equation, but writing code that behaves well with respect to the hardware it is running on is arguably equally, if not more important (especially the caching parts).
Related Classes
- CS 433 - Computer System Organization: If you enjoyed the architecture content in this class, consider taking CS 433, which presents modern computer architecture theory such as ILP, out-of-order execution, superscalar execution, instruction reordering, and cache optimizations. ECE 411 Computer Organization and Design is a more involved class that has you implement a CPU in Verilog. This class requires ECE 391 as a prerequisite.
- If you enjoy the more low-level/hardware-y side of computer science, considering taking more ECE courses! The ECE minor as a good foundational chain of classes you can take.
Last updated: March 05, 2026