|||
一次不成功的即兴编程实验课 上周三,一位研究生毕业后到外校任教的年轻教师给我诉说了一次精心准备而又多灾多难的演示课。他用了二十多个小时,精心准备了一次即兴编程演示课,自认为从来没有这样认真过,兴致勃勃请了有关领导和老教师检查指导,还给学生们发了学生评教表,满怀信心带着软件到多媒体教室,结果遇到下列意料外的事:
(a) 软硬件资源不够 教室的多媒体设备速度较低,内存较少,可能是因为病毒干扰,前一天上午安装好的C语言编程环境,经历了两个其它课程而被损坏,重装VC用去8分钟,好不容易安装好,不知是计算机资源不够还是系统中的权限限制,一运行就死机;
(b) 征用学生电脑调整环境 幸好,临时征用了学生带的笔记本电脑,花了2分钟,把移动硬盘上资料复制过去,又花了几分钟,才把软件环境调好,至此,宝贵的15分钟时间过去了,开始请学生即兴出的题目;
(c) Game over ,沮丧极了。殊不知,学生即兴出的题目,看似简单,却暗藏难点(不是学生故意刁难老师,笔者自思,如果自己第一次遇到那个问题,在微妙的边界条件上也可能要花若干时间,捅破了窗户纸,又觉得简单),这位年轻老师的几次陷入错误,幸能挑出,但最后一次错误,用了20分钟,还未来得及跳出,下课时间到了。这一堂50分钟的课中,学生看到了老师的焦头烂额和毛焦火辣,既同情,也不满意;老师自己也好像在玩一场电子游戏,还没摸到火门就听到:“ Game over ,you are failed ”, 沮丧极了。
典型的演化过程讲述实例 在讲课、讨论班、毕业论文答辩中有时需要讲述较复杂过程。下面是几个较典型的实例:
(1) 演示即兴编程技巧。在课堂上,打开C语言编译环境,由学生即兴出题。老师即兴编程实现,让同学们看老师怎样犯错误,又怎样从错误中跳出,演示调试程序的技巧;看看“钢铁是怎样炼成的”,比只看“炼成的钢铁”学得更多;
(2) 推导复杂的数学命题。在黑板或PPT中推示一个需要30分钟或更长时间才能完成的复杂的数学命题推导过程;
(3) 数据结构的生长和死亡。演示一个数据结构(例如B-Tree,堆栈,队列,R-tree)的生长变化过程;
(4) 演示生产流程,演示基因表达式编程中个体进化过程,或……
几种展开并解析过程性难点的方法 通常,在讲述比较复杂对象的演化过程时,可以采用下列方法之一:
(a) 屏幕录像 。例如,在准备程序调试技巧课程时, 一边编程,一边使用屏幕录像程序(google一把, 可找到很多这类程序),用屏幕录像程序记录下全过程,包括犯错误和改正错误的过程。可配上录音,上课时播放;也可不配录音,上课时讲解。这一方法的优点是效果好,甚至可以不要老师讲解而自动反复播放,在做产品介绍,或作国际会议DEMO时,常用这种方法;其缺点是制作时间较长,缺少交互,不能增量更新,修改比较麻烦。
(b) 精配动画 精心做PPT,配上动画来描述变化过程,制作时间较长。
(c) 编程高手即兴编程。如果老师是编程高手,先精心地熟悉课程相关技能技巧,表演时就像平时编程一样,从容展示。其缺点是不确定因素多,老师的临场经验,心态,甚至气候,都可能影响效果。就像上面说的那次即兴编程实验课 ,其发展过程并不全在表演者的掌控之中。
(d) 假动画+标注框 。预先做好比较丰富的PPT,用“假动画+标注框”技术来展开和解析复杂对象的变化过程,易控制速度, 可增量更新,是一种 性价比 较高的方法,是本文推荐、下面将解释的方法,图1和图2给出了11个PPT页面。
“假动画+标注框”的优点
(1)简单易作 图1中演示了一个树结构的生长过程。先做好第5子图,加上一两个标注框,然后用复制幻灯片功能,复制成为连续的5份。在第5子图中把一些元素改成无色(或适当的浅色)就得到第4子图,第4子图中把一些元素改成无色或适当的浅色即的第3子图,以此类推。在“无色”和“适当的浅色”二者中,笔者更喜欢“适当的浅色”----即选择一种在电脑屏幕上能隐约看到,但投影屏幕上却看不到或不明显的颜色,(利用了投影机和电脑屏幕的显示效果差别)。
(2) 增量式更新,每次讲课后立即修改讲课中发现的不足,次年备课时,根据新的理解加以修改, 这样,讲课质量是增量式更新,第二次讲课前的备课较易 ,讲课质量一年比一年高。如果没有这样一个PPT,每年备课只是从记忆的基础上开始,用时多,进步慢。
(3) 回卷容易 讲课或答疑中,常需要倒回几页重来一次,回卷时,假动画方式的PPT比正规动画来得快,容易控制回卷点和重放速度。
(4) 引导听众视觉焦点,因用浅色隐去了稍后页面中的焦点元素,新页面刚跳出时,新元素就吸引眼球,此外,标注框能部分代替激光笔和肢体语言,老师不需要在晃眼的投影灯光前跳来跳去,或许说一句:“请注意红色标注框”,就能引导听众关注的焦点。
(5)预见下一页,心中有数。因为报告人在电脑上能隐约看到下一页的焦点内容,(但投影出来的屏幕上看不到),报告人知道下一页的将要将的焦点内容。 就避免了“幻象讲解”----即在显示第N页时,凭记忆超前讲述了第N+1页的内容。等到下一页跳出来,在把自己吓一跳之后,沮丧地发现提前做了费力不讨好的事情。(真动画方式就有这样的缺点)。
模仿“歌手假唱” 方式讲授即兴编程课 即兴编程课程通过演示老师在编程时怎样犯错误,又怎样从错误中跳出来,来传授程序调试技巧。 推荐用模仿“歌手假唱”的方法做个应急版本。
(a) 选择有代表性的题目备课,编程中较密集地抓下屏幕(有很多工具,例如搜狗拼音的扩展功能就可以抓屏幕),包括有意设置的或无意遇到的错误以及改正错误的过程;
(b) 抓屏,嵌入到PPT,选择“另存为—工具—压缩图片”,平衡投影后的清晰度和文件大小;
(c) 复制,以浅色实现隐藏,把每页的页面复制成为2-3份(以知识点,关注点为准),加上适当的标注框解释。
这样做出来的PPT可以作为一个应急预案,它能演示即兴编程,演示编程者犯错误和改正错误的过程,课后(或课前)还可以把PPT发给学生。
在即兴编程演示时,如果遇到第一节叙述的意外情况,启动上述应急预案,(或者,一开始直接就用这个PPT),这有点像歌手 预录+对口型的假唱(其实,很多节目都有预录的应急版本);也许,歌手假唱后引起观众不满,但这样的有准备的“假即兴”编程,能有效地演示编程犯错和改正错误的过程,能收到较好的教学效果。其实,假的不一定都伪劣,如假牙假肢,被广泛采用。
平时多流汗 图2是笔者讲解NP-完全问题 “子集和(Sub-Sum)”问题时用的20个PPT页面中的5个。其要点是一个归约过程,在多项式时间内把3SAT归约为Sub-Sum, 其中的标注框是根据需要,逐步出现又逐步隐去的。Sub-Sum问题较难懂,也较难讲;虽然书上也有那个表格和严格的文字说明,但不如PPT上有动作的先后过程好懂。如果没有这个PPT,可能要写满几十黑板,需要几个小时,学生记笔记也较难。自从做了较好的PPT后,讲起来轻松一些了,学生课后还可利用PPT作复习的支撑。
做一个好的PPT,平时多流汗,在教学时就会“战时少流血”了。
下篇讲什么 有博友提出这个问题,答案是“真的不知道”。
写博文常即兴选题,有感而发。博文有点像压仓物,它保持生活之舟的吃水深度,使其平稳;因其压仓物属性,所以只要科研教学一忙,诸多事务中,最先停下让路的就是写博文。
其次,选题也有踌躇 :“嘤其鸣矣,求其友声”,写文章当然希望有人读。昨天,有朋友提示我写一篇数据挖掘方面的教学难点讨论,数据挖掘问题和数学问题相比,面要窄一些。所以,在本系列博文的前几次选题时,选了读者面较宽的卷积和小波。也许下一篇议论数据挖掘方面的吧,但要选一个有点难、又有趣,还能讲得深者见深、浅者见浅,有较多读者的题目还真费思量。
相关博文
相关博文
答辩PPT五技巧-表达公式推导、数据结构和算法 (其附件中,可下载一个解释这些方法的PPT)
答辩之前支几招
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-27 11:44
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社