The Programming Language Course

花了三个月的时间,终于跟完了这门编程语言课. 课程成绩.png 课程内容非常赞,而且也充分发挥了coursera平台的作用. 非要说缺点的话,就是这门课时间有点短,以及peers' assignments总是找不到人...

这么课是什么

这门课并不是在讲一门特定的编程语言,而是在讲一些通用的编程语言概念.

课程主要内容.png

课程本身大体上上分为三部分,分别结合sml,racket,ruby三门语言来讲. 编程语言表格.png

每部分大体先是视频内容(有同样内容的文字pdf,便于查询),然后要完成一项作业(10节中有8节是编程作业,2节是多选题的笔试) 作业过后,是备受好评的(?) peers' assignments的环节. 不过由于每个人的作业只能被其他三个人评分...所以如果没有对3个同学做过code review的话,需要经常上来看看有没有新的人提交作业了...

我的体会

作业难度不算高,每门作业最开始的题目感觉稍微有点难度,不过大体是因为还不太熟悉一门新的语言,热身之后,后面的题目都比较容易了.

按照Grossman的说法,最难的是第二部分课程中用racket写一个简单的语言解释器.不过实际写起来其实还好,就是一个代码量不到200行的大模拟,难度感觉并不比其他部分的作业更难.

比较有意思的作业感觉反而是第三部分那个,用OOP和functional的方法实现同样的计算几何...用函数式写几何题好舒服啊...

这么课应该没有什么必须的前置技能点,因为课程中涉及的语言反正也没什么人学过(?),所以有过编程经验应该就可以跟? 以及,感觉这应该算是CS中比较核心的课程了,可是国内的高校似乎很少有开相关的课程? 有点可惜.

总之安利一波~ 最后附上我的代码链接: github CSE341