高 翔,武 新
(洛阳理工学院 计算机与信息工程系,河南 洛阳471003)
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象和操作算法的学科,课程具有较强的逻辑性、抽象性和实践性。通过学习,要求学生掌握数据结构和算法的基本概念和技术,并设计相应的操作算法。掌握线性表、栈和队列、串、广义表、树和二叉树、图等典型数据结构及相关算法,以及排序、查找等重要技术。课程的学习目的是:提高学生的算法设计能力,使学生能够对于给定问题选择合适的数据结构,设计高质量算法,能够编写解决复杂问题的程序。培养学生的逻辑思维和抽象思维能力,为系统开发与设计奠定坚实的基础。
受到高校扩招及多媒体网络技术普及等多方面因素的变化与影响,传统的教学选材、教学手段、教学方法等已经不能满足新时期下学生素质教育的需求,数据结构教学改革也被越来越多人所重视。
伴随着高校扩招与民办高校的兴起,高考录取比例已经达到60%以上。随之而来的就是大学生学习素质的两级分化。面对大学教育的人才培养目标由单纯的服务型人才向服务型与创新型人才双向培养的转变,高校教师也需要改变传统的教学理念,建立系统讲授与探索研究相结合的分层教学模式,在教学过程中注重讨论式教学,个性化培养。
传统的教学理念中,教师在课堂中起到的只是“教授知识”的作用。然而,教师在教学工作中还应当起到的是围绕教学大纲进行组织和引导的作用,明确教学的目的是解决什么问题,通过什么途径达到这个目的。要彻底打破“教师怎么教学生怎么学”的思维模式,树立“学生需要什么方式教师选用什么方式”的服务意识,根据学生的实际情况分层次教学。在授课之前首先从学生的实际情况出发建立“阶梯式、分层次”的教学模型。
国外在20世纪90年代已经将数据结构教材改为用C++和Java描述,这主要是适应软件技术发展的需要,而现在国内大多数数据结构课程仍然停留在C语言描述,这反映了两种不同的开发模式。2000年左右清华大学已经开始尝试与国际接轨,改为使用面向对象的方法和C++来描述数据结构。这种变革让习惯了过程性开发序言设计的学生有很多不适,但他们掌握后发现给后续的学习带来极大的帮助。在数据结构的教学大纲制定过程中,除了从改变教材的选用外还应当加强数据结构课程的实践环节比重,数据结构是一门实践性很强的课程,实践环节对教学质量的影响很大。抓好实践环节,将培养学生良好的编程设计习惯,提高学生的创新能力和实践能力,为将来进行软件开发和科学研究打下坚实的基础。而一般学校的数据结构教学中仅仅安排12个学时的实践环节,有的甚至压缩在8个学时内,一些教师由于课时量限制只让学生做一些简单的编程练习了事,这样远远不足以完成学生的正常实习,令学生的学习效果大打折扣,完全不能体现到学生实习的重要性。所以,在教学大纲的修订中,需要将实践教学的学时按照授课需要进行扩充和增加。
从本科专业基础课入手,开展双语教学,对于培养国际化的专业人才,是十分必要的。数据结构课程内容丰富,分析问题和解决问题的思路和方法新颖,创新点多,技巧性强。在该课程体系和内容创新方面,大多数中文教材是根据英文教材翻译编写的。选用原版教材,开展双语教学,使学生直接接触创新思想的源头,使教学和实践逐步与国际接轨具有重要意义。同时,计算机科学与技术发展迅速,国际化程度很高,大多数专业技术文献都是用英语表达的,英语在专业交流与提高中起着主导作用,引入双语教学可以提高学生的外文文献阅读能力,真正做到与国际接轨。当然,鉴于学生的英文能力各不相同,在初期进行双语教学时不可“一刀切”,要充分了解学生的学习现状,有条件的学校可以采用多班级教学的模式,针对不同层次的学生划分不同的班级上课,也可以采用循序渐进的方法,在教学过程中逐步深化双语教学的力度。
数据结构的学习应当有一定的学习思路,根据不同的知识模块选择不同的学习思路。数据结构课程包含两方面知识的学习,即数据结构和算法,其中数据结构从逻辑上来分包括线性结构、层次结构和网状结构,每一种逻辑结构又可选择两种不同的存储形式,即顺序存储和链式存储,算法包括查找与排序,根据不同的知识模块应当选择不同的学习思路。
2.2.1数据结构的学习
线性结构、层次结构和网状结构在教材中占有很大的份量,是本课程学习的重点,学习这一部分知识的思路是:首先要了解每一种数据结构的逻辑描述;第二,掌握每一种数据结构的存储形式,其中包括顺序存储与链式存储两种形式的结构描述;最后学习掌握每一种存储结构上的操作算法(初始化、插入、删除、查找、取元素、遍历等)。其中,线性结构的学习尤为重要,因为它是其他结构学习的基础,因此一定要把线性结构的相关知识掌握好,为后面的学习打好基础。
2.2.2 算法的学习
算法是计算机处理数据的操作步骤的描述,算法的好坏直接影响到计算机的执行效率,尤其是查找与排序算法,是实践中使用频率非常高的两类算法,因而对这两类算法进行分析和研究是非常有必要的。学习这一部分知识的思路是:首先,要领会每一种算法的算法思想;第二,要熟悉掌握每一种算法的算法实现(选用一种程序设计语言);第三,要掌握每一种算法的算法评价。
伴随着多媒体技术的飞速发展,利用计算机辅助教学已经成为教学改革的必然趋势。多媒体教学方式的引入可以更为形象地展示数据结构的抽象含义,将一些枯燥的概念转换成形象的演示,这种直观的教学方式可以令课堂教学达到事半功倍的效果。互联网技术的普及让更多的人开始关注这个广阔的资源空间,教育部在2003—2007年教育信息化行动计划内启动了精品课程建设项目。在数据结构教学改革中尝试建立精品课程网站,将教师的教学课件、教学视频以及实验资料等上网,将课堂搬到45分钟之外更便于师生之间的交流。
数据结构课程是计算机专业的核心课程,是计算机程序设计的重要理论基础。数据结构课程要坚持理论与实践并重,在整个教学过程中要注意创新。教师在教学过程中,不但要注重教学内容的创新,更要注重方法与思路地改革,以求更好的服务于学生。
[参考文献]
[1] 刘琼,朱利群.《数据结构》分层次教学的研究与思考[J].重庆文理学院学报,2008(8):91-93.
[2] 刘海林.《数据结构》课程的教学探讨[J].广东师范学院学报,2008(3): 82-84.
[3] 中华人民共和国教育部高等教育司.双语教学示范课程描述[EB/OL].http://sy.algc.org/Admin-Info/view-Table3.aspx?d=459.