在开始学习CS61B这门课之前,我想先讲述一下我学这门课的动机以及目的。
动机分为以下几点
- 在刚刚结束的学期里学了一门课CSE210,此门课其实是mit6031和cs61b的两者阉割版的大杂烩课程。由于学校的课程不是很体系,再加上自己学期中时间紧迫,所以结束后感觉效果不是很好。所以直接学习CS61bB来弥补该有的数据结构的能力。
2.CS61B数据结构课的独特体现在用java来设计实现数据结构,所以本身对java语言的学习又是个很好的回顾与查漏补缺。对于正在学习后端开发的我也是个必要的学习课程。
3.此课与国内韩顺平老师的java数据结构与算法,有大部分内容类似,可以二者同时进行学习,这样可以同时参考不同老师的讲述方式,可以更加全面的理解核心内容。
- 作业的提交用到了git,顺便可以培养github记录的习惯,丰富自己的仓库。
目的
- 掌握基本的数据结构,从最基本的链表到树
- 文书上对CSE210的失常发挥进行argue
- java语言的复习,之后便在leetcode上用java刷题
- 学习的同时可以跟着国内韩顺平老师的课进行算法的学习
版本安排
视频和资料是选择spring2019和2018结合,作业采用spring2018的。
目前最新版是spring2020,但是根据我在观察网上的风评和自己在youtube上看了几节课后,觉得josh hug的人格魅力和授课方式自己比较的中意(2019fall后就开始换人了)所以决定还是选择之前的课程进行学习。作业2019很可惜虽然找到了entrycode但是due time大多数都已过,所以无法进行auto grade,但是2018 autograde直接设置了80年,可见老师的良苦用心。
周期安排
CS61B为伯克利的三大计算机必修课之二,学时为15周,每周的任务量还是挺大的,然后我在学完每一个part之后也会把CSE210之前对应的练习从新写一遍,所以整体来是比较耗时的。目前暂定是2个月之内搞定,也就是8月20号结束所有assignment。