如何做好一次实验
Mocom   Wed Sep 21 2016 14:49:57 GMT+0800 (中国标准时间) [ 课堂 ]     浏览次数:7504
版权声明: 本文发自http://mocom.xmu.edu.cn,为 赖永炫 老师的个人博文,文章仅代表个人观点。无需授权即可转载,转载时请务必注明作者。

我所教授的编程类课程(比如c++、c#语言、中间件技术),一般都配置有8次或16次的实验课。如果是8次实验课,则大概会安排5-6次实验;如果是16次,一般会安排8-10次实验。那么今天,我们就来聊一下实验课程设置和实验课的注意事项。

首先,同学们可能会很好奇,实验内容到底是怎么选择的,有什么依据吗?说实话,实验内容一定是依课程和大家所处的水平来定的,当然也会参考教材上的实验设置。比如,c、c++课程设置在大一的上下学期,是基础的编程的入门课程,则实验内容倾向于当场做完。每次课程就是完成1次的实验内容。这个安排有个好处就是可以较为精准的瞄准某个知识点,在大家完成实验的过程,即现场掌握了这个知识点。而对于c#编程,中间件的编程,则已经是编程的提高阶段了,则每次实验课就不局限于“当堂完成”了。在进阶阶段的编程课,应该不是写“一看就会”的代码。相反,我会选择一个相对完整的“任务”,给大家一个相对长的时间周期来提交。因此,基础编程课的实验内容,我会参考教材的知识点,一个一个进行;而其他的进阶课程,则从大家的学习或生活实际,选择适当的实验题材了。比如,c#课程第1个实验,要求是写一个控制台版本的“贪吃蛇”游戏;第2个实验,可能是写一个记事本或者画图板。这些游戏或软件大家都玩过用过,有些同学可能不是马上就能想到思路。如何开始编程?需要哪些知识点?是否有多种实施的方式?有些同学看到实验内容,颇觉得有难度。

其实,有难度是我故意设置的障碍。因为,在进阶阶段,我们要求学习编程的同学要有一定的设计过程、思考过程。针对具体的算法,去网络上可能可以找到现成的答案和代码;但解决问题的思路和过程,则是网络上找不到的,需要大家自己思考。事实上,有过项目开发和实践经验的人都知道。每一个新的需求提出的时候,一些功能往往是不知道如何实施的。这个时候,需要思考,总结以前的开发经验,利用网络检索的知识,或者靠请教懂行的高人去找到解决的思路。有了思路,有时候还不放心,得先做个demo来验证这个思路。所以,每个实验课,我都留了足够长的时间来让大家完成。比如2周布置任务,我会要求在第6周的时候检查和提交;一般的,在第4周也会布置另一个实验,但这个实验会在第8周的时候要求提交。可以看到,实验的提交周期是有重叠的。这样的安排,周期较长,是为了避免给大家造成太大的压力。在此,也提醒那些希望每次实验都“短平快”的同学,我们布置的实验虽然看上去有点难,甚至觉得有些内容无从下手,但千万别一开始就放弃。因为你有6周的时间来思考、解决这个问题。第1-2周想思路,结合课程学习新的知识;第3-4周以后,可以设计和编码了。相信我,如果你发现一个原本不太好解决的问题,随着自己的步步深入而获得了一些思路,最后做出效果,你会超级有成就感的。但关键是,你一开始不要放弃,而是要尽可能的去找资料、看课本,直至最后做成。而这个过程,其实也是我想让大家都经历的过程。这样,同学们在课堂听课的时候更有动力,更有针对性,也更愿意与老师和助教交流,不知不觉中也提高了大家自学的能力。

然而,我发现即使是天才如我厦大的同学,也不是每一个人都可以把每个实验完全从“开始”走到“结束”的。因此,在实验要求上,我会分为“基础”和“提高”部分。“基础”部分是根据上课所讲和我提供的一些材料,所有同学都必须完成的部分。完成基础部分,即可以拿到这个实验的分数。“提高”的部分,则作为额外奖励的分数。完成提高部分,大概需要同学自学一些知识,或者自己找一些资料、找一些人讨论才可以完成的。从以往的而经验看,一些有能力的同学也会自己增加实验的难度和内容,把小实验当做一个小软件来做。甚至有同学在实验过程中获得了一些思路,做出了一款软件并提交到学院的软件设计大赛中去。能这样做的,很多时候是聪明的同学,因为这样做是“一举多得、一石二鸟”。

最后,虽然实验是以个人为单位完成,但我也很期待同学们能自己组合,搭配一个团队,在一学期课程中完成一个软件或网站。之前几届,同学组队做“期末大作业”是作为一个课程任务,也分配了分数比率。但我发现,强扭的瓜不甜,“搭便车”的现象很严重。你会发现很多组虽然有3-4个同学,但真正编程的,其实只有1-2个同学。因此,团队完全出于自愿,才可能有真正的效果出现。在我看来,无论是学习、还是编程,都应该是一种完全自觉的行为。如果只是被逼着去学,去coding,学习的效果同行大打折扣。这也可以验证那个朴素的真理:

真正的编程高手,都是自学而来的;真正喜欢的事情,读它千遍也不厌倦。


自动标签  : 实验   一   课程   完成   可以   同学   实验内容   编程   实验课   可能   学习   要求   软件    

更多 [ 课堂 ] 文章

请先 登录, 查看相关评论.