应用型本科院校数据结构课程教学改革研究
2019-11-03张金芳
张金芳
摘要 数据结构是计算机类专业的一门专业核心课,本文通过了解该门课程的教学现状,结合实际教学经验,总结了目前教学当中存在的问题,提出了一些教学改革建议,以改进后续的教学工作。
关键词:数据结构;教学改革;应用导向
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2019)24-0181-02
开放科学(资源服务)标识码(OSID):
数据结构是软件工程、计算机科学与技术、数据科学与大数据技术等专业的一门专业核心课程,是培养学生软件开发能力的基础[1],同时是数据库原理、操作系统等课程的先修课,因此,该课程在相关专业课程建设中非常重要。但由于该课程抽象性、逻辑性较强,教学与实际应用开发存在一定的脱节,导致学生掌握困难或者应用困难,因此,有必要针对该课程进行教学改革研究,以期提高教学质量水平,帮助学生更好地掌握该门课程知识,提高实际软件开发能力,体现教学以学生为中心的理念。
1 教学现状与存在的问题
2018年9月17日,教育部印发《关于加快建设高水平本科教育全面提高人才培养能力的意见》,对本科教育提出了“推动课堂教学改革”“加强学习过程管理”“提升教学能力”“充分发挥教材育人功能”等要求,因此,传统的教学模式需要改革。
目前,数据结构课程教学多使用教师讲解、提问、讨论等教学方法,提高学生参与度与积极性,对于教学效果有一定的提高作用,但由于该门课程本身难度较高,教学效果依然不甚理想。本文以应用型本科院校学生为例,结合以往的教学经验展开研究,发现在目前的教学中,存在以下问题。
1.1 教学内容脱节
数据结构算法需要高级程序设计语言描述,因此,高级程序设计语言作为该门课程的先修课,夯实学生编程能力的重要性不言而喻。以C语言为例,在C语言程序设计这门课程中,受学生学习能力、掌握情况、课时等条件限制,大多数教师对于结构体和指针部分的教学强度不足,或者学生因临近期末考试,对此练习较少、掌握不牢,而数据结构这门课程几乎全程需要数组、指针、结构体等知识进行算法描述,两门课程的教学衔接性不足,这就导致了教学内容脱节[2],学生即使能听懂数据结构的理论,也难以将其应用于实践开发,掌握不牢,长此以往,学习难度增大,积极性下降。
1.2 重要性认识不足导致积极性不高
在以往的教学过程中,不乏学生提问:“学习数据结构有什么用?”,而教师一味强调数据结构的重要性,往往是强调数据结构是考研课,或者数据结构在专业课程体系中的承前启后作用,这些都是站在教师立场上的重要性,而对于学生来讲,其更关心的往往是这门课的内容应用在什么地方、该怎么用。这种认知的偏差导致学生对于该课程的看法偏颇,认识不足,长此以往,学生逐渐认为其在工作中没什么用处,降低了该课程的学习积极性,对于日常学习就应付了事。
1.3 理论掌握与动手实践脱节
在数据结构课程设计等实验教学当中,学生面对应用型或者实际的问题,往往没有解题思路,学生跟老师反馈最多的问题就是:“我理解数据结构的理论,但是我不知道如何应用的这个问题当中”,这证明,在日常教学过程中,学生更习惯于接受,不习惯独立思考,因此,应强调培养学生运用所学理论解决实际问题的能力。
1.4 教学内容受考试影响,重点偏移
数据结构这门课程考核方式往往是日常教学加期末考试的形式,但是,一旦涉及考试,就会出现偏计算性、理论性的知识点考核比例过高、对于实际应用的考核几乎没有的现象,这严重影响了数据结构的实践性教学。以二叉树为例,试卷中,二叉树部分内容的考试往往大量出现二叉树的各种性质,而忽略或者避开了用代码实现某些二叉树功能的考核,而二叉树的性质掌握与否,其实并不影响学生是否能用二叉树的知识解决实际问题,而能否实现创建二叉树、结点的增删改查等知识点,才是应用型本科学生必须掌握的内容。因此,考核内容的偏颇,影响了学生学习的重心。
1.5 教材内容脱离实际,内容抽象无法理解
数据结构可能内容本身就较为抽象、不易理解,而目前的教材大多都照本宣科,讲解理论,对于理论内容和算法解释,甚至例题,都是就题论题,无应用场景,知识点不连贯,内容枯燥。
2 教学改进建议
数据结构的教学包括教学内容、方法、教材、考核等,这几方面缺一不可,合理改革以上环节,就能达到改善教学效果的目的。
2.1 改革教学内容
2.1.1 集体备课,加强教学研讨
根据已制定的学生培养方案,研究培養目标,综合考虑难度、广度、应用性,编制适合应用型本科的数据结构课程教学大纲,与先修课即高级程序设计语言课任课教师、后续课程任课教师集体研究教学内容,加强沟通,避免前后课程教学内容脱节,比如程序设计课程教师需重点讲解、练习数组、指针、结构体及其综合应用,从而避免在数据结构课程中,因为动手能力不足造成的学习困难。
2.1.2 明确学习目标,案例教学提高学生积极性
正确为学生说明数据结构在专业课程中的地位,同时强调其于软件开发当中的重要性,结合实际,应用案例引导[3,4],消除“数据结构课程无应用”的看法。例如,在课程初始或者线性表部分,通过一个实际的案例进行展示,如学生考勤信息管理系统,强调数据结构思想于该项目中的应用;在图论中,可以用几个城市间计算最小路径或者最省路费等问题进行导入式教学,可激发学习数据结构的兴趣。
2.1.3 突出应用性,改革教学重点
教学大纲结合学校、学生实际特点,强调基础性、应用性,同时考虑时代特性和专业特性[5],即时刻考虑当前环境下,于项目开发当中的应用情况,调整教学重点,考虑不同专业的学生,对于知识点的需要情况,调整教学重点。例如,普通软件开发中,外排序部分应用较少,同时教学又过于抽象,可以删除这样的章节;例如二叉树的性质部分,在开发中实际应用性差,可以略讲。同时,在讲解知识点过程中,通过实际案例,说明该知识点的应用环境。