CS61A: Structure and Interpretation of Computer Programs
697字约2分钟
CS61ABerkeleyPython
2024-10-29
课程简介
- 所属大学:UC Berkeley
- 先修要求:无
- 编程语言:Python, Scheme, SQL
- 课程难度:🌟🌟🌟
- 预计学时:50 小时
伯克利 CS61 系列的第一门课程,也是我的 Python 入门课。
CS61 系列是伯克利 CS 专业的入门课,其中:
- CS61A: 强调抽象,让学生掌握用程序来解决实际问题,而不关注底层的硬件细节。
- CS61B: 注重算法与数据结构以及大规模程序的构建,学生会用 Java 语言结合算法与数据结构的知识来构建千行代码级别的大型项目(一个简易的谷歌地图,一个二维版的 Minecraft)。
- CS61C: 关注计算机体系结构,让学生理解高级语言(例如 C)是如何一步步转换为机器可以理解的 01 串并在 CPU 执行的,学生将会学习 RISC-V 架构并自己用 Logisim 实现一个 CPU。
回到 CS61A,注意这不仅仅是一门编程语言课,而是会深入到程序构造与运行的原理。最后你将在第 4 个 Project 中用 Python 实现一个 Scheme 的解释器。此外,抽象将是这门课的一大主题,你将学习到函数式编程、数据抽象、面向对象等等知识来让你的代码更易读,更模块化。当然,学习编程语言也是这门课的一大内容,你将会掌握 Python、Scheme 和 SQL 这三种编程语言,在它们的学习和比较中,相信你会拥有快速掌握一门新的编程语言的能力。
注意:如果此前完全没有编程基础,直接上手 CS61A 需要一定的学习能力和自律要求。为避免课程难度过高而导致的信心挫折,可以选择一个更为友好的入门编程课程。例如伯克利的 CS10 或者哈佛大学的 CS50。
课程资源
本文主要记录学习 CS61A 课程的一些心得
因为是课程笔记,所以基础知识不再赘述,仅记录一些有意思的想法
实验,作业,项目可见本博客:
Lab:
Homework:
你也可以通过我的 github 仓库 CS61A_Fall2024来获取我的代码。
重要
请注意,该代码包含答案,因此如果你想独立完成请务必提前将对应 python 文件中的答案删除!
END.