# CS61C: Great Ideas in Computer Architecture
## 课程简介
- 所属大学：UC Berkeley
- 先修要求：CS61A, CS61B
- 编程语言：C
- 课程难度：🌟🌟🌟🌟
- 预计学时：100小时

伯克利CS61系列的最后一门课程，深入计算机的硬件细节，带领学生逐步理解C语言是如何一步步转化为RISC-V汇编并在CPU上执行的。和[Nand2Tetris](./N2T.md)不同，这门课
在难度和深度上都会大很多，具体会涉及到流水线、Cache、虚存以及并发相关的内容。

这门课的Project也非常新颖有趣。Project1会让你用C语言写一个小程序，20年秋季学期是著名的游戏`Game of Life`。Project2会让你用RISC-V汇编编写一个神经网络，用来
识别MNIST手写数字，非常锻炼你对汇编代码的理解和运用。Project3中你会用Logism这个数字电路模拟软件搭建出一个二级流水线的CPU，并在上面运行RISC-V汇编代码。Project4
会让你使用OpenMP，SIMD等方法并行优化矩阵运算，实现一个简易的Numpy。

总而言之，这是个人上过的最好的计算机体系结构的课程。

## 课程资源
- [课程网站](https://cs61c.org/su20/)
- 课程视频：[B站](https://www.bilibili.com/video/BV1fC4y147iZ?from=search&seid=1039011700066128636), [Youtube](https://www.youtube.com/playlist?list=PLDoI-XvXO0aqgoMQvogzmf7CKiSMSUS3M)
- 课程教材：无
- 课程作业：11个lab，4个project，具体要求详见课程网站

## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/CS61C-summer20)中。