推荐理由:感性认识程序语言以及计算机运行程序的过程;老师讲课有一种一本正经的幽默感。课后有习题网站可以小试牛刀,及时mark自己的进步。
课程名称:计算概论与程序设计基础(MOOC,主讲人:北京大学副教授,李戈)
课程链接:计算概论与程序设计基础_北京大学_中国大学MOOC(慕课)
1. 首先来感受一下老师讲课时的画风:
这时老师在讲数组名做函数参数,“相当于函数伸出一只手来改变了数组的内容”,于是PPT上就真的出现了一只手👆(见上图)。为了强调数组名做函数参数的意义是将数组的地址告诉函数,并允许函数修改数组的内容(听上去觉得后果很严重)。果然,老师说:“就比如我有非常贵重的金币,告诉你藏在未名湖边离翻尾石鱼最近的树下。”那么结果呢?老师的金币还在吗?🤫
再比如,在讲到函数参数的传递时:为了让大家理解函数参数传递的本质时把数据从主程序中COPY了一份,老师比喻:“比如我有一份材料,你来copy了一份儿放在自己手里,如果你的复印件丢了,撕碎了,点了,烧了,扔了,销毁了,对原件有影响吗?”隔着屏幕的我感受到了老师层层递进的咄咄逼人……
2. 感觉一不小心掌握了学习程序设计的秘诀:抓大放小
写bug,哦不,写程序的过程中很容易遇到困难,干着急就是查不出来错在哪里。老师的秘诀“抓大放小,多练简单题”缓解了我的焦虑情绪,也让我坚定地一直坚持到现在(第三次开课将在2020年6月7号结束,可以回看,可以回看,可以回看)。
3. 绝知此事要躬行
学习任何程序语言,总是听着看着热闹,真到自己动手写的时候总是出这样那样的问题(忽然想起当年跟室友一起做计算概论的作业,deadline的晚上三点刷新了我们熬夜的极限)。总之,动手写程序是必不可少的。这个课程配套有线上作业练习网站,是下图👇这样的(别嫌弃我还在wrong answer 里挣扎着),可以帮助我们小试牛刀,及时mark自己的进步OR错误。
此外,课程中助教对编译器安装和使用进行了详细的演示。下图👇我用了其中一种编译器。Anyway,学着debug的过程也是进步的过程。
祝大家写bug愉快!
网友评论