摘 要:“算法与数据结构”课程是高等学校计算机专业重要的专业基础课。本文针对该课程教学中所面临的实际问题,提出了一个兼顾课堂教学和课后实践的三层教学体系改革方案,并给出了方案实施的具体要求、方法和手段。
关键词:算法与数据结构;三层教学体系;课堂授课;课程实践;复习与评估
中图分类号:G642 文献标识码:B
1 教学体系建设的意义
“算法与数据结构”课程是高等学校计算机专业重要的专业与专业基础课程之一,该课程的目标是通过该课程的学习,使学生能够运用课程所讨论的概念和方法更好地进行算法设计与算法分析,掌握计算机进行数据处理的基本原理和技巧,为进一步提高程序设计的能力、进一步学习和掌握计算机专业知识奠定基础。显然,这门课教学效果的好坏将直接影响到学生能否学习和掌握未来计算机课程知识及综合利用计算机的能力。然而,由于这门课要求学生即要有一定的理论基础,如要掌握“程序设计语言”和“离散数学”的知识,又要有一定的编程能力,能够通过实际的高级编程语言实现具体的算法,因此目前这门课的实际教学还面临着一些问题,一个是上课学生的理解能力、业务水平及掌握的专业基础知识存在差异,如何在教学上兼顾所有同学,让每一个同学都能理解和掌握所授的知识点是个问题;二是上课课时有限,如何在短时间内使学生能充分理解所授内容并将课堂教学与课后学习有机结合起来,巩固和提高教学效果需要考究;三是这门课的学生人数较多,如何保证学生问题的及时答疑、学生课后作业的及时评判、检查和管理也是需要解决的问题。为了更好地提高教学的效果,达到教学目的,充分利用计算机普及使用的特点,探索新的教学理念和方法、新的教学体系是十分重要的。
2 “算法与数据结构”课程的三层教学体系
“算法与数据结构”是理论和实践相结合的课程,为此我们应建立一个能解决上述问题的兼顾课堂教学和课后实践的教学体系,如图1所示。
(1) 课堂授课
课堂授课是学生学习和掌握知识的基本途径,由于这门课的大部分内容都与算法相关,讲解起来容易使学生产生枯燥乏味的感觉。为了提高学生的学习兴趣,吸引学生的注意力,在教学内容的展示上可采用适当活泼的方式,充分利用Powerpoint工具提供的多种功能解决所授内容的呆板问题,如通过颜色的变换强调重点应该掌握的内容,用图示的方式甚至一些动画的方式来演示关键算法的解决思路等。在授课内容的讲解上明确所授知识点能解决什么实际问题,在授课形式上采用目标驱动的方法,即在讲授一个新知识点之前,先提出实际的问题,然后让学生带着问题去学习新的知识点,之后,再提出一些启发性的问题,引导学生积极探索不同知识点之间的关系,融会贯通所学知识。同时,在教学内容安排上适当增加习题课,从实用性角度激发学生的兴趣,使学生深刻体会学习这门课有什么实际用途,拉近理论与实际的距离,通过分析实际的例题使学生了解面对一个实际问题时,如何去分析和解决它。
为了配合课堂的教学活动,还要加强教学的管理工作。针对有些学生缺乏自我控制能力,对自己学业要求不严、沉迷于网游而不愿意上课、对知识缺乏钻研精神等问题不能放任不管,要加强上课的考勤制度,对多次无故缺课的同学采取必要的手段(如要经过系主管领导的同意才能参加考试等)督促其上课。另外,在介绍完知识点后讲解例题之前先让学生花几分钟时间思考如何解决这个问题,并将写有姓名和班号的答案提交,这样一方面吸引学生的注意力,检验学生学习的效果,另一方面也从侧面完成了点名考勤制度。
(2) 课后复习与评估
由于“算法与数据结构”这门课主要讨论抽象数据类型和算法的定义、表示和实现,所讲授的内容具有抽象性、动态性和灵活性的特点,在课堂教学中虽然通过采用图示的方式甚至一些动画的方式在一定程度上化抽象为直观,但课堂教学毕竟时间有限,很难全面展现所述对象的瞬间动态过程和算法的作用过程,使得学生理解教学内容不够深入和扎实,而且学生在理解所授知识点和真正掌握并灵活运用各种算法分析与设计的方法和技术也存在着距离,因此,对于一些学习能力不突出的学生来说,在学习这门课程的过程中普遍感觉难度较大。为了帮助学生更好地理解和掌握教学内容,建立一个有利于学生课后复习与评估的教学辅助平台——核心知识学习与动态练习系统是解决这个问题的有效途径,该教学辅助平台能对典型算法进行网上动态交互式模拟跟踪,将抽象的数据结构和算法实现动态同步可视化,当学生需要复习和评估自己对某个典型算法(如插入排序)的理解时,通过点取辅助平台中算法的链接,一组需求排序的原始序列的数据以图形图标形式显示在学生面前,学生通过拉动图标模拟该算法的执行过程,最后系统可根据学生的操作来判断正确执行的步骤,学生也可以通过系统给出的标准答案演示来理解该算法的正确执行的过程。这样即能达到对课堂讲解内容的补充(作为对老师课堂讲解的演示),又能使学生在课外通过对关键算法如何执行反复观察、练习和体会,加深教学知识点的掌握和融会贯通。同时,学生通过算法的模拟练习和结果的自动评判,对自己掌握知识的程度有一个清楚地了解。
在课后复习与评估教学辅助平台建设的具体实施中,可按照教学大纲的知识点要求,设计与课程内容相一致的辅助核心知识学习与算法动态练习系统,采用分阶段完成的思路,先选择简单的算法进行设计,完成原型的设计,经过评审和实际的试用,对原型进行修改和逐步完善。
(3) 课程实践
这门课要求学生必须掌握高级程序设计语言及离散数学的相关知识,通过高级程序设计语言将算法的思路描述出来并通过实际算法的执行来检验算法的正确与否。从实际的教学结果来看,尽管学生已经学过一些高级程序设计语言,但仍不能自如地综合利用所学的知识去解决实际的问题,使用高级语言实现具体算法设计时仍然不能得心应手,这就说明应用高级程序设计能力的培养要有一定的过程,需要在不断的学习和实践过程中巩固和加强,这就要求我们在讲授教学内容的同时加强教学实践工作,让学生一方面通过课堂的教学学习新的理论知识和算法设计技巧,另一方面通过不断地完成实际的课程练习及综合作业来加深对教学内容的理解和掌握,同时进一步提高综合运用知识、解决实际问题的能力。目前,由于学生人数多,布置给学生的作业量较大,如果以电子邮件方式或当面提交电子版作业,但评判却由人工完成这种方式了解学生掌握所学知识、完成作业的实际情况,则效率低而且不易检查学生作业相互拷贝情况(这种现象在本课程学生中比较普遍),同时也不好管理。另外,如果学生答疑仍以传统方式为主,即在规定时间内学生找老师答疑,则答疑的时间和地点都要受到限制。而且学生在上机编写程序时通常会遇到许多问题,需要老师解答,在规定的上机时间内这不是问题。但学生往往是在非规定的上机时间(因为规定上机时间对完成上机作业是远远不够的)完成作业的,此时,学生最希望问题能得到及时解答,如果学生的问题不能及时解决,势必影响到学习的热情和对知识的理解和掌握。显然传统的答疑方式解决不了这个问题。而且算法与数据结构这门课的考试以笔试为主,对学生的实际程序设计能力缺乏考察。这类问题是多数计算机课程教学过程中遇到的普遍问题。因此,为了加强这门课程的教学实践和管理,需要建立一个提高教学实验环节作业管理辅助教学平台,该平台具有以下功能:
(1) 支持网上信息浏览、网上作业布置、提交及评判、网上答疑等整个教学互动活动。
(2) 作业的设计与教学内容相一致,每个章节由多个作业组成,作业内容按难易程度分为选择题、填空题、简答题和编程题来设计,另外,还设计了综合实验大作业来锻炼学生的知识综合运用能力。老师通过此平台可按教学要求选择不同类型的作业定时在网上发布和关闭,学生只能在提交作业的有效期内完成并提交作业,这样也可督促学生及时完成作业。
(3) 为了充分利用选用的辅助教学平台工具可以自动评判某类(选择题、编程题)作业的功能,设计符合要求的作业形式,以达到最大程度的作业自动评判,减少老师评判作业的劳动强度。
(4) 利用辅助教学平台的网上答疑和互动功能,不仅学生的学习问题能够及时得到解答,而且也鼓励学生之间对问题的讨论,对积极参与的同学给予一定的奖励,提高同学的参与兴趣。
3 结论
随着Internet网络及计算机的普及,使得信息可以随时、随处可得,这要求教学手段及方法也应更新,我们采用算法与数据结构的三层教学体系,在继承原有教学体系中关注课堂教学的基础上,加强课程的课后复习及教学实践环节,可以使算法与数据结构这门课的教学更加系统和全面,更加适应现代教学的特点及教学改革时代的潮流,对提高教学的质量、效果和效率无疑是非常必要的。
目前,在国外大学课程教学过程中,基于计算机网络,利用音频、视频甚至虚拟现实技术已经相当普遍,也是发展趋势。国内许多高校如清华大学、广东工业大学等都开展了数据结构和算法课程教学辅助平台的研究和实践工作,国外也开展了有关的研究和实践工作,如芬兰赫尔辛基技术大学就提供有专门的针对数据结构与算法课程练习的辅助教学网。这些研究的成果也给我们实施算法与数据结构这门课的改革提供了参考和依据。
我们的教学工作正按照所提出的三层教学体系不断的建设和完善,作业管理辅助教学平台已经投入使用,支持课后复习与评估的教学辅助平台正在建设之中,相信“算法与数据结构”这门课的教学质量和效果在我们不断的教学改革中会越来越好。
参考文献:
[1] 唐发根. 数据结构教程[M]. 2版. 北京:北京航空航天大学出版社,2005.
[2] 杨桂芝.“数据结构”教学方法探索与实践[J]. 计算机教育,2007(06).
[3] 张 娟,安少华,胡选子,等.“数据结构”课程的教学改革与实践[J]. 计算机教育,2008(16).
[4] 徐凤生,任传成,李天志.《数据结构》课程教学改革探讨[EB/OL]. http://qkzz.net/magazine/1006-8228/2006/03/ 343395.htm.