Skip to content

Andy-xiaokang/cs61a

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS61A: Structure and Interpretation of Computer Programs

primary knowledge: functional programming,recursion, abstract data type, object oriented programming, iterpreter, symbolic programming, REPL. python, scheme, SQL and etc.
textbook: composing programs

Chapter 1: Building Abstractions with functions

lab00 lab02 lab03 hw01 hw02 hw03 project1 hog 函数式编程这里可以说是Python的精华之一了,甚至可以说就是最精华的部分,最精彩的部分。使用函数来封装数据和逻辑,将函数作为参数,返回值,相互嵌套还有递归等等,
引入了frame,environment,lexical scope,让你对整个程序运行时的结构和细节有了非常清晰地理解,让你体会到符号化编程的魅力。

Chapter 2: Building Abstractions with data

abstract data type

lab04 lab05 lab06 lab07
hw04 hw05 project2 cat

midterm exam

在期中考试这里我算是领悟到了John Denero 课堂上讲的一段笑话,或者说是他念的一段诗,“这门课真是比艺术还要抽象,当助教老师在期中考试说考试开始时,我甚至连第一题都写不出来,我认为我很聪明,我努力训练,记好每一种规则,但当考试开始时,我的计划全盘崩溃了”
他的另外一句话对我有很大的激励
不要过分的看重测试和分数,你不必将每一件事都做到完美,但不要停下你前进的脚步,专注于学习、进步和毅力。你很快就能比过去多解决很多问题

what you can do matters more than your score.

Object-Oriented Programming

lab08 lab09
hw06
project3 ants

把面向对象和函数式编程这两个学好对学好Python有极大地帮助,函数式编程和抽象数据类型也可以说是其他语言的核心内容,面向对象这里包含着Python里面的很多可能新手看不出来的小细节和约定俗成的东西(比如接口、序列、迭代器包括异常等等),学好就可以解决一类问题。

Chapter 3: Interpreting Computer Programs

lab10 lab11 lab12
hw07
project4

project4 是综合性最高的一个project,也是质量最高的一个project,抽象数据类型,函数式编程,特别是里面的递归,解释器里的REPL里面的readeval处理细节,感觉就很综合。
前面15题真的多是带着手把手教你写一个解释器,最后五题就有些拔高了,写不出来可以参照flyingpig 的代码多理解理解,比如我。
scheme语言是真的简洁,因为没有迭代,所有的代码几乎都围绕递归,所以代码量极少,是真的elegant. 关于为何这门课的logo是一个lambda希腊字符学过scheme之后就明白了,所有用户自定义的函数都会创造一个lambdaprocedure 与用户定义的symbol相绑定保存在一个env的字典中。而函数式编程和符号化编程又是这门课最核心的内容。

Chapter 4: Data Processing

这个没有什么好说的.
lab12 lab13 hw08

final review

lab14 hw09

suggestion

看完视频之后一定要精读课本,课本写的很精彩,前三章是精华,有些地方要多读很多遍,project有的地方比较难写,可以在纸上一边做一边推演一下,很管用。


之前看了David Malan的CS50X和CS50P只能说,论教学效果和课堂互动,David Malan无与伦比,但要学真东西,还得CS61A, 这是我目前投入精力最大的一门课,因为真的很抽象(比艺术还要抽象),真的对我而言挺难的,一个project就要做好几天有些还做不出来,好多递归和抽象数据类型的题目也思考不出来,我没有flyingpig天才般的智商能用两个星期做完这门科目,整体历时将近40天,光是想要跟上天才的脚步我就得花费常人好几倍的努力,但我很喜欢他课堂上的一句话:不要过分的看重测试和分数,你不必将每一件事都做到完美,但不要停下你前进的脚步,专注于学习、进步和毅力。你很快就能比过去多解决很多问题 。UCB YYDS!CS61A YYDS!John Denero YYDS!

下一站 CS61B --2023.9.7 日晚

About

cs61a_2020summer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published