Skip to content

# CS61C: Great Ideas in Computer Architecture

## Descriptions

- Offered by: UC Berkeley
- Prerequisites: CS61A, CS61B
- Programming Languages: C
- Difficulty: 🌟🌟🌟🌟
- Class Hour: 100 hours

This is the last course in Berkeley's CS61 series, which dives into the internal of computer architecture and will make you understand how the C language is translated into RISC-V assembly language and executed on the CPU. Unlike Nand2Tetris, this course is much more difficult and more in-depth, covering pipelining, cache, virtual memory, and concurrency-related content.

The projects are very innovative and interesting. Project1 is a warmup assignment in C. In 2020Fall, you will implement the famous Game of Life. Project2 requires you to write a fully-connected neural network in RISC-V assembly to classify handwritten digits in MNIST dataset, which is a great exercise to write assembly code. In Project3, you will use Logisim, a digital circuit simulation software, to build a two-stage pipeline CPU from scratch and run RISC-V assembly code on it. In Project4 you will implement a toy version of Numpy, using OpenMP, SIMD, and other techniques to speed up matrix operations.

In a word, this is the best computer architecture course I have ever taken.

## Course Resources

- Course Website
- Course Website (Backup): Fa24-WayBack Machine, Fa20-WayBack Machine, Fa20-Backup
- Recordings: Su20-Bilibili, Su20-Youtube, Fa20-Bilibili, Fa20-Youtube
- Assignments: Fa20-Backup

## Personal Resources

All the resources and assignments used by @PKUFlyingPig in this course are maintained in PKUFlyingPig/CS61C-summer20 - GitHub.

All the resources and assignments used by @InsideEmpire in this course are maintained in @InsideEmpire/CS61C-fall20 - GitHub.

All the resources and assignments used by @RisingUppercut in this course are maintained in @RisingUppercut/CS61C-fall24 - GitHub.

2025-05-20