查看: 11100| 回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

强烈推荐Programming Languages

全局:
公开课
学校名称: Washington University
Unit号: 10
开课时间: 目前已结课
课程全名: Programming languages
平台: Coursera

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
今天Coursera上的Programming Languages彻底结课了,是我目前上过的所有在线课程里最好的一门,特地来宣传一下。

这门课通过讲解三种语言(ML、Racket、Ruby),介绍了编程语言中许多基本概念和范式。一共8个部分,分10周上完,两次考试,七次作业。每次作业都颇有难度,虽然代码量不大,但是要完成一般需要5小时以上。一个原因是函数式编程上手需要时间适应。最有挑战性的作业是用Racket写简单的语言解释器。强烈推荐转专业自学CS的同学们下次尝试,对于融会贯通之前零散学到的编程语言知识极有帮助。

评分

参与人数 3大米 +65 收起 理由
Kimurate + 60
gu0001hi + 3 真的是好课,我也在学,只不过一开始转给那.
geo24 + 2 谢谢你的介绍!

查看全部评分


上一篇:[MOOC]一门从零开始手工实现C++11编译器的公开课!目测完成了就是神了!!!
下一篇:The Hardware/Software Interface (Lab3)
推荐
 楼主| asterid 2013-4-22 10:29:09 | 只看该作者
全局:
yzl232 发表于 2013-4-21 11:25
不知道对于找工作什么的有没有帮助。
不是java, C++, python的课, 其实不是很想跟。。。

要看找什么样的工作了。感觉software development还是很需要编程语言基础的。
我看过一个Bloomberg的面经,问怎样实现算术解释器(比如 1+2*3之类)。面试官和受试者讲可以用递归,受试者表示递归效率很低,所以要用iterative的方法来做,还和面试官争论起来。其实他如果上过编程语言的课的话就会知道,尾递归的效率和iterative是一样的。
回复

使用道具 举报

🔗
rialmat 2013-4-2 12:38:53 | 只看该作者
全局:
本帖最后由 rialmat 于 2013-4-2 12:40 编辑

同推荐!这课我自看了第一个视频的第一分钟起就决定要跟了。Dan Grossman讲课很有激情而且清晰易懂。或许这个课上教的语言你学完了平时也不会常用(有可能ruby除外),但从中学到的编程范式,函数式编程与OO编程的优缺点等内容对其它语言都有很大的参考意义,也有助于你能更深一层了解你现在所用的语言(比如java, c++),从而写出优质高效的代码。这个课应该也是CS类课中第一个引入peer assesment机制的吧,每周作业截止后凡是提交了作业的人都要求评论另三个人的代码风格(不完成的话作业要被扣分10%),同时作业的参考代码也会给出,不过,要提醒的是,上这课一定要确保自己不能落下进度超过一个星期,每次作业大概也只有7-10天的时间供你完成,一旦过了截止日期你提交了也不算分,而且不能参加 peer assessment,也看不到参考解答。
回复

使用道具 举报

🔗
Shuang7 2013-4-3 09:27:55 | 只看该作者
全局:
感觉这个课是跟compilers一个级别的硬课啊= =
不知道有没有必要花力气把它跟下来。。弱问Programming Language是CS方向必修的基础课吗?如果以后不会用到函数式编程的话,学习它的意义在于什么呢?
回复

使用道具 举报

🔗
rialmat 2013-4-3 10:53:07 | 只看该作者
全局:
本帖最后由 rialmat 于 2013-4-3 11:00 编辑
Shuang7 发表于 2013-4-3 09:27
感觉这个课是跟compilers一个级别的硬课啊= =
不知道有没有必要花力气把它跟下来。。弱问Programming Lang ...

这个课难度上没compiler那么高,如果你先前接触过函数式编程的话(比如haskell, scala)那就更容易了。至于学函数式编程有什么意义,其实我在LSS的回帖中已经说了,就是让你对你现在常用的编程语言也有更深的认识,同时也丰富你的工具库,让你成为一个更好的程序猿/媛。你会发现不是什么问题都要先入为主地用OO来思考,很多时候你会发现死抠OO是多么愚蠢的事。很多新的编程语言和老编程语言的新版本其实都在试图结合函数式和OO各自的优点,这也就为什么C++11里面会引入lambda(尽管弄得很丑陋),为什么java 8中将考虑引入closure。还有通过这个课,你会发现其实programming languages和design patterns有很密切的联系,现在有一种观点是:搞那些复杂的design patterns,其实就是在暴露某些语言设计上的缺陷。

这门课应该不算是传统意义上CS的核心课(但有些学校也把它算作核心课),但它会给你更丰富的角度去看待和解决问题,上了这个课绝对会让你受益良多。

评分

参与人数 1大米 +3 收起 理由
小民 + 3 感谢分享!

查看全部评分

回复

使用道具 举报

🔗
lyl 2013-4-3 13:09:02 | 只看该作者
全局:
rialmat 发表于 2013-4-3 10:53
这个课难度上没compiler那么高,如果你先前接触过函数式编程的话(比如haskell, scala)那就更容易了。至 ...

这门课应该是CS最核心课之一,我见过的大部分学校都把这个做为必修的。只是因为在国内这个方向很弱,所以大部分国内学校没有把它当作必修。
回复

使用道具 举报

🔗
pureds 2013-4-3 15:47:41 | 只看该作者
全局:
多谢分享,俺不是CS背景,听的不大懂,但很想深入学习下programming,发现包括这门课的几门UW的CS课程是很赞的,是有难度的(对我来说)。
回复

使用道具 举报

🔗
Shuang7 2013-4-3 16:34:59 | 只看该作者
全局:
rialmat 发表于 2013-4-3 10:53
这个课难度上没compiler那么高,如果你先前接触过函数式编程的话(比如haskell, scala)那就更容易了。至 ...

多谢~~
(最近在死磕compiler,等把这个搞定了在杀回PL吧。。。估计那是一个月之后的事情了= =)
回复

使用道具 举报

🔗
小民 2013-4-4 11:05:23 | 只看该作者
全局:
rialmat 发表于 2013-4-3 10:53
这个课难度上没compiler那么高,如果你先前接触过函数式编程的话(比如haskell, scala)那就更容易了。至 ...

",现在有一种观点是:搞那些复杂的design patterns,其实就是在暴露某些语言设计上的缺陷。"

这个,黑客与画家中 也有讲到
回复

使用道具 举报

🔗
zqzstc 2013-4-12 04:28:00 | 只看该作者
全局:
在学校学基础programing都那么累,先看看上到哪才会听不懂
回复

使用道具 举报

🔗
yzl232 2013-4-22 00:25:32 | 只看该作者
全局:
不知道对于找工作什么的有没有帮助。
不是java, C++, python的课, 其实不是很想跟。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表