数据结构课程改革探讨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程改革探讨
[摘要]数据结构是计算机专业重要的专业基础课。
文章对数据结构课程改革进行探讨,确定了“知识、能力、素质”的教学质量观,提出“厚基础+开放性思维+创新意识=创新人才”的教学理念,设计了“案例、算法、理论”反推式的理论教学方案和“点、线、面”一体化多层次的实践教学方案,构建了“讲坛、网坛、论坛”多平台紧密结合的教学环境。
[关键词]数据结构课程教学理念教学方法教学手段
数据结构是计算机专业的专业基础课,在整个课程体系中处于承上启下的核心地位。
该课程在教给学生数据结构设计和计算机求解问题的同时,培养学生的抽象思维能力和逻辑推理能力,增强分析问题和解决问题的能力,更重要的是培养专业兴趣树立创新意识。
对数据结构课程的改革,要从教学理念入手。
一、“厚基础+开放性思维+创新意识=创新人才”的教学理念
1.厚基础。
所谓厚基础,就是掌握深厚的理论基础,包括基本概念、基本原理、基本方法。
使学生具备一定的可持续发展能力是该课程最重要的目标。
在数据结构的授课过程中,始终强调要将基本的理论基础做厚,然后才能谈到应用、创新。
以基本概念为中心,将知识点变成知识网,对基本概念强调网状理解。
对于基本理论,不是“填鸭式”教学,而是“授之以渔”,教授概念的网状理解的方法,提高自主学习能力。
2.开放性思维。
有人说,“编程是一种艺术”,而程序员像艺术家一样,也有发挥创造性的无限空间。
作为程序设计基础的数据结构,担负着培养学生具有创造性、开放性思维的重任。
首先,培养正确读程序的习惯。
在刚入门时,程序比较简单,所以可以一行、一行地读代码,在该课程中要培养学生成对编码的思维,并且学会分块阅读代码,只有这样,才能理解和学习程序的设计思路,提高抽象思维能力,进而培养开放性思维。
其次,学会将问题拆开。
教学生将一个大的问题拆成几个模块来思考,将一个模块拆成几个抽象的逻辑步骤来解决。
最后,在解决问题的过程中也要始终贯穿开放性思维的培养。
例如,对于算法的讲授,不是就算法而讲算法,而是首先讲找到思考问题的入口点,从入口出发寻找解决问题的途径,顺着该途径不断地提出子问题、解决子问题直到解决本原问题。
培养了学生的这种开放性的思维,学生就可能找到其他途径,找到其他方法,从而培养学生用开放性思维解决问题的能力。
3.创新意识。
对某些重要的数据结构和算法,将其起源和发展交代清楚。
这样既使学生看到这些重要的数据结构和算法产生的背景,同时也看到随着问题环境或要求的变化有了哪些创新,看到创新不是高不可攀的,再给学生制造一些富有创新的问题,从而培养学生的创新意识和欲望。
此外,在授课的过程中,结合数据结构的具体内容,给学生讲一些富有深刻含义的小故事,目的也是激起学生的创新意识。
4.因材施教,个别拔高。
为了满足大部分学生的学习要求,课堂上要照顾大多数学生的学习能力,但是一小部分学生会“吃不饱”。
对此,可采取个别拔高培养方案:首先,采取观察、问卷和谈话等方式,了解有哪些学生“吃不饱”;其次,了解这些学生自身的爱好、兴趣和特点;最后,根据这些学生自身的实际情况,有针对性地培养和提高,做到因材施教。
例如,有的学生编程能力特别强,就给他安排稍复杂一些的问题让其编程实现,在实现的过程中,指导编码规范、数据结构的设计、抽象思维的应用、算法设计的技巧等;有的学生阅读能力特别强,教师就免费提供计算机方面的书籍,并指导他如何买书、看书,看完后还要给教师写出读书笔记和心得体会,与教师讨论。
二、教学方法的改革
1.精心设计教学内容。
对教学内容进行合理的剪裁和组织;提取每一章的难点和重点;精心组织教案;设计每节课的讲授方法;等等。
具体内容:(1)研究课程。
调研其他院校数据结构课程的教学内容和方法,所谓“知己知彼”,研究数据结构的发展状况以及与数据结构相关的发展状况。
(2)研究教材。
研究公开出版的数据结构教材和辅导材料,对同一教学内容,比较讲解方法,从中选好的,并创造新的讲解方法。
(3)研究试卷。
研究其他院校期末试卷,从中把握考核目标和方式,在难度、信度和效度上达到最佳。
(4)教学设计贴近生活。
对课程中的重要原理和方法,在生活中寻找实例,通过类比的方法,学生可能没记住书中的原话,但却记住了相关的例子。
(5)图示法化复杂为简单。
对课程中的难点和重点,尽量用图示法形象地说明问题。
2.启发式教学。
在课堂上使用启发式教学有利于培养开放性思维和创新意识。
例如对存储结构和算法的设计,给学生讲述思考问题的出发点,根据不同的原则,引出解决问题的不同路径,顺着这个路径,不断地提出子问题,直到解决本原问题。
鼓励学生在理解经典算法的基础上勇于创新。
算法设计本身就是一门艺术,带有很强的个人色彩,条件不同,算法的设计和效率都会不同。
刚开始课堂上难免出现“启而不发”的现象,但经过一段时间后,很多同学“一启就发”,有时学生还能提出其他方法,说明启发式教学确实培养了学生的开放性思维和创新意识。
3.鼓励式教学。
为了鼓励学生看书,如果发现书中的错误或有更好的见解,平
时考核有加分;为了培养表达能力和表现能力,在组织讨论或课堂“启发”时,踊跃发言或发言效果较好的学生,平时考核有加分;为了鼓励学生快速编程,实验中先调试成功的学生考核有加分等。
4.互动式教学。
上述启发式教学就有互动的成分在里面。
除此之外,互动式教学我们还做了如下尝试:(1)学生上台讲解。
利用课余时间,组织部分学生成立学习小组,利用课外时间自学和讨论,查找文献,总结,并由学生上台讲解。
(2)作业批改。
由教师和学生共同完成,每次作业召集10%的学生参加,由教师指导学生批改学生的作业,个别作业通知学生本人,由教师和学生面对面谈作业中存在的问题。
(3)课程设计互动。
课程设计分小组,每个班分7组,每组5~8人,符合米勒的7±2原则。
最终成绩=题目难度(20%)+小组得分(20%)+同组评分(10%)+指导教师给分(50%),其中题目难度得分由难度系数×20%(教师提供很多备选题,每题难度系数0~1,
多做难度系数可相加);小组得分由其他小组评定;同组评分由同组其他成员评定。
三、教学手段的改革
1.多媒体教学课件。
根据教学内容,提供了自制的多媒体课件,在课件中穿插自己设计的小动画,将书上枯燥的知识变得生动形象,便于学生理解教学内容;将大量的板书时间节省下来,增大授课的信息量。
2.网上教学系统。
通过学校的教学平台,学生在内网和外网均能进行自主学习。
四、实践教学的改革
数据结构课程重视实践教学,构成由基础实验(点)→设计实验(线)→综合实验(面)一体化多层次的实践教学体系。
基础实验是将理论课上讲的抽象数据类型上机编程实现,在实现的过程中,深刻理解抽象数据类型和类之间的关系、算法设计和程序实现之间的关系、问题描述和成员函数之间的关系;设计实验是在基础实验的基础上,给出实践题目,由学生自己设计数据结构、定义类、实现类,从而解决该实际问题,这样将几个知识点连接起来,设计解决一个小的问题;综合实验是给出面向实际应用的稍大一些的实践题目,由学生自己分析问题,设计几个数据结构并探究它们之间的关系,定义几个类并实现,此外,还需要一些类外的函数,进而解决这个较大的实践题目。
[参考文献]
[1]陈明.数据结构实用教程[M].北京:清华大学出版社,2004.
[2]蒋盛益.《数据结构》学习指导与训练[M].北京:中国水利水电出版社,2003.
[3]李宁.C++语言程序设计[M].北京:中国广播电视大学出版社,2000.。