计算机科学与技术第二专业“数据结构”课程教学探讨
2012-04-29袁援
袁援
摘要:计算机科学技术第二专业教育是一种扩展信息类课程影响力的重要教学环节,而数据结构是该教学环节中的核心课程,如何提高数据结构课程在第二专业教学中的质量和效果是办好第二专业亟待解决的问题,但目前对第二专业数据结构课程的教学探讨和经验交流还比较少。本文从作者的实际教学经验出发,对计算机科学与技术第二专业数据结构的教学做了一些探讨,在分析这一教学环节特点和存在问题的基础上,总结教学中的一些经验,并从学习导向、教学内容、教学方式和手段几方面提出改进这一教学环节的新措施。
关键词:计算机科学与技术;第二专业;数据结构
中图分类号:G642.3文献标识码:A 文章编号:1002-4107(2012)07-0045-02
为满足一些学生跨学科的兴趣并普及计算机学科的学习,国内很多高校计算机科学与技术专业都面向非计算机专业的学生开设第二专业(下文将计算机科学技术第二专业简称为第二专业),通过对数据结构、计算机组成原理、软件工程等计算机主干课程的学习,可使非计算机学科类专业的学生掌握主修专业的同时,学习并掌握一定计算机学科的专业基础理论,可培养跨学科的复合型人才。
“数据结构”课程是程序及软件设计的理论基石[1],是计算机学科的核心基础课程,各高校都非常重视“数据结构”课程的教学和教育改革[2],在计算机专业的教学计划中,“数据结构”一般都被列为核心课程[3]。学习数据结构时,概念和算法不易理解,技术、方法和原理不易掌握,从不同学校的课程教学过程和效果来看,普遍存在难教、难学、难用的问题[4]。即便是计算机学科的学生学习起来都会感到头疼,更何况专业基础较薄弱、实践经验稍逊的第二专业学生。如何提高数据结构课程在第二专业教学中的质量和效果是办好第二专业亟待解决的问题。
就目前而言,对第二专业学生数据结构课程的教学经验交流和探讨还比较少,笔者以从事第二专业“数据结构”教学的实际经验出发,结合自己多年从事计算机专业数据结构教学的经验,为提高该教学环节的质量做些探讨。
一、教学特点
当今信息时代,各个学科相互交叉、渗透,已没有明显的学科边界,计算机已融入到几乎每个学科中,各学科的高速发展已离不开信息技术为其带来的便利,甚至文科类学科也将由计算机提升其效率,比如,法学中的电子取证,美学中的电子设计。为使自己能在本专业范围内有更大的发展,选修第二专业的学生通常不满足于自己对现有专业的学习现状[5],欲在学习计算机技术的基础上,在本专业的发展前沿上走得更远,期望自己成为未来社会的复合型人才。与计算机本专业的学生相比,他们对计算机课程的系统化学习具有如下特点:
(1)学生大多来自文科,对符号不太敏感,不太习惯工科的基于逻辑分析的学习方式;(2)选修第二专业的学生
大都是在专业领域中比较有思想和追求的,学生往往对计算机系统学习的期望值比较高,开始学习时热情都比较高涨,通常对计算机领域充满憧憬,学习热情比较高;(3)前导课程较少,在计算机程序开发方面有一些开发经验,但比较少。
基于这些分析,在第二专业数据结构课程的实际教与学的过程中,由于课程本身入门的起点比较高,学生对课程困难估计不足,在学生准备不充分的情况下可能表现出厌学情绪,这时教与学双方都会感到比较吃力。出现上述问题时,如果采用与计算机本专业学生类似的方式进行授课可能得不到解决,在授课过程中,应该在不同方面进行教改的尝试和探究,以全新的方式对待第二专业数据结构的教学。
二、新的教学措施
(一)学习导向
1.以形象思维为主,抽象思维为辅。数据结构中的大部分模型都来自于生活,比如,栈、队列、树、图等,考虑到第二专业学生的实际情况和取向,应将学习中难度大的分析和抽象表达转换为形象的现实事物,多打比方,多用一些形象、有趣的事例或类比来代替抽象、枯燥的理论陈述,在形象理解的基础上回归到数据结构的逻辑模型。
2.注重工科学习模式,切忌概念死记硬背。第二专业学生多为文科学生,平时的学习方法以记忆为主,习惯背诵式的学习方式,多数学符号通常不太敏感,在教学中,应根据学生的具体情况因材施教,让他们更注重概念理解基础上的概念记忆。
3.培养团队学习精神,发挥不同专业的特长。不同专业的学生会从自己的角度去理解同一个问题,比如,对树的理解,经济管理专业的学生比较容易将其与社会组织结构做类比,法学专业的学生更容易将其与法规文档的组织方式做比较,为了使不同专业的学生都对同一问题有更准确的理解,教学时应该注重培养学生的团队学习精神,在一个团队中彼此交流思想和想法,发挥不同专业的特点和特长,尽量将不同的想法统一到数据结构的抽象模型上来。
(二)教学内容
1.首先注重广度,其次注重深度。“数据结构”课程理论性强,重点部分比较抽象难于理解。第二专业数据结构教学一般不会开太多课时,在兼顾学生基础和编程能力的基础上,教学内容和教学计划应在计算机专业数据结构教学的基础上做适当调整,教学应该考试首先覆盖教材中的重点概念、模型、算法,强调数据结构内在的逻辑关系。在学生掌握好一些通识性概念的基础上,再对概念做一定的展开并加深其应用,逐渐潜移默化地培养学生解决应用问题的思维能力。
2.强调课程体系,加强语言理解。为使第二专业学生能系统地理解各种数据结构之间的区别与联系,从而从系统地角度把握这一课程,在授课过程中,应以课程体系结构为主线,时刻注重章节之间的关联和承上启下的关系。比如,讲完线性表、栈和队列、字符串等内容后,对线性数据结构做总结,并阐明线性数据结构与树型、图型数据结构之间的异同,并说明它们在课程体系中的地位。
关于数据结构比较新的教材中的算法描述大都是基于C或C++语言的,考虑到第二专业学生的语言基础不太好,本来很简单的数据结构和算法思想,可能由于学生对语言理解的畏难情绪而增大掌握数据结构课程的难度。因此,可以在讲解数据结构正文之前,系统地讲解一些关于C语言的重要知识,同时在讲述具体算法中的特定语句时,强调并分析该语句,克服学生的语言障碍。
(三)教学方式和手段
1.理论教学和案例导学并重。由于数据结构对其他课程的理论指导作用,基于理论分析的教学方法在第二专业数据结构教学中是必不可少的,大部分第二专业学生在看到教材中大量符号后会得出一个错误认识,认为它是一门纯理论课,事实上这门课程对实际应用也具有很强的指导性。因此,应尽可能结合具体应用案例讲解知识点,这样学生学习更有目的性,教学效果也会更突出。
2.组织课堂讨论,形成教学互动。数据结构中有一些在认知上容易混淆的知识点,并且需要对某些知识点进行对比,例如,比较各种排序方法的特点。第二专业学生习惯被动接受数据结构课程知识,可能不能首先对这些问题做积极性思考,此时,教师可采用教师引导与学生分组讨论相结合的方法调动学生的积极性和参与意识。对一些典型题目可邀请学生上台解答,做题过程中台下同学可提出异议或修改意见,针对同一问题学生可展开广泛讨论,直至教师给出评判结果并阐明理由为止。这些方法都可以让学生在团体协作中发现新问题并逐步完善其考虑,加强理解和记忆过程,形成教与学的互动,从而大大激发学生学习的兴趣和自信。
三、教学效果分析
笔者于2010—2011第二学期承担重庆邮电大学计算机学院计算机科学与技术第二专业数据结构的教学任务(教学任务1),2011—2012第二学期正承担同样的教学任务(教学任务2)。文中的分析及教学措施源自教学任务1的教学体会,由于学评教效果及学生的实际掌握情况较好,现正将这一方法用于教学任务2。教学实践表明,新措施能使学生在有限的时间内克服专业缺陷感和对程序开发语言的畏惧感,能明显提高学生的学习兴趣,有利于调动学生的学习积极性和主动性,并帮助学生在有限的学时内较快掌握该门课程。
笔者正在教学任务2中扩展性地应用教学任务1的新措施,并结合自己在计算机本专业数据结构教学中的经验对新措施进行调整,在今后的教学中将进一步提高类似课程的教学质量,巩固教学效果,将新措施由点推广到面,并期望能扩展到计算机科学与技术第二专业教学的其他课程中,以起到一定的示范作用。
信息类课程的教学必须适合时代的发展,计算机科学技术第二专业的教学正是这种要求的体现。计算机科学与技术第二专业的教学难度比较大,只有在教学中注重教学方法的改进,才能更好地实现非计算机专业人才的培养目标,扩大计算机的影响力。
参考文献:
[1]严蔚敏,吴伟民.数据结构:C语言版[M].北京:清华大
学出版社,1997:1-2.
[2]葛云生.“数据结构”课程教学改革与探索[J].高教论
坛,2010,(1).
[3]杜作阳.数据结构教学改革的研究[J].高教论坛,
2007,(6).
[4]叶双,吴清江.提高“数据结构”课程教学效果的方法初
探[J].高等教育,2009,(3).
[5]白振旭,钱美年.高等院校二专业教育情况探析[J].中
国科教创新导刊,2009,(26).