学习伯克利CS 61A课程(Structure and Interpretation of Computer Programs, SICP)的相关资源

穆宾白
2023-12-01

有个叫做Teach Yourself Computer Science的网站[1]教如何自学计算机科学,关于Programming这个方向推荐了《Structure and Interpretation of Computer Programs, SICP》这本书(Peter Norvig在文章Teach Yourself Programming in Ten Years[12]中也提到这本书),同时还有伯克利的视频教学,视频在油管[2]和archive[3]上有,本文介绍的就是关于这个视频教学的相关资源。

伯克利的教学视频是2010年的,时间比较久远了,现在新的入门课程基本都是使用Python作为教学语言[5],而那时采用的是Scheme,新生代的人们估计很少见到那种需要数括号的语言。

关于讲义与字幕

由于时间比较早,视频清晰度不太高,视频中有些代码是看不清楚的,而且没有字幕。如果执意要看这个教学视频可能就要解决两个问题,一是清晰度不高,而是如果英语不太好没有字幕看。我在网上找到了差不多的课程讲义[4],如果视频中的代码看不清楚可以找一找讲义中有没有。至于字幕,可以在油管上看,然后使用机器翻译,可以看到相应的英语字幕,勉强可以参考,不行就只能硬看了。

关于解释器

我们可以使用DrRacket[6]或者STK[7]。

DrRacket有界面,使用起来挺好的,只是需要我们单独下载它的collection[8]。
STK下载下来可能无法使用,如果缺少x11,可以参考[9],安装X11[10]即可,关于安装我小结了一下[11]。

相关资源

《Structure and Interpretation of Computer Programs》,SICP是它的缩写。这本书有在线提供的网页版本[13] ,mitpress也给了pdf版本[14]。

其实麻省理工学院也有视频讲座(6.001)[15]。但Teach Yourself Computer Science建议Brian Harvey的SICP讲座(伯克利的61A课程)。

有人写的博客:我如何用二十天刷完 SICP [16],作者给了SICP 习题集的解[17],当然也还有更多的答案[18],[19],[20]。

mitpress作为出版社,提供了书的全文(html)[21] ,课后作业[22],书里的代码[23],教师使用说明[24],如何获取scheme[25],等。

Scheme语言入门[27]

垠神赞美过Lisp:谈语法[26]

参考

[1] https://teachyourselfcs.com/
[2] https://www.youtube.com/playlist?list=PLhMnuBfGeCDNgVzLPxF9o5UNKG1b-LFY9
[3] https://archive.org/details/ucberkeley-webcast-PL3E89002AA9B9879E?sort=titleSorter
[4] https://inst.eecs.berkeley.edu/~cs61a/su10/lectures/
[5] https://inst.eecs.berkeley.edu/~cs61a/archives.html
[6] https://racket-lang.org/
[7] http://inst.eecs.berkeley.edu/~scheme/
[8] https://docs.racket-lang.org/sicp-manual/index.html
[9] https://tex.stackexchange.com/questions/208001/cant-compile-image-after-upgrading-to-os-x-yosemite
[10] http://osxdaily.com/2012/12/02/x11-mac-os-x-xquartz/
[11] https://blog.csdn.net/shanchuan2012/article/details/100188424
[12] http://norvig.com/21-days.html
[13] https://mitpress.mit.edu/sicp/full-text/book/book.html
[14] https://mitpress.mit.edu/sites/default/files/6515.pdf
[15] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
[16] http://numbbbbb.com/2016/03/28/20160328_%E6%88%91%E5%A6%82%E4%BD%95%E7%94%A8%E4%B8%A4%E5%91%A8%E6%97%B6%E9%97%B4%E5%88%B7%E5%AE%8C%20SICP/
[17] https://github.com/numbbbbb/sicp/tree/master/code/Chapter%201
[18] https://github.com/skanev/playground/tree/master/scheme/sicp
[19] https://github.com/huangz1990/SICP-answers
[20] http://sicp.readthedocs.io/en/latest/
[21] https://mitpress.mit.edu/sicp/full-text/book/book.html
[22] https://mitpress.mit.edu/sicp/psets/index.html
[23] https://mitpress.mit.edu/sicp/code/index.html
[24] https://mitpress.mit.edu/books/instructors-manual-ta-structure-and-interpretation-computer-programs
[25] https://mitpress.mit.edu/sicp/scheme/index.html
[26] http://www.yinwang.org/blog-cn/2013/03/08/on-syntax
[27] https://www.worldhello.net/doc/docbook_howto/ar01s04s06.html#idp5171200

 类似资料: