余腊生 石献
(中南大学信息科学与工程学院,410083)
摘 要 本文从提高学生创新意识和创新能力出发,介绍了《数据结构》课程的多种现代化教学模式在教学中的应用,并对《数据结构》课堂教学的组织与设计、网络教学方案设计以及实验教学设计等方面作了详细的讨论。
关键字 数据结构,网络教学,教学模式, 教学方法,创新
1 引 言
“创新是一个民族进步的灵魂,是国家兴旺发达的不竭动力”,“必须不断推进教育创新”[1]。因此,创新教育是教育发展的根本,是社会发展的必然。在作为目前教育主战场的课堂教学中进行创新教育的结果如何,将直接影响教育创新整体推进的进程,课堂教学中的创新教育是教育创新的重要组成部分。
《数据结构》是计算机及相关专业中一门重要的专业基础课程,也是其它理工专业的热门选修课。它涉及数据在计算机中的表示、组织和处理,以及相应结构上的算法设计和初步的算法性能分析技术。其研究思想和研究方法在计算机科学中许多有深度的研究领域得到广泛的应用,为学生今后从事理论研究、应用开发、技术管理工作提供了坚实的理论基础[2]。但该课程具有相当的抽象性和动态性,容易造成教学低效和学时膨胀。如何使学生更好地掌握最常用的数据结构,理解数据结构内在的逻辑关系,数据与关系在计算机中存储表示以及在这些数据结构上的运算和实际的执行算法,培养学生发现问题、分析问题、解决问题的能力,是这一门课程的目的和宗旨。
2 教学原则
随着网络技术的日臻成熟,多媒体教学有着传统教学手段无法比拟的优势和特点,它是现代教学改革和未来教学手段发展的方向,利用课件辅助课程教学业已成为高等教育体制改革的一个重要环节[3]。
多媒体教学有很多优点:它集讲课、习题课、演示算法为一体,具有生动、形象、直观的特点,所显示的版面规范、文字精练、形式多样,多重感官刺激,极大地调动学生听课的积极性,有助于学生很好地理解和掌握所学内容。为了拓宽学生的思路和开阔学生的眼界,除了教材上的知识外,还精选了一些其它参考书中的内容和一些实际应用的内容,用黑板不可能有时间讲,但多媒体教学可以。许多用黑板很难讲解的内容,多媒体可给学生留下深刻的印象。
多媒体教学在讲具体的算法实现方面显得特别优越[4],可以先给学生讲解算法,然后给出数据来执行算法,学生一边对照着语句一边执行观察数据的变化,或用动画演示执行过程。尤其对于递归算法,传统的黑板讲解递归算法很不方便,而且算法的执行过程不易理解。采用动画演示递归算法,生动、形象,学生很容易看出何时发生递归调用,何时返回到上一层调用处。
多媒体教学中需要引起注意的一点是教学主体没有变。在教学过程中始终要把握好学生的主体地位,发挥教师的主导作用,避免课件的喧宾夺主。由于借助多媒体教学具有信息量大,呈现快速、表现直观、操作简便的特点,教学活动很容易出现“课件喧宾夺主”的不良倾向。师生依赖荧屏展现,演示成为关注的中心,课件扮演着课堂主角,由此导致教师忽视教学的策略与方法,忽视教学的难点与重点,忽视学生的感受与反应,忽视与学生的情感交流;导致学生只关注屏幕内容而忙于抄录笔记,忽略教师的讲解,也无暇思考问题,所谓“上课”变成“看课”。
利用多媒体辅助教学以期达到非常好的教学效果。首先必须树立现代化的教育观:把“以教师为主体”、“课程为中心”的传统教育观转变为“以学生为主体”、“以学生为中心”的新的教育观,从“以传授知识为主”转变为以培养学生具有独立获取知识、发现创新知识的能力为主,把学生创新能力的培养放在重要的地位。利用指导法教学、“启发”式教学来体现 “以教为主导,以学为主体”的教学原则[3],教师不再是知识的传递者,而是学习的组织和引导者。在教学方法和教学体系上采用与传统教学截然不同的现代教学模式,将多种现代教学模式应用于课堂和网络教学中。
3 现代教学模式
教学模式是教学基础理论的具体化,也是教学具体经验的概括化。目前,国内外有影响的现代教学模式主要有[5]:
(l)掌握学习模式:强调个别化教学,利用及时反馈和强化作为控制教学的有效手段,而编写得当的习题是获得反馈的重要途径。研究表明:个别化教学的学生的平均分比群体教学高两个标准差,前者绝大部分学生考试成绩达到优良,而后者则只有少数。
(2)发现学习模式:首先提出问题,带着问题意识观察具体事实,然后再上升到一般的概念。
(3)范例教学模式:教师用特例具体直观地阐明“个体”的具体特征;根据范例“个体”的知识推论特点,分析掌握整个 “类别”事物的特征,使对“个体”的认识上升为对“类别”的认识,从而掌握其规律和范畴;再范例地获得关于世界的关系的经验,认识更为抽象或总结性的规律。
(4)最优化教学模式:一个好的最优化教学方案的形成的基本过程是:①分析教学目的与教学任务;②分析学生学习情况与教师自我分析;③学时分析;④选择已知条件下非常好的教学任务的综合性手段与方案;⑤对教学质量进行评价。
传统的教学方法和手段,制约了以上教学模式的推广应用。CAI,尤其是网络MCAI系统的建立和以可视化为特征的多媒体技术的应用,有利于综合这些模式的长处,创建各种现代教学模式。
4 课堂教学设计
4.1 教学目标分析
根据最优化教学模式,设计一个好的最优化教学方案,首先要对教学对象的情况进行分析,了解学生的基础知识掌握程度、使用计算机的能力等实际情况,在课堂教学、网络多媒体辅助教学系统的设计和使用过程中要做到心中有数、有的放矢。否则讲课时只是一味灌输教材内容,不管学生理解和掌握了多少。即使教师讲得头头是道,多媒体辅助教学系统做的再好,也不会获得理想的效果。由于 “数据结构”所涉及的算法大多采用数组和指针来描述,而后者对非计算机专业的学生来说则相对较难,需要对c语言中指针的概念补充讲解。所以对计算机专业和非计算机专业的学生的课堂与网络教学上就采用不同的侧重点,在实验设计上,考虑到非计算机专业比计算机专业的学生在计算机操作能力和编程能力上要弱些,对前者综合实验题目不能出得太难。因此必须对学生的实际情况了解清楚,根据学生的逻辑推理能力、直观想象能力和对数据结构的相关基础知识的实际掌握情况等组织教学,充分应用掌握学习模式,达到“个别化”教学的目的,
4.2 课堂教学方案设计
(1)讲授内容安排
根据《数据结构》教学大纲及指定教材的要求,对教学内容去粗取精,提炼出该课程、每章、每节的框架体系,从数据结构的逻辑结构、存储结构和数据的运算三个方面去组织教学内容,要重点突出,简洁明了而不求面面俱到。在了解学生实际情况的基础上进行分析研究,预见学生会对哪些内容感到困难,在学习中会出现什么问题,这样才能做到有的放矢。
(2)教学策略应用
① 积累知识,重视直觉:直觉是人类重要的思维形式之一,它并不是一种凭空而来的毫无根据的主观臆断,即所谓的“第六感觉”,而是建立在丰富的实践经验和宽厚的知识积累之上,运用直观透视和空间整合方法所作出的直觉判断[1]。《数据结构》中平衡二叉树的生成过程中平衡调整规律(LL型平衡旋转、RR型平衡旋转、LR型平衡旋转、RL型平衡旋转)是学生不容易掌握的,尤其是LR、RL型平衡旋转需要进行两次旋转(顺时针方向、逆时针方向)。在传统的讲解中经常是教师讲得费劲,学生听得困难。经过长时间的探索,现在的讲解方法变为:在讲解L旋转,即顺时针方向旋转时,特意将左手(Left)伸出,然后慢慢形成拳头,而形成拳头的过程中手指的弯曲方向正好是顺时针旋转方向;同样在讲解R旋转,即逆时针方向旋转时,特意将右左手(Right)伸出,然后慢慢形成拳头,而形成拳头的过程中手指的弯曲方向正好是逆时针旋转方向。反复几次,学生终于顿悟:L型顺时针旋转方向,就是左手手指弯曲的方向;R型逆时针旋转方向,就是右手手指弯曲的方向。因此将原来抽象的顺时针、逆时针旋转调整规律简化为直观形象的“左右手原则”。这种方法的调整,不仅极大的提高了教学效果,同时加强了学生直觉思维的培养。
② 个别化教学:在课堂讲授中教师起到的是提纲挈领、组织和引导的作用。明确一次课的目的,解决什么问题,通过什么途径达到这个目的。对易懂的内容可以点到为止,重点难点精讲细讲,细节内容可由教材和配套的多媒体软件体现。所谓重点是指数据结构中的重要概念、重要算法思想等。对这部分内容,一定要结合多种教学方式和手段去讲深讲透,引导学生理解概念的含义,掌握算法的实质,在此基础上,寻找解决问题的方法。所谓难点,是指学生不易理解和容易出错的地方。确定课程的难点内容,教师要调查了解,以抽查作业以及课堂提问、电子邮件等形式来获取反馈信息,充分发挥学习模式的优势。在难点确定之后,要分析究竟难在何处。是因为概念抽象不易掌握,还是因为算法思想复杂不易理解,或是容易混淆不易区别?然后研究解决问题的方法。对于抽象的东西应该形象化、直观化地进行讲解,对于复杂的内容应注意其条理性,对于易于混淆的内容宜尽量采用对比法加于区别,做到化难为易。
③ 问题驱动:问题驱动[3]是指学生在教师创设的情境下应用已有知识提出新问题、解决新问题的过程,也是学生高度自主学习的过程。教师在讲课时,要体现教学思想,引入3W的教学理念,采用发现学习模式,应用启发式教学。为了在课堂上激发学生的学习热情,发挥学生的学习积极性,同时更好地把理论知识与实际应用结合起来,在讲每一种基本的数据结构之前,准备一些实际应用的例子,让学生一边逐步学习理论知识,一边思考如何应用。比如在学习线性表之前,举几个常用的线性表的应用实例,让学生在学习的过程中考虑一个简单的计算器的实现。让学生带着问题去学习,使学生的学习热情提高了。What是让学生明确学些什么,拓展学生的知识面。通过经常提出问题,让学生思考并回答,以跟上教师的思路,活跃课堂气氛,创造轻松活泼的学习情境,留给学生想象的空间,提高学生的思维能力、自学能力和创新能力。提出的问题要自然、尖锐、具有逻辑性。How就是如何做的意思。对问题的分析要简明、透彻,防止烦琐杂乱;解决问题要切实准确;要引导学生积极思考。要做到这一点,必须考虑:讲解一个问题时,怎样引导学生动脑筋,可以先不给出结论,让学生自己考虑问题。Why是让学生能够知道为什么这样做。注意教给学生提出问题、分析问题和解决问题的方法,最终达到学生自行探究问题的目的。提出一个问题比解决一个问题更重要,因为解决问题也许是一个数学上或实验上的技能而己,而提出新的问题、新的可能性却需要创造性的想象力。因此问题驱动是学生思维高速运转的过程,它将极大地强化学生的源动力,激发学生浓烈的探求欲望及学习兴趣,使学生进入一个积极思考的活跃状态。
④ 范例教学:课堂讲授应符合学生的认知规律,从感性到理性,从理性到实践,从直观到抽象,再从抽象到具体实践,范例教学在数据结构的算法思想讲解中能发挥其无法比拟的优势。对数据结构中的主要算法和一些抽象的概念,可以尽量先从直观意义或具体实例解释着手,让学生更容易理解。因此在教学过程中宜多画图,多举例,多解释。这种从特殊到一般,从具体到抽象的方法在数据结构中的很多内容都可以这样处理。例如:讲解队列的概念时,可通过日常生活中的购物排队的过程来反映队列中插入、删除的原则,再结合计算机中的操作队列、打印队列的应用来说明。对二叉树的遍历的算法过程可通过一个特定的二叉树的例子说明其遍历思想,再推广到一般的二叉树的情况等等。
⑤ 大胆想象,勇于实践:在《数据结构》中的内部排序一章里讲授了各种经典的排序算法,其中在讲解折半插入排序时,启发学生:该算法的核心是利用有序表的折半查找,而折半查找的核心就是mid=int(low+high)/2, 即mid=int(low+high)*0.5。此时请同学想象:如果将0.5换成其它数字如何?如果变为0.618结果又会怎样?在几分钟的议论后,进行总结分析:0.618就是我们平时所说的黄金分割线,将0.5换成0.618后不妨称为黄金分割算法。而黄金分割理论上应该是非常好的位置,黄金分割算法理应比折半插入算法优化。为此,请学生编写程序对同样的一组10000个随机产生的数字,分别使用黄金分割算法和折半插入算法进行排序,通过比较两个算法实际使用的排序时间来证明黄金分割算法的优化。这样,一方面提高了学生上机编程的热情,一方面让学生逐渐养成大胆想象,勇于实践的创新精神。从理论上将就是注重了学生形象思维和逻辑思维的培养。
⑥ 淡化语言,强调流程,开阔发挥空间:算法是《数据结构》中的重要组成部分,每一章每一节都有各自的算法。而目前所有教材都是基于某一种语言编写的,有类Pascal语言、类C语言、C/C++语言等等。不管是什么语言,一旦将程序给出,就完全禁锢了学生的想象空间,学生只是一味的去理解程序的语句、过程和函数。而程序设计本身就是一种创造性的劳动,最有利于培养学生的创新能力,因此在课堂教学中,凡是算法讲解后只给出抽象的流程,不给出具体的程序代码。至于具体语言的选择以及数据变量的确定,完全由学生来完成。这样不仅解决了由于学生语言的不足而影响算法掌握的难题,同时给学生足够的发挥聪明才智的空间,利于创新能力的培养。
⑦ 抓住机会,向大家质疑:由于受传统教育影响之深,绝大部分学生均已形成了对书本、对教师、对大家(权威专家)的迷信,总以为书本上的绝对正确,教师讲的都是真理,从不敢对大家有半点怀疑,而“读书无疑者,须教有疑,有疑者都要无疑,到这里方是长进”。因此,为了创新,在课堂教学中必须鼓励学生敢于质疑,并敢于向大家质疑,以逐渐使学生从传统的聚合思维中解脱出来,养成发散思维方式。
4.3 多媒体CAI教学方案设计
多媒体CAI课件综合利用网页制作工具、多媒体创作软件和数据库技术,把文字、图形、图象、声音、动画、影像等多种媒体综合起来,创造生动、活泼、有趣的教学情景,使学生变被动学习为主动学习,创造性地进行学习,以随机性、灵活性、全方位、立体化的方式把知识形象生动地呈现给学生,知识密度大、表现力强,能很好激发学生的兴趣,从而可以提高教学的效率和质量。
(1)教学内容的组织
以教学大纲为依据,根据教材,从学生的实际情况出发,以教育学、心理学的有关理论为基础,结合从事该课程多年教学的教师的教学经验,分析本课程的特性,从数据结构的逻辑结构、存储结构和数据的运算三个方面去组织线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构,对教学内容进行精排和优化,运用多种教学艺术展现学习内容以激发学生的学习兴趣,帮助学生对学习内容的理解。教师要为学生创造良好的学习条件和环境,激发学生的学习动机,提供合理的学习策略,从而促进学生的自主学习。
习题是获得反馈的重要途径,如何选择深度和广度适当的练习题和自测题,以便学生及时、有效地调整学习策略,是实现个别化教学的一个重要环节。习题的选择必须广度和难度兼顾,要覆盖所学的内容,对课本上的习题选其精华,尽量选有启发色彩的习题。对练习中暴露出来的普遍问题,进行网上辅导或进行课堂集中讲评,帮助学生澄清模糊和错误的认识。
(2)教学内容的展现形式
由于数据结构涉及从简单的线性表到复杂的树、图等多种数据结构,具有一定的难度和复杂性,给该课程的学习带来了许多困难,对算法思想的理解成为数据结构这门课程的一个重点,所以如何将抽象的算法执行过程以浅显易懂的形式展现在学生面前,是决定这门课多媒体辅助教学成败的一个关键。利用程序可视化思想,首先建立数据结构课程中算法的可视化动态执行模型[6],从数据的可视化和算法过程的可视化两个角度去实现算法演示;数据的可视化是以图形和符号的方式表示数据元素以及数据元素之间的关系,算法过程的可视化是通过图形的方式表示数据结构状态的转换及其变化过程,力求生动、形象,将算法执行的动态过程表现得淋漓尽致。
基于以上思想,多媒体CAI课件主要包括课程内容、算法演示、在线测试、在线讨论以及资源中心5部分功能。课程内容提供了包括章节内容、章节习题、补充练习和实验指导,这是学习的重要内容和课程基础,用于配合课堂教学,起到相辅相承的作用;算法演示提供了数据结构课程中重要算法的动态交互演示,便于学生对算法的理解和掌握,符合联想性思维特点,动画的直观、生动、形象等特点有助于学生深刻理解相应的算法,利于培养学生的发散性思维和建构性知识结构,激发学生的学习兴趣;在线测试提供了试题的在线考试,试题类型包括判断题、选择题和问答题,通过学生自由选择题型和测试内容来自动组卷,完成自我测试。学生在学完相应章节的内容后,可自行选择测试内容和题型进行在线测试,通过在线阅卷,学生可实时获得测试成绩,查看对错情况以及正确答案。有利于学生及时纠正错误认识,调整学习策略。所以构造合适的试题库,是教学质量评价的一个重要手段。通过在线讨论进行网上答疑、辅导,可以突破时空的限制,实现教师与学生、学生与学生之间交流新的思想和解决学习中遇到的难题。资源中心提供了许多相应参考资料的下载,包括学习素材、历年考试试题和模拟试题、软件的下载,以及各种网络资源。总之,多媒体CAI课件可以提供交互式环境供学生学习,并自动根据操作过程进行实时评价,它可实现学生与机器、与学生、与教师之间的多项交流,让学生通过网络学习,自己掌握学习进度,提高学习的积极性和主动性,达到提高学生素质的目的。但在使用过程中不能过分强调多媒体CAI课件的作用,而忽视了教师的讲授作用。如果我们的课堂变成纯粹的计算机媒体演示室,学生必定是走马观花,不知所云。所以必须把多媒体CAI课件和教师课堂讲授有机地结合起来,形成非常好的教学任务的综合性手段与教学方案。
4.4 实验环节的教学设计
(1)实验目的
数据结构是实践性很强的一门课,培养学生的实践能力是教学的首要目的。数据结构理论知识的传授是为应用服务的。因此,在授课的同时,如何引导学生利用上机实验来加强实践也是教学中的一个重要问题。根据最优化教学模式,首先数据结构实验教学的目的是:(1)紧密配合理论教学,通过相关实验,帮助和加深对数据的逻辑结构、存储结构、算法思想和具体实现等各个环节的整体理解;(2)通过实验可以将各门课程学到的知识融会贯通,思考与发现利用数据结构解决实际应用问题的有效方法,从而使学生分析和解决问题的能力得到锻炼和提高;(3)通过实验,强化学生“结构一算法一编程”三者密切相关的意识。平时的练习较偏重于如何编写功能单一的“小”算法,而实验是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计的基本技能和技巧,多人合作,以致一整套软件工作规范的训练和科学作风的培养。围绕以上目标,数据结构的实验教学,也应该遵循认知规律,逐步地从无到有,从观看演示到自己动手编程,从单一算法实现到综合设计分析,直到具体应用实例研究。
(2)实验选题
依据实验教学的目的,针对计算机和非计算机专业所要达到的不同的实验教学目标,以及考虑学生的个体差异,将实验设置成不同的类型:(1)必做和选做实验:这两类实验都是结合相关课程的教学需要由授课教师设计的;前者目的在于帮助学生掌握基础知识和实验研究方法,后者则在于培养和鼓励学生的学习兴趣、扩大知识面以及培养学生的应用能力和创新意识。对非计算机专业学生上机初期,应该要求学生重点回顾C语言的基础知识,特别是数组和指针的有关操作,然后可根据学生的特点因材施教,使其在掌握基本理论的基础上,理论联系实际,进行一些创新工作。(2)允许学生结合本人的兴趣,从实际应用中选择有具体应用背景的实验题目,充分发挥学生的主动性。或由教师结合实际给学生布置一些较大的设计课题,使学生分组共同完成。当然,在难易程度方面要求做到量力而行,这样一方面锻炼了学生的自己动手能力,也加强了他们交流与团结协作的精神;另一方面确实能将理论与实践相结合,从而大大激发了学生的学习热情,为其今后的学习和工作打下良好的基础。
(3)实验结果提交
实验开始之前,安排集中上课讲解,实验中安排教师现场辅导,实验课结束之后组织交流讨论。除了安排面对面的答疑以外,可结合在线讨论来有效地辅导学生做好实验。对基本实验要求学生单独完成,一些综合实验则分组完成。实验成果包括学生按照实验的具体要求所开发的所有源程序、源程序的说明文件说明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明等、撰写课程设计报告,包括算法的主要思想、主要数据结构、算法的基本实现、调试过程、结论及心得。对算法要注释,书写工整、绘图规范,正确引用术语以及实验环节的总结,总结可以包括 : 实验过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在实验过程中对《数据结构》课程的认识等内容。
5 结束语
网络MCAI是一种优秀的教学媒体,它对于提高教学质量和教学水平、推动教育改革都具有非常重要的意义。我们在教学过程中必须把网络MCAI和教师课堂讲授有机地结合起来,积极改变自己的教学方法,运用多种现代教学模式,使教师讲授与多媒体教学相辅相成,以最优的组合完成教学任务,让学生既能学到新的知识又可掌握学习的技能,达到提高学生素质的目的。
参考文献
[1]何克抗. 现代教育技术与创新人才的培养[J]. 2002教育部“教育技术学学科建设”高级研讨班报告
[2]严蔚敏. 数据结构[M]. 北京:清华大学出版社, 1996
[3]陆菊康等. 《cc2001教程》的研究与思考. 网络时代的中国计算机教育,1999,P17-20
[4]吴伟民. 数据结构和算法的可视化教学研究与实践. 高等教育研究学报,1999.3, (72)P35-37
[5]范惠林,赵思宏. 研究性教学模式在专业课程中的应用. 现代教育科学,2002.(11) P44-46
[6]陈丽娟. 算法执行过程的可视化在CAI中的应用. 计算机工程,1999,25(9)
收稿日期:6月25日 修改日期:7月8日
*本项目受中南大学2004重点教改项目资金资助(204Z23)。
作者简介:
余腊生,男,1969年生,获硕士学位,攻读博士学位,副教授,主要研究方向为数据库技术、结构与算法、基于Agent的计算。
石献,男,硕士研究生。