“数据结构”分层次实验教学的探索与实践

2009-03-17 09:14张玉华周克兰
计算机教育 2009年3期
关键词:分层次数据结构实验教学

张玉华 周克兰

文章编号:1672-5913(2009)02-0108-03

摘 要:本文提出了在数据结构课程实验中实行分层次教学的观点,详细介绍了我院计算机科学专业中数据结构实验课程的分层教学实践方法,对数据结构实验课程的改革进行了探索,本文对如何提高计算机实验课程教学效果有一定的指导作用。

关键词:数据结构;实验教学;分层次

中图分类号:G642

文献标识码:B

1 引言

数据结构是计算机及相关专业的一门核心课程,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现,该课程学习的效果不仅关系到后续课程的学习,而且直接关系到软件设计水平的提高和专业素质的培养,在计算机学科教育中有非常重要的作用。

数据结构课程的教学又包括理论知识的学习和实践教学。将所学理论知识加以融会贯通以解决实际问题,学以致用才是数据结构课程的学习目的。因此,实验教学与理论内容教学一样,是数据结构教学中不可缺少的重要环节。

本人从事数据结构教学多年,通过对课程、学生及计算机学科的特点的长期探索,在本学院提出了数据结构课程分层次实验教学的观点,并在06级计科专业学生中进行了实践。现将此次实践的基本方法进行总结。

2 实验内容分层次

数据结构理论知识是相对固定的,学习完数据结构,我们要求学生掌握线性表、栈、队列、树和图等数据结构的表示和实现方法,在实际应用中学会自行选择合适的数据结构及存储结构进行编程,另外,还能对计算机中的两种常见运算:查找和排序的各个算法进行实现以及性能比较。

因此,我们按照数据结构的内容将实验题分成了线性表、栈、队列、串、数组、二叉树、图、查找、排序等主题,同时根据循序渐进的原则,在每个主题之下,又按照难度不同分成了概念基础实验、应用基础实验和应用提高实验三种类型。我们将概念基础实验设计为验证性实验,如某种数据结构的表示和实现并将此种数据结构封装为一个类,并要求所有的学生都必须实现;应用基础实验,则是利用已实现的某种数据结构实现的一个简单应用;应用提高实验,是利用已实现的某种或某几种数据结构实现的一个综合应用。后面两种类型的实验又分设若干实验题,每个实验题都设有难度系数。

我们要求每个学生必须完成概念基础实验和一道应用基础实验题,选做一道提高实验题,所选应用基础实验题和提高实验题的难度将作为成绩评定的一个依据。表1中列出了“栈的实现和应用”主题中设置的各个题目。

实验内容的分层使得学生可以根据自己的兴趣、编程能力等实际情况,有选择地进行程序的设计和实践,对于学有余力的同学,也可以尽早接触较大的应用实践题目,得到更多的锻炼。

3 实验文档多层次

3.1 实验报告、作业单、实验记录一体化

实验报告是由学院统一印制的具有统一格式的实验文档,在实验报告中规定了每个主题的实验目的和要求,给出了不同层次的各个题目的详细描述,同时要求学生根据各自所选题目填写作业单和实验记录表,并填写所选题目中难度最高的应用实验题的分析、设计和实现过程。实验报告的布局如表2所示:

作业单和实验记录表是实验报告中包含的两个重要的表格。

作业单中列出了该学生在此主题下选做的题目、教师确认后的签字栏、教师批改源程序后对该题完成情况的意见。作业单格式参见表3。

实验记录表中记录了在整个实验过程中所遇到的编译问题、调试问题、程序的逻辑错误以及解决方法,如仅将此问题避开,则记录避开问题的方法。另外表中还需记录程序运行时所用的测试样例。教师在批阅时给出评阅意见。实验记录表格式见表4。

3.2 源程序

学生将将所完成题目的所有源程序进行压缩后提交到学院的网络教学平台上,由教师和助教核对是否与作业单一致,直接在网上进行批改和评分,源程序得分的计算方法参见后面的表5,评分程序直接内嵌入教学网站。

3.3 实验指导素材

我院计算机科学专业的教学计划中,面向对象程序设计C++作为先修课程已于前一学期开设,因此,在学习数据结构之前,学生已基本掌握了程序设计语言中的基本概念和上机实践的基本方法。但是,仅通过一个学期的程序设计语言学习,学生对大型程序的设计、组织和实施编程等步骤并不熟悉,对解决实际问题的行之有效的具体指导也不多。因此,为学生提供上手能用的实验操作指导手册,提供一些范例程序,手把手指导学生进入较大型程序的设计阶段,加强学生的C++标准类库知识的传授,加强学生的实践操作技能指导尤其重要。

我们对每一个主题选取一个应用基础实验题,将其答案公布在教学网站,供同学下载;选取每一主题中难度较大的题目,给出基本求解思路以及重要的算法,所需用到的标准类库函数、从何处获取更多可参照的资料等内容供同学参考。我们把这些资料都公布在教学网站上,学生可以根据需要进行下载。

另外,我们还根据学生在实践中遇到的问题加以总结、整理,在教学网站上定期公布“编程宝典”,这些实用的但又熟悉的知识的温故,使同学们的编程能力得到的提高,也使得后续的实践更容易完成。

4 实验考核分层次

在我们设计的数据结构课程考核方案下,实验成绩在数据结构课程总成绩中的比例为30%;数据结构实验成绩为若干次主题实验题的成绩以及期末实验考核成绩平均分;每次主题实验成绩的主要计算方法为:

本次实验总分=源程序成绩*0.75+实验记录分*0.15+实验报告分*0.1

源程序成绩=基础实验得分*0.45+应用基础实验*0.4+应用提高实验*0.15

表5为某同学某一主题的源程序成绩评定表,此表在教师批改源程序时在网页上填写;表6为该同学该主题实验的最终成绩表,此表在教师批改纸质实验报告时填写。

5 结束语

我们对数据结构实验课的内容、实验文档、实验成绩评定等各个环节都进行了分层次的改革实践,加强了实验中的文档管理。经过一个学期的实践,学生基本养成了及时认真做好实验记录的习惯,养成了严谨踏实的编程习惯,上机实践变得更有条理,减少了出错概率。经过实验范例的学习和模仿,大多数学生在处理难度较大的应用提高实验时也已不再手足无措,基本能按照需求分析、概要设计、数据结构选择、存储结构选择、编写算法、撰写程序等基本编程步骤来解决问题;大多数学生在这种分层实验的要求下,选择了稍高一点难度的题目,提高了自己的编程能力,增强了自信心。

当然,我们在实践中还是遇到了不少问题,有部分同学平时学习态度不端正,做作业敷衍了事;仍存在抄袭作业的现象。另外由于实验成绩评定比较复杂,虽然我们设计了一个专门的小程序来计算每位学生的成绩,但还是增加了老师的工作量。因此,继续探索实验教学的基本规律和方法,是我们的一项长期的任务。

参考文献:

[1] 殷人昆. 数据结构(用面向对象方法与C++语言描述)[M]. 北京:清华大学出版社,2007.

[2] Robert L.Kruse等. 数据结构与程序设计—C++语言描述(影印版)[M]. 北京:高等教育出版社,2001.

[3] 龚红仿,杨宏杰等. 数据结构实验课教学改革与实践[J]. 计算机教育,2007,(12):53-55.

猜你喜欢
分层次数据结构实验教学
基于科学探究的高中生物实验教学探索
网络与云技术在实验教学中的应用
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
初中化学实验教学中“微课”教学模式的探讨
谈初中化学实验教学的初探
初中语文分层次布置作业的实践与研究
探讨中职学校学生英语分层次教学法
数据结构与算法课程设计教学模式的探讨
高效学习数据结构