APP下载

“数据结构”课程的实验创新探讨

2009-05-11李宗璞

计算机教育 2009年8期
关键词:组织形式数据结构考核方式

李宗璞

文章编号:1672-5913(2009)08-0124-02

摘要:“数据结构”课程是计算机学科的专业基础课,是一门实践性比较强的课程。课程中的实验环节显得尤为重要,该环节可以锻炼和提高学生对复杂程序的设计能力。笔者在多年的教学过程中摸索出实验环节的教学模式,与大家共同探讨。

关键词:数据结构;教学内容;组织形式;考核方式

中图分类号:G642

文献标识码:B

利用计算机来解决实际问题的步骤是:给出问题描述,将问题抽象成数学模型,根据数学模型写出求解问题的算法,再根据算法写出程序代码,最后上机调试并分析结果。在上述过程中,非数值的数学模型是数据结构研究的主体,它操作实现主要是通过数据结构的实验教学环节来完成的,在该教学环节中作为教学主体的学生,首先要具备抽象思维能力和语言基础。往往在环节实施过程中,语言基础是薄弱环节,以至于课时用完了,学生还是写不出满意的算法及代码。鉴于此,我们在教学内容、组织形式、考核方式等教学环节中进行了一些设计,与大家一起来探讨。

1教学内容

我们在教学内容上,围绕课内、课外两条主线进行改革,给学生较大的自主学习空间,有利于学生创新精神及实践能力培养。整个实验教学由浅入深,重在基础、提高能力、挖掘潜力、拓展思路。在课时内的教学主要以基础性实验为主,安排一个综合性实验;课时外的教学主要以设计性实验和综合性实验为主。

1.1学时内的教学内容

在我校数据结构课程共64学时,理论课48学时,实验课16学时。安排了5个实验项目,由于多数学生语言基础不算太好,特别是指针的运用和结构体的定义是薄弱环节,所以在做实验项目时,主要是从教材上的算法出发,使得学生有章可循:

项目1:顺序表的操作

主要训练学生对顺序存储结构的理解,掌握顺序表的查找、插入和删除等基本操作;同时引导学生对于静态参数传递和动态参数传递的使用方法。

项目2:单链表的操作

主要是与顺序存储结构进行比较,完成线性表在链式存储结构上的查找、求长度、插入、删除等基本操作。

项目3:栈和队列的应用—停车场的管理

深入了解栈和队列的特征,以便在实际问题背景下灵活运用;利用两个栈和一个队列模拟停车场管理及相关操作。

项目4:二叉树的遍历

掌握二叉树的结构特征,以及二叉链表存储结构的特点;掌握二叉树三种(先序、中序和后序)遍历方法;熟悉并且掌握递归算法。

项目5:折半查找和快速排序

掌握折半查找和快速排序的方法,掌握要进行折半查找应该采取的存储结构形式。并进行对其进行时间复杂度的分析。

对于每个实验项目的实验目的和实验要求,提前2周放在教学平台上。在实验前1周,利用辅导课时间,以测试的形式,让学生写出算法代码,由于每个实验基本上可以在教材中找到源代码痕迹,所以难度不大。

在实验教学过程中,采用任务驱动式的教学模式,首先从总体思路上讲解10分钟左右,边辅导边发现问题,每半个小时总结1次。由于学生已经在课前作好了准备,在实验室里他们赢得了更多的自主时间用来调试程序,分析结果。学生水平参差不齐,在上课过程中穿插实验验收考核,考核的形式是现场写出主要操作的代码,在规定的时间内进行调试、分析。验收完一个模块,学生再进行下一个任务。教师通过讲课、辅导、验收使得实验课堂充实起来,由于学生每个时间段都有活干,所以课堂气氛非常活跃,讨论热烈。

1.2学时外的教学内容

在学时外,以课程设计的形式,利用开放实验室时间,严格按照软件工程的思想进行训练。

在课程设计时,教师列出多个设计课题,每个课题都有相应的要求或说明。各课题的难易度是有差异的,每个课题后以标准分的形式标出了难易度。例如:

课题1:设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。依此重复下去,直到全部的人都站出来为止。试设计一个程序求出出列序列(难易度90)。

课题2:用递归算法和非递归算法实现下面问题,并比较其算法优势。把一只老鼠放进一个无盖的大箱内, 箱内设置若干隔板,使老鼠走动的方向受到阻碍,看其如何找到一条通道,走出大箱(难易度80)。

“难易度90”表示设计中的各项全部达到要求时的最高得分大致为90。因此,参加课程设计的学生首先要了解设计的任务,仔细阅读各题的设计要求,然后根据自己的基础和能力情况从中选择一题。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为基本原则。课程设计的总体思路是:数据模型选取→构造求解算法→选择存储结构→编写程序代码→调试测试→总结分析。

在做课程设计时,不再拘泥于语言环境的限制和存储结构的限制,主要锻炼学生的开放思维能力和综合知识的应用能力。同时,引导学生从结构化程序设计到面向对象程序设计的思考。例如学生正在学习C#,在做课题1时,除了传统的设计方法外,可以引导学生画出类图和顺序图,写出C#的代码。

设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。主要包括:需求分析、概要设计、详细设计、调试分析、用户使用说明、测试结果、参考文献等。课时外的训练主要是为毕业设计打下基础,同时也培养了学生的团队协作精神。

2组织形式

2.1学生的组织

对于学生进行分组,每组中按照好、中、差的学生进行搭配。由于学生水平参差不齐,早做完的学生,进行考核验收。验收合格,同时给出相关思考题,可以再对于思考题进行进一步的思考,锻炼创新精神。同时,让已完成任务的学生辅导未完成任务的学生,这样培养了学生的团队协作精神,课堂气氛非常活跃,激发了学生学习的主动性。对于教师的工作也减轻了一些,教师主要是总体部署,分步考核,可以有充足的时间进行验收,比较清楚地掌握总体情况,以便讲评。这样组织学生,可以解决“优等生吃不饱,差等生吃不了”的局面,实现了“因才施教”。

2.2内容的组织

对于每一个实验项目的实验目的、相关要求等,以实验指导书的形式与学生见面,一本好的实验指导书能给学生的上机实验带来事半功倍的效果。

首先,让学生明确实验目的和要求。每个实验项目都给出了实验目的,并且提出了具体要求。有了实验目的,学生才有方向性;有了具体要求,学生实验时才有章可循。对于要求,要按时间分块执行。比如单链表的操作为2学时,第一个学时完成建立、查找、部分主函数工作;第二学时在第一学时基础上完成插入、删除操作,完善主函数。每一个学时在最后进行验收,若有问题通过小组完成。

其次,让学生掌握实验步骤。每一个实验项目按照软件工程的思想去组织,先需求分析,抽象出数据结构模型,再明确数据类型,详细设计,最后给出类C语言的算法描述。要求学生要严格遵循实验步骤来思考问题,这样,可以培养学生良好的工作作风和解决问题的方法,并且为后续课程做准备。

3考核方式

市场经济体制下的学生不如计划经济体制下的学生好教育,特别目前高校扩招,入学的学生素质参差不齐,基础相对薄弱,自学能力不强,不少学生在学习上存在畏难心理。而对于高等教育也不能降低要求,这样就要求在教学模式上进行革新,我校对教和学提出两个转变,“变学生管理为学习管理,变管理学生为服务学生”。对于课程教学,不能再采取应试教育下的考核形式。鉴于此,在数据结构的教学过程中,特别是实验教学,探索出了新的考核形式。

分数对学生来说是非常重要的,以此作为课程管理的抓手。对于教学计划内的实验项目成绩分成两个部分,一个是个人成绩,一个是小组成绩。个人成绩主要考核学生个人能力,小组成绩主要是考核学生的团队协作精神。对于个人成绩考核形式有两个方面,一个方面是学生的程序代码调试技能的测试,一个方面是书写实验报告,从实验报告上可以考查学生的逻辑组织能力。笔者把该考核模式称为“实验2+2”模式。每个实验项目结束前进行验收考核,经常进行阶段性考核,主要是激发学生的学习兴趣,保证了课堂教学纪律,基本没有缺勤的学生,让学生找不出来不学习的理由,因为每处都与成绩挂钩,都在拼命的去“挣分”。

对于课程设计部分,实验室开放时间结束时,由学生提交课程设计源代码和设计总结报告。源代码提交时,要生成可执行文件,对文件进行压缩,压缩文件名为“学号+姓名”形式,发送到指定邮箱地址。课程设计成绩根据学生设计任务完成情况、设计报告、设计成果的质量以及答辩情况综合评定。完成情况主要包括:功能实现情况和程序设计情况;设计报告包括课程设计报告格式,课程设计思路及设计过程,以及对设计的自我评价,收获和体会等;答辩要求思路清晰,模块关系清楚,回答问题敏捷。

对于学生的学业成绩采用结构化成绩,把100分不再作为一个整体看待,把它融进教学的全过程中去。学生的学业成绩由平时成绩、副卷成绩和主卷成绩构成,平时成绩占20%,副卷成绩占20%,主卷成绩占60%。在平时成绩中课程设计10分,作业和平时课堂表现5分,小考5分;副卷成绩中个人成绩15分(其中程序调试10分,实验报告5分),小组成绩5分。

4结论

通过实施验证,效果是良好的。实验的创新也带动了整个课程的进步,特别是上课出勤率,基本上是全勤。课堂气氛活跃,问题讨论热烈,学生的学习主动性大大提高了,网络教学平台登录次数明显增多。在问题答疑和考核验收方面,虽然增加了教师的教学工作量,但是提高了教师的工作热情。真正实现了“教”和“学”的良好互动,提高了教学质量。

参考文献:

[1] 周苏. “数据结构与算法”的教学改革和实验创新[J].计算机教育,2007,(15).

[2] 严蔚敏, 吴伟民. 数据结构[M]. 北京:清华大学出版社,1997.

[3] 严蔚敏, 吴伟民. 数据结构题集[M]. 北京:清华大学出版社,1999.

猜你喜欢

组织形式数据结构考核方式
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
浅谈初中语文口语交际教学
金融管理与实务专业人才培养方案探究
《桥梁工程》课程的试卷分析及教学改进措施
职业能力视角下的高职语文教学策略探讨
旅游科普活动与旅游课堂教学相结合的研究初探
数据结构与算法课程设计教学模式的探讨
高效学习数据结构