陕西服装工程学院 付向艳
《数据结构》课程是计算机专业中一门重要的专业基础必修课,用计算机来解决实际问题时,就要涉及到数据的表示存储及其数据处理,而数据表示及数据处理正是《数据结构》课程的主要研究对象。它为操作系统、数据库原理、编译原理、单片机原理等后续专业课程的学习奠定了基础。
《数据结构》课程的教学目标是全面系统地介绍数据的逻辑结构、存储结构和算法实现,并介绍常用的非数值计算方法,如数据插入、删除、排序、查找检索等,使学生掌握各种数据结构的特点和算法思想,并能结合具体应用,运用各种数据结构和算法解决实际问题。但大部分高校《数据结构》课程的教学效果都不尽如人意,影响课程学习大致有如下原因:
1.基础知识不扎实
现在各大高校选用的数据结构教材都是C 语言版,也就是说数据结构中的算法都是通过C 语言语法实现的,这就要求学生应该具有一定的C 语言语法知识,并且数据结构课程中算法的实现是对C 语言知识的综合应用,所以C 语言就是数据结构课程的前导课。C 语言课程掌握程度的好坏直接决定数据结构的掌握程度,但是现在的各大高校对C 语言课程重视程度不够,课时数不断缩减,从而限制了授课内容。在数据结构中经常用到指针、数组、结构体等构造数据类型,但由于C 语言课程课时数的限制,致使往往不能深入地学习数组、指针与结构体,甚至结构体都讲不到。因而每次开设数据结构课程时,第一节课我先了解C 语言的进度。C 语言学习的欠缺无疑给学生专业课程的学习设下了第一道屏障,从而对《数据结构》的学习兴趣大大减弱。
2.实践机会少,动手能力差
《数据结构》是一门理论与实践并重的课程,在整个教学或学习过程中,解题能力和上机实训是一个重要的环节。有些任课教师往往只重视理论教学,忽视实践教学,给学生的实践机会太少,学生学起来就比较枯燥乏味,不理解《数据结构》中抽象数据类型的定义及相应的存储表示, 难以实现算法与程序之间的转换。在面对实际问题时,更不能运用所学知识加以解决。
3.缺乏课外辅导,导致学生自学时障碍重重
现在学生学习的积极性普遍不高,尤其是自学能力较差,不善于自主学习,习惯于老师采用满堂灌的方式。另外,即便有学生课外去学习,但是如果在学习的过程中遇到不理解或者读不懂的算法,却无从下手,从而有可能影响学生的学习积极性。
鉴于以上问题,可以从以下方面进行教学改革:
1.提高对先行课程的重视程度
首先增加C 语言课程的课时。学习计算机程序设计语言是提高学生计算机知识水平的重要步骤。C 语言是当今最为流行的程序设计语言之一,C 语言课程是数据结构课程的直接先行课,因此,本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。学好C 语言,为后续若干课程的学习打好坚实的基础。另外,增加数学及线性代数课程的课时。学习算法离不开数学的思想,学习数组的存储结构也离不开线性代数的应用。
2.实际操作方面
计算机专业要求有很高的实际操作技能,而我们的学生在长期被动的学习过程中却养成了勤于动脑、懒于动手的学习习惯,这样的学生将来是不能满足实际工作要求的。因此,数据结构的实验教学要紧密配合理论教学,通过相关实验与课程设计,帮助学生加深对数据结构的整体理解,所以在本课程结束前安排两周实践,进行课程设计,不要求实现过多的项目,但每个学生都要动手操作,亲身经历从需求分析到算法分析、最后到代码编写与调试这样的过程,从而更深刻地理解数据结构的逻辑结构、存储结构以及在某种具体的存储结构下的运算及其实现方法。
3.构建《数据结构》网络视频课程,加强师生互动环节
为了弥补课外辅导的欠缺,制作与《数据结构》课程内容相适应的视频,尤其是该课程中典型的算法及其实现过程,学生在课外学习时遇到问题可随时登录校园网观看视频,进行查漏补缺,达到巩固知识的效果。另外,在网站上可以设置在线答疑或留言功能,从而实现师生互动。
《数据结构》不仅是计算机科学与技术专业的专业基础课,也是大多数院校研究生入学考试的必考课,因此,对《数据结构》课程教学的研讨将会持续下去,最终能找到一条行之有效的教学方法。
[1]李春葆.数据结构(C语言版)[M].北京:清华大学出版社,2013
[2]严蔚敏.数据结构(C语言)[M].北京:清华大学出版社,2011