数据结构与算法实验教学的改革与探索

2014-09-16 10:35吕亚荣,缪相林
教育教学论坛 2014年18期
关键词:实验教学改革

吕亚荣,缪相林

摘要:数据结构与算法课程是计算机专业的一门核心基础课,具有很强的实践性。在分析该课程实验教学现状的情况下,提出了实验教学内容的改革、实验教学方法的改革以及实验考核方法的改革等问题,提高了实验教学的效果,激发学生的学习兴趣。

关键词:数据结构与算法;实验教学;改革

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)18-0028-03

数据结构与算法是计算机专业的核心基础课程之一,通过本门课程的学习,可以使学生透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力,而该课程的实验课是学生验证、掌握和应用数据结构理论的重要途径。

一、数据结构与算法上机实验课程的现状

数据结构与算法课程涉及大量数据类型及算法,理论性很强,抽象难懂,对学生的学习造成了一定的难度。受传统的教学模式的影响,课程的实验教学一直处于从属地位,同时因学生基本程序设计能力有待提高等因素影响,实验效果不甚理想。如何使学生理论学习和实践学习相结合,提高学生的实践能力,已成为高等院校培养应用型本科人才的一项重要课题。

目前在数据结构与算法实验教学过程中发现的问题主要有以下几点:

1.学生对于上机实验的重要性认识不够。对于学生来说,由于部分院校的教学资源所限,数据结构与算法课程长期以来都是课堂和实验分开进行,授课教师对于上机实验过程几乎不参与,这就导致了学生重视课堂理论的讲授,而忽视上机实验课程的重要性。

2.课程实验缺乏层次性。上机实验教学内容大多为简单的验证性实验,缺乏综合性、应用型、设计性实验项目。增加论述。

3.课程理论性强、难度大。数据结构与算法课程理论性极强,抽象难懂,很多学生在课堂听课过程中不能够完全理解,无法建立起数据结构和相应算法的概念,长此以往导致学生对于这门课程的畏惧和抵触情绪,同时也严重打击了学生上机实验的积极性。

4.学生对掌握程序语言的程度不够。学生对程序设计语言掌握得不理想,也是导致学生上机实验缺乏积极性的一个重要原因。数据结构与算法是学生在学过一门或几门语言课程之后开设的,其算法大都由C或C++语言描述,要求学生能够使用某种程序设计语言对算法进行程序设计,并且上机调试通过。以我学院为例,学生在学习数据结构时,虽然已经学过C语言,但仅是初学,并不精通。因此对于抽象的数据类型、动态分配存储空间等概念,在理解上还是有一定困难的。由于对程序设计语言掌握得不好,大部分学生在编程的过程中陷入迷茫的状态,阻碍了他们对各类数据结构和算法等知识点的理解和应用,使教学目标难以实现。

二、实验教学的改革和探索

(一)实验教学内容的改革

数据结构与算法课程主要使学生掌握程序数据的结构、组织和管理技术以及在此基础上的算法设计与分析技术,不仅为后续课程操作系统、编译原理、数据库原理、软件工程、人工智能等课程提供必要的知识准备,更重要的是可以提高学生软件分析、设计、编程和数据组织的能力。根据数据结构与算法整个课程体系的划分,本课程的上机实验主要分为以下几种类型:

1.验证性实验。这一类型的实验主要在上机实验课中完成。以西安交通大学城市学院为例,本门课程有8个学时的上机实验,主要任务是将课堂上讲过的内容以实验的形式贯穿起来,所涉及的实验以教材中提及到的基本算法和例题为主,基本都是验证性的实验。以单链表为例,要求学生通过定义线性表的抽象数据类型,在链式存储结构下完成单链表的建立、插入、删除、查找、求前驱节点和求后继节点等操作,通过实验教学,在加深学生对数据结构课程内容理解的同时,达到理论联系实际的目的。

学生通过完成此类实验,一方面可以强化基础知识,另一方面也可以通过编写算法掌握高级语言程序,同时还可以训练学生良好的编程风格、基本实验技能和科学严谨的实验作风。

2.综合性实验。综合性实验部分实在课程设计阶段来完成。主要任务是考查学生运用所学基本数据结构解决实际问题的能力。所设计的实验项目可以是课程设计指导书中提供的参考题目,也可以是工程中的实际课题,选题要与所学阶段性知识紧密联系,任务有一定的难度和综合性,对学生的编程思路和方法有启发作用的项目。例如:学习了栈和队列知识后可以要求学生设计一个停车场管理系统,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。又如:学习了图的路径的相关算法后,可利用学生熟悉的当地交通情况、旅游景点等设计问路系统。这些问题与课本理论知识联系密切,而且具有一定的实用价值。

3.研究性实验。此类实验是针对于学有余力的学生,可安排一些研究性实验,针对计算机专业学生的特点,可以以软件开发的形式进行,让学生以创新者的角色去做实验。所设计的实验项目都是实际工程中的课题,题目的解法要求符合工程实际情况,具有可行性。学生可以自己提出实验题目和开发工具,自己设计实验过程等,有条件者还可以进入工程实践中进一步提升实践能力。

(二)实验教学方法的改革

根据我院学生的特点和学院培养应用性本科人才教育宗旨,我们在实验教学的方法上进行了改革。

1.先简后难,循序渐进。在上机实验课中,主要以验证性试验为主,针对堂课讲授的知识安排配套的练习。练习的内容以编写的数据结构与算法实验指导书的形式发给学生,每节课明确实验任务、实验方法和结果要求,使学生在有限的课堂时间中完成相应训练目标,掌握基础知识,夯实基础;在课程完成之后的课程设计阶段,加大难度,主要以综合性的题目为主,对于程度特别好的学生也可以完成研究性的项目。针对这一阶段的训练,我们也编写了相应的课程设计指导书,提供给学生适合的参考题目和编程提示。有助于学生更好的完成项目要求。通过一系列的训练,培养学生算法设计能力以及创造性思维,以达到提高学生应用知识解决复杂问题能力的目标。

2.启发式教学和分组实验。在教学方法上,把传统教法中老师讲,学生听的“灌输法”转化为“启发式”的教学方法,引导学生自主思考,常常提问“WWW”,即“What,Hao, Why”:这个问题做什么的?需要用的哪方面的知识?怎么去解决问题?如何解决?教师教给学生提出问题、分析问题和解决问题的方法,学生自行探究问题和解决问题,激发学生探求知识的欲望和积极的学习兴趣。

在训练的形式上,改变传统的“集体化”路线,根据程度的不同将2~4名学生分成多个小组,任命一名学习能力强、组织能力好的学生担任项目组长,以软件开发小组的形式协同工作,合理分工,共同学习,通过团队讨论解决问题。各小组成员不仅要完成自己的工作,还要与其他成员合作,共同完成整个项目。教师应多给予学生鼓励,激发学生的思维,促进他们合作的欲望和热情,使课堂活泼积极,并且适时的提供必要的启发式帮助,只提供意见,不具体替学生完成。让学生从解决问题和团队合作中获得成就感和自我认同感,在轻松的氛围中达到激发学生兴趣,提高学生综合实践能力的目标。

(三)项目答辩和实验报告结合的考核方法。

1.项目答辩。在课程设计实验结束时,专门抽出时间对个小组成员的工作进行考核,要求每个小组选派2名学生进行答辩,在规定时间内陈述小组工作情况,遇到的问题及解决的办法,最终达到的效果及心得体会等。根据答辩情况,给予优、良、中、差和不及格五档评分。通过这种团队合作和答辩的方式大大提升了学生的实践能力、组织和口头表达能力及合作精神。

2.实验报告的规范。课程设计实验结束后要求学生写出实验报告,以作为实验环节评分的书面依据之一和存档材料。实验报告以规定格式的电子文档书写、打印并装订,排版及图、表要清楚、工整。每个小组每个题目提交一份实验报告,实验报告除介绍本小组成员所做工作外还应包括以下内容:

(1)需求分析。以规范的技术文档语言陈述说明项目设计的任务并明确规定:①输入的形式和输入值的范围;②输出的形式;③程序所能达到的功能;④测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

(2)概要设计。说明本程序中用到的所有抽象数据类型的定义、主控程序的流程以及各程序模块之间的层次关系。

(3)详细设计。本阶段的主要任务是实现概要设计中定义的所有数据类型,对各操作、主程序和其他模块均要求写出伪码算法,同时可以使用流程图或者N——S图进行描述,画出函数和过程的调用关系图。

(4)调试分析。在程序的调试过程中出现的问题以及解决办法,回顾和讨论设计与实现过程中的相关问题。

(5)测试结果。列出完整和严格的测试数据,包括输入和输出。

(6)用户使用说明。说明程序的使用方法,并列出每一步的具体操作步骤。

(7)代码注释。算法必须给出完整、正确的文字注释。

三、改革的效果

通过数据结构与算法实验教学的改革,学生的学习热情和积极性得到了明显的提高,学生的主动思考和积极实践的热情得以激发。学生能够在实验期间主动积极的参与并解决问题,提高了学生的实践能力和编程能力。通过分组合作的方式进行项目训练,培养了学生的团队合作意识和严谨的工作作风。通过小组答辩,教师了解了每组学生的学习情况,把握学生的学习状态和程度,有助于在日后的教学中给予适当的指导。教师在此过程中不断总结问题,积累经验,使教学质量得到显著提高。

四、结束语

数据结构与算法在计算机课程体系中占据重要地位,其实验环节的教学质量直接关系到本门课程的学习效果。在实验教学过程中必须以培养学生的综合实践能力为宗旨,不断改进教学方法,加大实验教学力度,做到夯实基础,提高能力,为学生后续专业课程的学习打下良好的基础。

参考文献:

[1]耿国华.数据结构——C语言描述[M].北京:高等教育出版社,2006.

[2]赵玉霞.《数据结构》课程上机实验改革初探[J].福建电脑,2007,(4):213-214.

[3]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1997.

[4]宁正元,王秀丽,林大辉.与数据结构[M].北京:清华大学出版社,2006.

[5]宁正元,王秀丽,林大辉.与数据结构习题解析和实验指导[M].北京:清华大学出版社,2007.

基金项目:本研究课题受西安交通大学城市学院第六批教改项目基金支助,项目编号:112002。

作者简介:吕亚荣(1984—),女,陕西西安人,西安交通大学城市学院工程师。

猜你喜欢
实验教学改革
关于基础教育阶段实验教学的几点看法
电容器的实验教学
改革之路
改革备忘
改革备忘
改革备忘
几何体在高中数学实验教学中的应用
改革创新(二)
基于云计算的计算机实验教学探讨
瞧,那些改革推手