浅谈《数据结构》课程教改
《数据结构》课程脱胎于《离散数学结构》,它涉及各种离散结构在计算机上如何存储和处理,这是从事计算机硬、软件科研与开发的人们必须了解的。特别是引入抽象数据类型的概念和面向对象模式,更能适应软件开发人员的需要。本文就《数据结构》这门课程的最终目标、传统教学存在的问题、现有教学模式改革的必要性几方面展开论述,解决了当前《数据结构》教学的疑难问题,给当前高职阶段《数据结构》的学习指明了一条可行道路。“数据结构”是一门计算机专业技术基础课。通过本课程的学习,使学生学会分析研究计算机加工的数据特性,以便在今后的工作实践中,能够针对具体问题选择适当的逻辑结构、存储结构以及相应的算法,并在此基础上,培养学生编写出结构清晰、正确易读、符合软件工程规范的程序,从而为进一步学习后续专业课程和软件的开发打下基础。
一、 课程最终目标
数据结构是计算机科学与技术、软件工程等专业的一门重要专业基础课,是非数值计算程序设计的基础,也是各种应用软件设计和实现的重要基础。这门课程的主要教学目的是研究常用数据结构的逻辑结构、存储结构及其所支持的运算操作,比较不同数据结构和算法的特点,使学生全面地理解数据结构和算法的概念,掌握设计数据结构与算法的主要原理和方法;研究解决常用问题的经典算法,提高学生使用计算机解决问题的能力。
二、 传统课程教学存在的问题
(1)学生方面。学生刚刚开始接触程序语言,学过后也只是掌握这门语言的基本语法规则,还不具备应用程序设计语言编制程序解决实际问题的能力。
(2)课程方面。“数据结构”理论教学多数偏重算法思想形成过程的分析,算法的描述可以用一种程序设计语言,也可以用伪码,重在算法思想的描述。在实验中,有些学生甚至有了现存的算法,也不知道如何将算法改换成计算机能接受的程序。
(3)原则方面。《数据结构》的教学在很大程度上仍然沿袭着“以教师为主体”“以课程为中心”的传统教学观念。
(4)内容方面。《数据结构》课程内容抽象、琐碎、庞杂,涉及很多概念和技术。所有这些内容均自成体系,相互之间的衔接线索很少,总体感觉内容零散,没有一个整体的知识框架体系。同时,因教学内容多,知识量大,很难取舍,所以不免在教学过程中变得面面俱到,重点、难点不突出,学生理解困难,教学效果不理想。
(5)模式方面。传统的教学方法单一、僵化,教师习惯于“一言堂”“满堂灌”。现在有些教师仍然一成不变地沿用老一套,在教学的各个环节,都只从教师的角度出发,从组织内容、备课到讲授,很少关注学生的反应,课堂缺乏互动,更谈不到学生参与其中,变被动学习为主动学习。
三、 教学模式改革的必要性
教学原则的改变。要培养合格的开发型、创造型人才,教师首先必须树立现代化的教育观,把“以教师为主体”“以课程为中心”的传统教育观转变为“以学生为主体”“以能力为中心”的新的教育观。教师的职责不仅要“授人以鱼”,更重要的是“授人以渔”,把学生创新能力的培养放在重要的地位,在教学的各个环节,充分体现“以教为主导”“以学为主体”的教学原则。理论课教学模式改革的探索与实践,包括理论课课堂教学方案设计、理论课教学方法改革探索。《数据结构》是实践性很强的课程,培养学生的实践能力是教学的首要目的。实践课教学模式的改革与创新势在必行。我们主要在以下几个方面进行了探索实践:
(1)实践教学内容“问题”化。实践内容的设计必须以问题求解为主线索,体现分析、设计能力的培养。针对每个教学单元的重要知识点,选择有代表性、难度适中、综合性的典型算法,合理设计“问题”作为实验项目,以点带面,使学生在面对实际问题中学会分析问题、设计解决问题的方案。
(2)实验教学体系层次化。针对数据结构课程抽象性强、难度大的特点,构建一个渐进式、层次化的实践教学体系势在必行。我们尝试着按基础性、综合性、实用性和创新性四个层次构建“数据结构”课程的实验教学体系。第一层次,基础性实验。其目的是让学生掌握基本概念基础知识和基本操作,通过实验学会如何从算法转变为程序。如队列结构的基础实验可以是队列的插入(入队算法)或删除运算(出队算法);第二层次,综合性实验。在一个实验项目中整合某种数据结构的一些基本运算算法,提高学生分析问题、解决问题和综合运用知识的能力。如队列结构的综合实验包括队列的创建、入队、出队、查询、输出等算法;第三层次,实用性实验。实验项目是解决一些实际有意义的问题,进行实战训练,提升学生的兴趣和自信心,提高实践能力。第四层次,创新性实验。给学生自主设计自主选择的空间,引导学生深化问题。鼓励学生提出新的问题,分析新问题,解决新问题,通过实验解决自己想解决的问题。
(3)实践教学形式多样化。实验课是数据结构实践的一个基础训练。通过单个实验项目,了解掌握基本数据结构的应用,掌握从算法到程序的转换,并学会调试、测试程序能力。
项目设计是在学生完成实验的同时,以小组为单位开始涉足项目的设计,体会项目需求分析、逻辑设计、详细设计以及编码实现、测试维护等项目开发的过程。在数据结构课程教学中,我们设计了两个项目,一个是“多项式计数器”的开发设计,另一个是“文本编辑器”的开发设计。学生分组按流程实施,软件验收后,以组为单位书写设计说明书,然后进行答辩、讨论。课程设计又是一个必修环节,是学生综合应用数据结构的训练。每个学生必须独立完成一个综合项目的问题描述、需求分析、逻辑设计、详细设计和编码实现到测试的过程,训练学生分析问题、描述问题(数学建模)、解决问题(设计与实现)的能力。
教学改革是一项长期而艰巨的任务,既要重视基础理论知识的学习,又要重视实践教学环节。教师是传授知识的载体,是事物变化的外因;学生是接受知识的主体,是事物变化的内因。教师应想方设法调动学生学习的积极性,使学生产生学习的动力,这样,教与学共同努力、共同提高,才能达到教与学的辩证统一,取得理想的教学效果。
(宜兴中等专业学校)