跳转至

# CS61A: Structure and Interpretation of Computer Programs

## 课程简介

- 所属大学：UC Berkeley
- 先修要求：无
- 编程语言：Python, Scheme, SQL
- 课程难度：🌟🌟🌟
- 预计学时：50 小时

伯克利 CS61 系列的第一门课程，也是我的 Python 入门课。

CS61 系列是伯克利 CS 专业的入门课，其中：

- CS61A: 强调抽象，让学生掌握用程序来解决实际问题，而不关注底层的硬件细节。
- CS61B: 注重算法与数据结构以及大规模程序的构建，学生会用 Java 语言结合算法与数据结构的知识来构建千行代码级别的大型项目（一个简易的谷歌地图，一个二维版的 Minecraft）。
- CS61C: 关注计算机体系结构，让学生理解高级语言（例如 C）是如何一步步转换为机器可以理解的 01 串并在 CPU 执行的，学生将会学习 RISC-V 架构并自己用 Logisim 实现一个 CPU。

CS61B 和 CS61C 在本书中均有收录。

回到 CS61A，注意这不仅仅是一门编程语言课，而是会深入到程序构造与运行的原理。最后你将在第 4 个 Project 中用 Python 实现一个 Scheme 的解释器。此外，抽象将是这门课的一大主题，你将学习到函数式编程、数据抽象、面向对象等等知识来让你的代码更易读，更模块化。当然，学习编程语言也是这门课的一大内容，你将会掌握 Python、Scheme 和 SQL 这三种编程语言，在它们的学习和比较中，相信你会拥有快速掌握一门新的编程语言的能力。

注意：如果此前完全没有编程基础，直接上手 CS61A 需要一定的学习能力和自律要求。为避免课程难度过高而导致的信心挫折，可以选择一个更为友好的入门编程课程。例如伯克利的 CS10 或者哈佛大学的 CS50。

## 课程资源

- 课程网站
- 课程网站 (页面备份): fall2024, spring2022, fall2022, fall2020
- 课程视频: spring2024, fall2022, fall2020
- 课程教材
- 课程教材电子书
- 课程教材中文翻译
- 课程作业: fall2024

## 资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CS61A - GitHub 中。

@InsideEmpire 在学习这门课中用到的所有资源和作业实现都汇总在 InsideEmpire/CS61A - GitHub

2025-03-04