注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

見るところ花にあらずと云ふことなし

褎然举首

 
 
 

日志

 
 

The MOOCs 续---软件教学中作业设计的重要性(python课为例)  

2015-07-16 21:26:05|  分类: MOOC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
近期因为时间的原因,关注的MOOC比较少了,一直跟下来的只有MIT的6001x。
https://courses.edx.org/courses/course-v1:MITx+6.00.1x_6+2T2015/info
认真想想,突然觉得可以谈谈软件教学中作业设计的重要性。

大学毕业许多年,其实之前的相关编程知识忘记很多。要说写过写代码,基本都是HSPICE这样的电路描述,考虑到一般程序类的MOOC的作业还是比较艰难,所以一般软件相关的课程很少关注。这次关注6001X,一个是对MIT的CS课程好奇(与哈佛的风格确实迥然不同),另一个6001X教学的软件是PYTHON而不是常用的C,而PYTHON的数据处理上据说不错,颇感兴趣。

其实同时上的PYTHON课程还有很多,比如COURSERA上有密歇根大学和RICE,同样EDX上有同样课程名称的HARVEY-MUDDS,也都讲的挺好。特别是MICHIGAN和RICE的课程对于一些指令的讲解非常仔细。而HARVEY MUDDS的课程主打生动活泼。
MICHIGAN的Programming for Everybody(Python):
https://www.coursera.org/course/pythonlearn
Rice的An Introduction to Interactive Programming in Python:
https://www.coursera.org/course/interactivepython1
HARVEY MUDDS的CS FOR ALL:
https://courses.edx.org/courses/HarveyMuddX/CS005x/2T2015/info

不过感觉6001X的作业设计更为循序渐进,既有简单的课堂练习,一般难度的QUIZZ,也有较难的probelm set。妙处在于,其实probelm set的问题总体来说是很难的一个大程序,加到一起可能也有上百行(这是才学到第三周和第四周的时候!)。只是老师们把大程序拆分成了小模块,而每个小模块还给了提示,不会直接抓瞎。而这个大程序一般是个游戏,做出来了就可以自己运行验证,也可以玩一下。

比如在一个既可以电脑参与也可以由人参与的猜词游戏,作业先是花了很长篇幅描述游戏的玩法,然后给了程序框架,那么学生编的子程序拷贝到里面就好,还给了测试程序,而作业又分了计分的子程序、更新字库的子程序、判断玩家输入的词是否合法的子程序等等。最后贴在一起就可以实现一个游戏。就是只要肯花时间理解题目和提示,并认真DEBUG,一般还是能把程序完成。而完成这样一个大程序,对初学者来说,还是蛮有成就感的。如果一开始就让学生自己完成整个游戏,估计能做完的学生就非常少了。如果作业停留于基础的指令,也没什么意思。见过因为课时不足而只能讲皮毛的软件课,结果老师觉得太简单百无聊赖,学生做作业实现一些基本功能也觉得很无趣,反映就是觉得什么都没学。

另一个方面,6001X给学生的尝试次数较多,高达30次。因为是MOOC,没有办法直接交流,而且很多国际学生对这些游戏本来可能完全不了解,那么一些题意理解问题或是一开始对整个游戏思虑不周的情况就与改进的可能。个人觉得这比一次定成绩要更有利于鼓励学生继续学习。

总结来说,1、作业要循序渐进,从易到难;2、一个有意思的大题目分解成小模块来做,即提高成功率,又有意思;3、允许犯错,鼓励尝试。


  评论这张
 
阅读(110)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017