首页 -> 2007年第1期
如何使数据结构课堂教学更加生动有趣
作者:张群哲
关键词:数据结构课堂教学;有趣的游戏;扩大知识面;突出实用性
数据结构是计算机及相关专业的专业基础课程,了解数据结构的基本概念、基本结构和基本算法是提高计算机程序设计能力和软件系统设计能力的必要条件。然而,数据结构课程比较抽象,对逻辑思维能力要求较高,学生普遍感到比较难学。要提高学生的学习兴趣,取得良好的教学效果,课堂教学、实验教学、课程设计等各个环节缺一不可,而生动有趣的课堂教学就是吸引学生的第一步。
笔者在课堂教学内容的编排上注意由浅入深、算法分析与实例演示相结合,使学生能直观地看到算法的作用以及不同算法的优缺点。在教学手段上,一方面采用现代多媒体教学来加大信息量、进行直观演示,同时也充分发挥传统板书在逻辑推理、演算分析方面的长处,二者的完美结合使得数据结构这样一门比较抽象的课程变得不再是那么深奥难懂了,而要使它真正变得生动有趣,还得在其他方面多下功夫。
上好第一堂课
第一印象非常重要,不仅要让学生喜欢教师本人,更要让他们对数据结构这门课程产生浓厚的兴趣。第一次课的教学目标就是要明确:什么是数据结构、为什么要学习数据结构。开学之初,学生大多还沉浸在寒假的状态中,笔者即以此为切入点引入逻辑结构的概念:大街上熙熙攘攘的人群是“集合”、火车站买票的长龙是“线性结构”、四世同堂的大家族是“树型结构”、长沙一日游线路是“图结构”。师生一起回味着假日的生活:步行街的热闹、买车票的艰辛、大团圆的喜悦、古长沙的变迁,一下了拉近了课程与生活的距离。
有趣的游戏
互动和参与是活跃课堂的灵丹妙药,而学生自己从游戏中推导出的结论也更易于理解和记忆。在讲到栈结构的时候,教学游戏是这样进行的:
教师:“请坐在靠墙长椅上的四位同学站到过道中来”。
学生:很自然地按先外后里的次序鱼贯而出。
教师:“谢谢你们的合作,请回到各自的座位上去。”
学生:按刚才出来时相反的次序鱼贯而入。
教师:“请最外面的同学出来好吗?”
学生:很轻松地完成。
教师:“现在请最里面的同学出来。”
学生:面面相觑,最后里面的男生从桌子上爬了出来,全场大笑。
此时,再请学生一起来分析栈结构的特点,很自然地得出“先进后出,插入和删除只能在栈顶进行”的结论。
将游戏与学生的热门话题结合起来,更能引起学生的共鸣。如链结构的游戏就按当时正在热播的电视剧《暗算——捕风》的剧情来设计。请几位学生分别扮演地下工作者毒蛇、小马驹、耗子、警犬、白兔,演绎单线联系传递情报的流程,这不仅使学生对链结构“逻辑上相邻的记录不一定相邻存储”的特性有了深刻的认识,在学习链表的插入、删除时也更容易理解了。
类似的小游戏也可用于冒泡排序等内容的教学。笔者总是将游戏设计得短小精悍,有代表性,以集中体现教学内容的核心思想,如此便收到了事半功倍的效果。
扩大知识面
学无止境,充满求知欲的学生总是想从教师那里学到课程以外的更多知识。如果教师能结合课程教学旁征博引,不仅能扩大学生的知识面,提高学习兴趣,还能赢得学生的尊重与爱戴。例如,上第一堂课时,我通过长沙一日游的线路引出逻辑结构中的图结构:先画出几个主要景点的方位图,其间有四通八达的道路;再循着三国时关公战长沙的足迹,沿着魏延刺韩玄的路径,开始了图上旅行。想当年韩玄狼狈逃窜,两次脱靴故布疑阵,却都被魏延识破,最终难逃一死,这一幕幕场景仿佛在眼前闪过,回头再来看那些原本连许多老长沙也不明就里的地名,什么“南倒脱靴”、“西倒脱靴”、“赐闲(刺韩)湖”,竟一下子变得活生生的了。可是要游遍图中所有的景点,该如何选择最优线路呢?这些悬念极大地引发了学生的兴趣,也明确了数据结构课程的学习目的,为后面的学习奠定了坚实的基础。后来有学生把这些故事写进了名为《长沙印象》的文章,发表在校刊上,引得更多学生关注古长沙的人文历史,令笔者十分欣慰。又如,在讲到“权”的概念时,笔者不是简单地照搬教材上的解释“给树的每个结点赋予一个具有某种实际意义的实数”,而是从汉语中“权”的原意“砝码、秤锤”说起,引出权衡、权力等含义,然后绘声绘色地说起了楚汉战争的故事。当时刘邦与项羽在鸿沟对峙,相持不下,而手握重兵的大将军韩信的立场就起了决定性的作用。项羽的说客武涉为韩信分析天下形势,说道“当今二王之事,权在足下,足下右投则汉王胜,左投则项王胜”。韩信感念刘邦的知遇之恩,没有听从谋士蒯通“自立为王”的建议,而是选择了出兵助刘,这才有了历史上著名的“十面埋伏”、“垓下之围”,不可一世的西楚霸王自刎乌江,令人扼腕长叹的故事。一句“权在足下”,不仅让学生深刻领会到了“权”的实质,甚至还引得几位学生读了《史记·淮阴侯列传》。
突出实用性
无论学习哪门课程,学生最喜欢问的莫过于“为什么要学?学了有什么用?”对于数据结构这样一门理论性很强、比较抽象的课程来说,一定要在突出实用性上下功夫,才能让学生明确学习的目标。图的概念和术语抽象又复杂,干巴巴地讲解只能让学生一头雾水,失去兴趣。笔者是以图结构的实际应用为出发点,采取逐步扩展的方式介绍图的相关概念。
“世界杯就要开赛了,每小组四个队打单循环,每个队要打几场?A组共有多少场比赛?作为赛事主办方,你该怎样来安排A组的比赛日程?”学生们七嘴八舌地议论起来,有的说共12场,有的说共6场,有的越想越糊涂。这时笔者画出了一张有四个顶点的无向完全图,结果一目了然,抽象的概念顿时转变成了实用的利器。
如果中国队打赢了,在图上如何体现呢?很简单,边上加个箭头,指向胜利者。”于是,无向图变成了有向图,顶点的出度、入度、度的概念也就分别变成了球队输、赢和总的比赛场次了。
“可是足球小组赛不一定能分出胜负呀,积分能在图中体现出来吗?能!得分就是边的权。”前面的无向完全图被改造成了带权的有向完全图,通过弧头对应的权就可以轻松地计算出球队的得分。
“进入十六强之后的淘汰赛用什么表示?”这个问题对于一个个已经俨然成了世界杯主办者的学生来说简直太容易了,大家异口同声地回答“树”!此时还有谁会觉得数据结构是一门没有实用价值的课程呢?这时再趁热打铁地把世界杯赛程设计作为课程设计的内容布置下去,让学生带着目标学习,并且及早着手准备,保证了课程设计的圆满完成。
以上只是笔者在教学实践中的一点心得体会。要使数据结构的课堂教学更加生动有趣,还需要教师与学生共同努力,一起探讨,开发出更多更好的教学方法。此外,还需通过加强与完善实验教学、课程设计使数据结构真正成为一门广受欢迎的专业基础课程。
参考文献:
[1]名人与街道[OL].http://www.dmw.gov.cn/newslist.asp?id=487.
[2]曲建元,刘元红,郑陶然.数据结构(C语言)[M].北京:清华大学出版社,2005.
[3]司马迁.史记[M].西安:三秦出版社,1999.
作者简介:
张群哲(1970—),女,硕士,湖南科技职业学院,讲师,研究方向为软件技术。