去年就听说了大名鼎鼎cs61的系列课程,但出于各种畏惧心理(怕fq、怕英文、怕时间不够、怕基础不牢),粗略地浏览了一下就略过了。后来开始读《Data Structures and Algorithm Analysis in C》,学到树的部分后又感觉不太看得懂,便停了下来。搁置一段时间后,又看到有人屡屡提起计算机基础课程的重要程度,便想把数据结构与算法捡起来。苦恼于学习的形式与方法时(也许是想得太多),突然回想起了cs61b,决定探索一下。
这篇文章主要记录cs61b的体系结构,和一些初次接触的感受。
课程结构
从课程结构来看,cs61b与国内学校的课程有很大的差别,下面是一些分类介绍。点击可查阅官方的课程信息。
- Reading
给我的第一感受是详细,有目录,结构很清晰(比我现在的博客好),内容也易懂(说不定只是开头比较简单罢了)。 - Video
老师讲课很有趣,不过说话很快,以我现在的听力水平只能看着字幕才能理解。 - Guide
里面有Overview,概括了这堂课的学习内容;Exercise,一些练习,分有A+、A、B、C等各种等级。
guide可以作为预习和复习的很好的资料。 - Discussion
每个星期有1小时的discussion(不过与我们无关哈哈),似乎学完一星期的课程后再来看discussion比较好。discussion中都是一些理论的问题,完成discussion后可以看一看solution。有时候还有slide讲解。 - Lab
lab是很多人推荐这门课程的原因之一(因为内容很多)。其中包含十分详细的步骤,但不止是做实验,它还会在一些巧妙的地方引发你的思考。 - HW
与Lab有些相似,但它与实际问题的联系更多(比如模拟吉他音、解决概率问题等等)。可以说是缩小的,有指导的project。 - Project
似乎代码量很多(千行?)。我将它与Lab、HW并称为cs61b的精华(据说全部独立完成你就可以起飞了)。
- 小结
体系和丰富程度似乎都比国内学校好得多…
如何食用
提几点非ucb学生如何利用资源
- 视频
B站找,不多说了。 - 作业
有人可能会问,作业这么多,谁给我改啊。幸运的是,cs61b-sp18向公众开放了autograder(其它学期开没开放不清楚),可以在gradescope上提交你的Lab、HW和Project,具体方法请阅读官方文档。