|||
享受学习,享受实践---喜看学生“玩”电脑,----巡课笔记之四(唐常杰)
Enjoy computer 计算机科学是实践性很强的科学,如今,写篇理论性的文章,如果没有一定的实验验证,没有几十个曲线或图表,已较难发到顶级会议或杂志了,至少在数据库界是如此。
有人说电脑专业学生手中的电脑就像战士手中的武器,常用常练。除了学习理论,低年级学生会用相当的时间和电脑厮磨,有些高年级的学生会即兴写出平板电脑和手机的应用,学电子游戏方向学生的即兴编个游戏程序送朋友,他们写游戏剧本、玩游戏、都是“恰务正业”实践。
学得轻松的同学把这些实践活动规约为 “玩电脑”。好一个“玩”字! 它体现了学生的愉快心态,Enjoy computer ,就是 Enjoy praictice study,Enjoy technology。
并不像中学生想象的那么好玩 以为计算机专业大学生的学习就是“玩电脑”,也可能也是部分中学生被吸引到计算机专业的原因。其实,各行有各行的难处。一些教师不希望子承父业,就因对本行之难了解太多,计算机专业也莫能外。
大一学生进了计算机专业,才知道计算机专业也有难学的离散数学、枯燥的汇编程序、艰深的编译理论,不易入手的面向对象程序设计,不是中学时想象的那么好玩。一年后,总有极少数学生申请转向其他专业,理由中,兴趣不合多属托词,觉得难才是主要的,学起来难,自然就没了兴趣。
实验课引领学生“玩“电脑 计算机专业本科低年级的实验课中,探索成分和学习成分的比例 大概为2:8 或 3:7,随年级升高而升高。实验课中,总要和设备打交道,老师在实验课上是大玩家,带领一群小玩家玩设备,玩C语言,玩汇编,玩网络, 玩数据库,等等;如果能让学生们玩出兴趣,在玩中巩固知识、化解困难,在玩中建立信心,玩出成果,就达到了实验的目的。
老师显示动手能力,激励学生动手能力。培养学生动手能力的最好方法是老师在实验中显示自己的动手能力,让学生佩服,让学生模仿。一些老师在实验课中自己建设实验和改造环境。
各有特色的数据库实验课 笔者巡听了几位老师的数据库课程实验课,他们的共同点是 “项目驱动(Project-Driven)+ 三次通关”, 但在教学指导上又各有特色。
所谓项目驱动,是指学生小组(2-4人)在一学期的实习中,完成一个能运行的应用系统原型,例如图书馆管理系统、学籍管理系统,或停车场管理系统,….; 围绕这一目标,学习软件平台安装、熟悉开发环境基本要素,最后要实现应用系统原型,而硬指标是通过实际运行的检验。
一课多师,各有特色。Gx老师的实验课也是双语课,全英文的PPT,讲解以英语为主,对内容难点,用中文再解释一遍;听课教师觉得讲得很清楚,设计过程。需求分析,等环节处理得不错。
Lc老师在对学生的个别辅导方面有特色,学生反映他特认真,每到程序验收时,师生都进入大忙收获季节,检查、纠误,验收,学生组有三次通关机会,大部分两次能通过,少数学生要第三次才能通过,费力多,也学得多。
Cp老师是编程高手,做过许多实际项目。其特色在提供的原型框架和半自动验收。要求学生做成一个B-S(浏览器-服务器)模式的目标系统,有一定难度,为减轻难度,老师提供了B-S系统框架(这不属于数据库课程内容,且需要较多经验),学生完成其中的14项数据库查、插、删、改功能。并通过一个半自动检查系统的验收。他的框架式辅助编程思路,启发笔者写下了下面几段。
急切学艺的学生 与 不慌不忙的师傅 低年级学生渴望进大学两个月就能学会写Windows风格的小程序--有界面、有窗口、有菜单、有颜色。
有老师说,不急,慢慢来,需学的还多,先学C语言,再学C++,学了对象类,学了MFC,才会编窗口风格的程序,早着呢,也许,要到二下或三上才学得会。这些老师也有理由,计算机专业的学生将来是要发明或研制一门语言的,需要深刻的理论基础,要夯实基础,一步步来。
其实,低年级学生学写程序,主要还是技术和艺术层面的事;而且大部分学生,将来也不会去研制或发明一门程序语言。在技术和艺术层面,是可以先知其然,后知其所以然的。
而框架式辅助编程能帮助学生先知其然,缓和“老师不急学生急”的矛盾。
框架式辅助学习编程 下面的例子是多年前给数据库方向硕士生用的,旨在实践数据库管理系统内部机制,现已年久失修,跟不上平台版本升级的步伐,虽然out了,还可以用来说明框架式辅助的思路。
这是一个亦虚亦实、亦真亦幻、亦难亦易的框架。
说它实,是因为课题组老师先写好了1.3万行代码,初具一个简单DBMS的功能,能建能存、能查插删改、有B-Tree、 有命令解释器,有时态管理机制…;
说它虚,是在实验前,把某些过去实现得不好的、或有典型性训练意义代码挖空了,让新的学生重新实现;例如显示结构模块和数据装载模块,是数据的逻辑表达和物理表达的纽带,对理解内部机制有典型的训练意义,多次挖空作为训练科目;
说它真,是因为框架总60%的子菜单项是真正实现了的,点击,跟着提示或子菜单,就能运行;
说它幻,有些菜单项是临时设想中的项目,或某研究生正选题探索的项目,例如点击菜单项 “测试Encode”,屏幕上将显示::
“本模块测试数据库加密方法
此模块由XXX同学开发,采用论文XXXX上的方法或更好的自己改进方法
要求:输入 XXX……
输出 XXXX…….
模块文件名: Encode.C, 头文件名 Encode.C, 其他相关文件:….”
开发注意事项 ....
规定完成时间:.....
说它难,是因为造一个简单的DBMS(数据库管理系统),比学会用一个DBMS难,就像自己学装一个简单的收音机,比学会用一个收音机难得多。
说它易,实际上它是已局部化了的任务书,规定了模块功能,输入、输出以及格式,提示了必要的相关文件,以及大致的思路。执行者只须读基础代码中的15-20%,自己再写1500-2000行程序,就可以测试自己的想法,如“测试Encode”测试数据库加密,等等。
先搭好框架,再赶小鹰上架去学飞 。把上述亦虚亦实、亦真亦幻的框架内容,换成适合本科低年级学生实习的应用系统,如上面提到的目标项目,学生成绩管理、图书馆管理、停车场管理、 简单排课系统,等等。低年级学生就能在框架辅助下,在一个实习小组中,用C,C++,JAVA,或SQL,开发出一定规模的实用系统原型,学习编程技能,还能得到团队合作锻炼。
只要搭好了框架,然后,赶小鹰上架去学飞,没有教学风险,能够飞起来。因为:
(1) 任务已分解,老师已把全局任务分解为局部任务,且给出了各块衔接参数和格式,保证合格部件能组装成功、能正确运行(这一步有点难);
(2) 有模可仿,框架的基础代码就是“模”,在模仿中学习,在编程中学编程,在游泳中学游泳;
(3) 不大的旧程序阅读量,10-15%的基础代码,如与模块衔接的其他模块模块的输入、输出;
(4) 调用基础模块中的窗口输入输出工具函数,如在窗口中输入或显示字符串的函数,低年级学生可以轻易实现窗口风格的界面;
(5) 先填空式地完成局部任务模块,知其然,到了期末,悟性高的学生能知其所以然,自己写出这样的框架。
一旦学生学会了做这样的框架,用途就多了,例如:
(1)集成自己的实习作业,把实习作业成一个窗口化的点菜单式的程序集合;
(2)集成课外创作,有了一个小小的灵感,在框架下,对用过去的工具模块,就可测试新的想法;
(3)学会组织合作,把一个较大的创新想法分解成为多个小题目;一周做一点,一人做一点,集零为整,集小胜为大胜,一学期几个人,就做成一个稍微大一点的、拿得出手的项目;甚至像博文《计算机科学, 大一学生怎样来爱你)》 中说的L同学那样的,做出能实际应用并产生经济效益的项目,同时锻炼了项目分解和管理的能力。
过来人的唏嘘,当年痴心遇冷风 高年级学生中的程序高手,回望来路,感叹大一时的迷茫和蹉跎,说:最难的是不知在何处下手,一个大程序(1000-10000行),不知先写哪一行,不知怎样去写一个窗口风格的程序。刚刚学C语言时,知识少,技能少,写的程序都是DOS风格的,键盘输入,黑屏幕输出。看见中学的同班同学,学的还不是计算机专业,都能编窗口风格的程序了,心里就着急。想快点学,老师却不断告诫要踏实,要慢慢来,有点像是痴心遇冷风。
到了三年级,总算学会了,如果当年有三四年级的学长指点一个框架,就可能快一点。
值得欣慰是,现在已经有高年级的学生,愿意试一试,为低年级学弟学妹们,开发这类型的辅助学习框架系统.....,
期待他们的成功。
巡课笔记后记
督导组不是督战队,不是教训组 教学督导组中,有院系管理教学的领导,也有已经退休或即将退休的老教师。巡课过程中,我们看到了不足,更多的是看到了欣慰,看到了年轻老师的成长。
如在本系列第一篇说的,教学督导组是传感器,是蜜蜂,不是督战队,更不是教训组。上课的教师已为人师,不需要别人去教训。只要传播教师中的好经验,他们就能感觉到压力。
作一回蜜蜂,传播花蜜一样的好经验,正是本系列博文的宗旨。
重当一次本科生的感觉真好 在交流巡课体会时,督导组老师们说,巡听了不少以前学过、教过,但已经被更新、变化了的课程,有的课程变化很大,恍如隔世,也是一次重新学习。
老教师Lb 说:“重做了一回大学生,觉得老了,老了,”,“退休后重新回教室听听课,重做了一回大学生的感觉真好”;
他还说出了督导组老师的心声:要把理念应该放到第一位,要教学生“Learn how to learn”,......
到此,巡课程笔记基本结束,原策划还写一篇议论考试的,暂未写的原因有二:(1)离考试还有一段时间,没有调查就没有发言权;(2)以前写过一个关于考试的系列博文,可暂时参考(参见后面)。
系列博文
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-23 18:57
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社