数据结构实验报告范文

时间:2023-03-08 04:51:09

数据结构实验报告

数据结构实验报告范文第1篇

关键词:数据结构;实验内容;实验方法;实验过程;实验考核

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)20-0063-02

《数据结构》是计算机程序设计的重要理论基础,是计算机科学及其应用专业的一门重要的基础课程和核心课程。《数据结构》课程内容丰富、理论抽象且实践性强,所以在本课程的教学过程经常听到学生的反映是课堂上能听懂老师的讲解,但自己解决问题编写算法时感到困难重重,将课程的抽象理论知识应用到实际解决问题时感到无从下手、力不从心,因此加强《数据结构》课程实验课教学迫在眉睫。笔者从事多年《数据结构》的教学工作,在《数据结构》实验课规范化建设方面作了一些初步探讨。

一、《数据结构》实验教学存在的问题

在《数据结构》的教学中,存在着课程、教师、学生等方面的诸多问题:(1)课堂实验课时严重不足。现在《数据结构》实验一般安排32个实验课时,加上课程设计32个实验课时,也只有64课时。在这有限的时间里完成课程的所有实验在时间上显得严重不够,必须突破实验的时间和空间限制,让多数实验在课外完成。(2)实验内容单一,不能形成体系,更多地注重验证性实验,较少开设设计性、综合性、创新性实验项目。(3)课堂理论教学与实验教学未能很好地协调,理论和实验不能有机地结合。《数据结构》课程是不仅理论抽象而且实践性很强的课程,目前在教学中教师更多地是注重学生课堂理论知识的掌握,而轻视实践教学,实践教学缺乏具体明确的要求和任务。同时理论和实验在时间上存在滞后现象。(4)学生学习能力严重不足。《数据结构》课程较之入门的《程序设计语言》,教学内容的难度与算法的复杂程度都要大。部分学生的学习能力瓶颈凸显,致使学生产生畏惧与厌烦情绪,学习动力丧失,学习疲于应付,抄袭现象严重。(5)程序设计语言掌握不到位。常见的问题包括:函数调用关系混乱、实际参数和形式参数类型不匹配、指针变量不会使用、变量定义不规范、调试程序能力较弱等。

二、《数据结构》课程实验教学的改革方法

根据独立学院学生特点,注重学生学习兴趣和应用能力培养,加强《数据结构》课程实验课教学,规范实验课教学的各个环节,对实验内容、实验方法、实验过程监控和实验考核机制等实施改革,建设完善的实验教学体系,对提高实验教学效果有重要的意义。

1.实验教学内容层次化。根据独立学院应用型人才培养目标,注重培养实践动手能力,结合教育部的“面向21世纪教学内容和改革计划,保留少量必开的经典验证型实验,增开综合型、设计型实验”的精神,为了保证实验课的正常运行,完成实验教学目标,针对独立学院学生普遍编程能力比较弱、C程序设计语言基础较差的情况,我们打算增开一些巩固C语言的课程预备型实验项目,保留了部分必要的经典的验证型实验内容,增加一些设计型实验,加强综合型实验,使得实验类型不再单一,实验内容更显层次化,做到既要有基本实验的训练,又有独立思考、综合运用知识、创新等能力、素质的培养。预备型实验:主要加强学生C语言的薄弱环节,如结构体、指针、数组、函数调用等,掌握C语言的这些知识点是完成《数据结构》实验的有力保证。验证型实验:主要为了理解和巩固《数据结构》的基本知识点,用来验证典型《数据结构》的逻辑定义及在具体存储结构下的相关操作实现。设计型实验:以《数据结构》课程理论知识为基础,让学生设计一些能解决实际问题的题目,这样既加深了学生对基础理论知识的了解,同时提高了学生学习的兴趣,锻炼了学生设计算法解决实际问题的能力。综合型实验:实验内容涉及本课程多数章节及相关课程知识。主要培养学生的综合分析能力、实验动手能力、数据处理能力及查找参考资料的能力。

2.实验方法规范化。对于一般的验证型实验,学生上机的任务只是将课本上的算法修改为在某种编程语言环境下可以运行的程序而已。但对于设计型和综合型实验,尤其是综合型实验,它是多种能力的综合训练,包括问题分析、总体结构设计、程序设计等基本技能,需要用更科学的实验方法系统地完成。所以,为完成《数据结构》实验,我们引入软件工程的方法来指导实验,实现实验方法的规范化。需求分析:需求分析说明实验的主要任务,如输入的形式和输入值的范围、输出的形式、程序功能、测试数据等。概要设计:说明本实验中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次调用关系。详细设计:实现概要设计中定义的所有数据类型,对每个操作用程序设计语言编写代码;画出函数之间的调用关系图。调试分析:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想。

3.实验过程规范化。《数据结构》课程实验同其他课程不同,在上实验课之前需要做大量的准备工作,整个实验从开始到结束不可能在有限的实验计划课时中全部完成,因此对整个实验过程的控制和管理显得非常重要。实验过程从课前预习阶段、实验操作阶段和实验总结阶段等三个阶段进行改革,以实现实验过程的规范化。课前预习阶段:以往的实验教学环节,往往是学生到课堂才知道实验内容,学生往往措手不及,不利于实验教学的正常开展。现在我们采用把每个实验内容提前通知学生,要求学生做好课前预习,详细了解实验目的和原理、实验要用到的数据结构和算法,写出实验预习报告,在实验之前提交。通过课前预习,保证学生在实验中思路清晰,能及时发现问题,易于取得实验的成功。实验操作阶段:上机实验的过程是实验成败的关键,我们一方面要求学生在实验过程中养成做实验记录的良好习惯,另一方面引导学生在实验过程中积极思考、反复调试,当出现异常情况时,要指导学生分析其产生问题的根源,寻求解决问题的方法。每次实验结束后,要将实验记录交给教师检查签字。实验总结阶段:这一阶段要求学生完成高质量的实验报告,实验报告中除了包括数据结构定义、算法思路、异常情况分析、测试数据及运行结果等必备的内容外,更重要的还要包括实验设计实施的成败得失、经验教训、心得体会。整理和填写实验报告的过程,即是学生对自身存在的问题进行修正和完善的过程,通过分析整理实验报告,学生可以更深刻地认识到自己在实验中存在的问题,加强其设计思维的训练,也能不断积累解决实际问题的动手能力。

4.实验报告规范化。实验报告是对整个实验过程的总结,要求学生能从实验的方法、原理、操作步骤、实验的数据和结果等方面进行分析,掌握其中的基本实验方法。对于不同类型的实验项目,因为实验的难易程度、教学目的不同,我们要求实验报告的规范格式也不同。

对于预备型、验证型实验,实验报告的基本组成部分有:(1)实验目的:(2)实验环境:(3)实验内容和要求。前三项由教师统一提供。(4)数据结构和算法思想:程序中用到的数据的描述及涉及的算法思想的简单描述。(5)实验结果:含各组测试数据及运行结果(经任课教师签字的原始实验记录)、实验总结等。⑥思考题解答:主要写出解决问题的方法,不要求写代码。对于设计型、综合型实验,实验报告的基本组成部分有:(1)问题描述:描述要求编程解决的问题。(2)基本要求:给出程序要达到的具体的要求。(3)测试数据:设计测试数据,或具体给出测试数据。要求测试数据能全面地测试所设计程序的功能。(4)算法思想:描述解决相应问题算法的设计思想。(5)模块划分:描述所设计程序的各个模块(即函数)功能。(6)数据结构:给出所使用的基本抽象数据类型以及新定义的抽象数据类型。(7)源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。(8)测试情况:给出程序的测试情况,并分析运行结果。

5.实验考核标准化。关于实验成绩的考核,不能过分依赖实验报告的优劣,否则会导致学生不注重实验过程,片面追求实验结果的正确性、实验报告的篇幅和整洁程度,并严重制约了对学生综合素质的培养。因此,必须大力革新传统的考核体制,制定合理科学的考核方法。现在我们采用将学生实验成绩以优、良、中、及格和不及格5个等级评定。其中实验考核成绩占总成绩30%;实验预习占总成绩15%;实验态度(包括出勤)占总成绩15%;实验报告占总成绩40%。

数据结构实验报告范文第2篇

摘要:“数据结构”课程是计算机科学与技术及信息管理与信息系统等专业的核心课程之一,同时也是一门实践性很强的课程。然而,目前在“数据结构”教学过程中却存在着诸多问题。本文在分析这些问题的基础上,提出了课题答辩式的“数据结构”实验教学方法。实施结果说明这是一种较为理想的实验教学方法。

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

中图分类号:G642 文献标识码:B

1“数据结构”教学现状和原因分析

根据调查发现,目前大多数院校“数据结构”教学现状不容乐观。这表现在一方面授课教师感觉到学生学习积极性不高,知识点掌握不够扎实,不能用于解决实际问题,讲授进度过于缓慢,考试结果不甚理想;另一方面学生普遍反映学习难度较大,理论性太强,从而认为学习“数据结构”没有实际用途,同时也产生较大的畏惧心理,导致大部分学生学完这门课程后仍然云里雾里,不知所学。造成这一现状的原因主要有以下几点:

(1) 理论与实践相脱节。“数据结构”本身建立在抽象的数据模型的基础上,理论性和逻辑性比较强,内容相对来说枯燥无味、抽象难懂,知识点也比较多。同时,在学习“数据结构”之前大部分学生对计算机体系结构并不了解,因而只是一味地从逻辑结构和存储结构等方面讲解就会造成学生理解上的困难。另外,“数据结构”本身是一门实践性很强的课程,但在实际教学过程中无论是教师还是学生往往都是只重视理论教学而忽视实验教学。

(2) 学生基础薄弱。由于“数据结构”是计算机专业和信息管理与信息系统专业其他核心课程的先行课,因而大部分院校都是在学生只学习了一门高级语言程序设计之后就要开出。一方面,学生缺乏对计算机较深入的理解;另一方面,由于学时的不断压缩,造成学生对程序设计语言的掌握不够扎实。比如,我们在讲授过程中经常发现,每当讲到C语言中的函数调用、指针和结构体的使用时,学生明显觉得很吃力。这种现象导致课程进度非常缓慢,有时甚至不得不拿出专门的时间重新讲授程序设计语言的内容。这同时也导致学生一看到伪代码就头痛,学习兴趣急剧下降,畏难情绪油然而生。

(3) 实验学时和内容安排不当,传统的“重理论,轻实践”的教学指导思想依然严重。比如大部分院校安排18个学时的实验教学,每2周上1次实验课,1次2学时。这就使得原本较少的实验学时进一步支离破碎,无法形成一个完整的实验教学体系。另一方面,实验内容通常由指导教师安排一些简单的验证型实验,也达不到巩固和促进理论教学的目的。再加上学生编程能力本来就有限,造成实验教学效果极差。

2课题答辩式实验教学改革

2.1课题答辩式实验教学的基本思想

课题答辩式实验教学方法的基本思想是:合理安排实验学时,整体规划实验内容,以理论教学内容指导实验教学内容,以实验教学内容巩固和促进理论教学内容的推进,培养和锻炼学生理论与实践相结合的科学态度、团队合作精神,提高学生学习兴趣、分析和解决问题能力、写作能力、编程能力、组织和口头表达能力、实践能力及创新素质。

2.2课题答辩式实验教学的基本方案

课题答辩式实验教学打破传统的实验教学方法,其基本方案包括以下几个方面:

(1) 打破传统的2周1次,每次2学时的实验学时安排,采取相对集中的方法。比如我们把18个学时安排到每个学期的后6周进行,每周1次,每次3学时。这样安排的好处有3点:首先,随着理论课的深入,学生对前面所讲内容的理解更加深刻,有利于安排一些综合性和创新性的实验项目;其次,实验时间相对集中,可让实验内容得以连续进行,尽量减少中断次数;最后,在前期理论课进行过程中,学生会发现他们的程序设计语言基础不够扎实,因而会自觉加以复习。同时,通过教师对一些算法的讲解和分析也可以促进学生对程序设计语言的掌握。

(2) 打破传统的每次实验都安排一些验证性实验内容的做法,统一规划实验内容。根据“数据结构”课程内容特点,我们只设置了4个实验,即线性结构(包括线性表、栈、队列、串、数组和广义表)、非线性结构(树和图)、查找和排序各设1个。每个实验可设置多个实验课题,而每个课题都是一些综合性的题目。比如,在线性结构中我们设置了5个课题,分别是长整数运算、停车场管理、约瑟夫问题、简单行编辑程序和稀疏矩阵运算器。每个课题都紧密联系实际。同时也允许和鼓励学生自选感兴趣的、有实际应用的课题。这样学生就认识到“数据结构”可以解决实际问题,兴趣自然就提升上来了。

(3) 打破传统的所有学生做同一个实验项目的做法,采取分组做法。各个小组可以根据自己的兴趣选择题目,要求一个小组在规定的时间内完成一个实验项目。这样做的好处是可以锻炼学生的团队合作精神。

(4) 打破传统的学生做完实验提交实验报告就算完成的做法。只要求每个小组提交一份实验报告。同时抽出专门的时间要求小组成员对实验过程进行答辩,依据答辩情况进行评分。这大大提升了学生的编程能力、写作能力、组织和口头表达能力。

2.3课题答辩式实验教学的具体实施方法

为了达到实验教学效果,在实施过程中我们主要采取了以下一些具体方法:

(1) 对设计题目进行较详细的说明。主要包括:课题所涉及“数据结构”的内容、课题的实际应用价值、完成课题的基本要求、主要测试数据、课题实现提示和思考与提高等。

(2) 对实验过程进行控制。为此,我们提出以下基本实验要求:

① 每个小组由3-5人组成,每个小组选出1名小组长负责本小组的组织工作;

② 实验题目分给定题目和自选题目,每个小组可以在某一阶段时间内从给定题目中选择或者自拟1个以上的题目完成;

③ 所有成员都应该参加本小组的设计,并详细记录在本小组中所起的作用,作为成员最终成绩的评判依据;

④ 每个小组每个题目提交一份实验报告,实验报告除介绍本小组成员基本信息外,还应详细记载小组成员所做的工作以及以下几个方面的内容:

需求分析:说明课题设计的任务;

概要设计:说明课题中用到的抽象数据类型的定义、主程序的流程以及各程序模块之间的调用关系;

详细设计:实现程序模块的具体算法;

调试分析:调试过程中遇到的问题及解决方法;算法的时空分析;经验和体会等。

测试结果:列出测试结果,包括输入和输出;

附录:带注释的源程序。

(3) 对课题完成情况进行评判。采取的方法是进行公开答辩。成立答辩委员会,委员由各小组组长担任。答辩分两阶段进行:陈述阶段和提问阶段。陈述内容由各小组根据组员分工情况进行。提问则主要由选择同一课题的其他小组成员参与,这样可以共同交流各小组在完成课题时遇到的问题和解决的方法。答辩过程完全由学生组织和完成,教师参与指导。各小组的成绩由答辩委员会给出,各小组成员的成绩则由组长根据组员的工作情况给出。

3课题答辩式实验教学的教学效果

我们对2006级信息管理与信息系统专业的学生采用了课题答辩式实验教学。从提交的实验报告反映出,各小组利用各种方式参与到其中,比如经常在学生食堂、学生宿舍和QQ群上开展小组讨论。由于大部分同学是带着本小组讨论的问题听课,因而理论课堂的教学效果也明显好转。下面节选的期末网上学生评教和实验报告学生体会和感言说明了课题答辩式实验教学达到了较好的教学效果。

(1) 学生对教学的评价(节选自教务管理系统学生网上评教结果):

① 经常做些答辩,让学生有机会理论联系实际,得到锻炼;

② 注重教学方法,注意师生交流,能调动学生积极性;

③ 给予学生思考、联想、创新的启迪,学生收获大;

④ 工作认真负责,并有效地锻炼了学生的实践能力;

⑤ 注重培养学生的动手能力,教学方法比较适合创新型学生的培养;

⑥ 注重教学方法创新,实验内容丰富,形式多样化,使所有同学都参与到其中去;

⑦ 李老师给予我们思考、联想、创新的启迪, 我学到了解决问题的方法,提高了分析解决问题的能力,收获大;

(2) 学生感言和体会(节选自学生实验报告):

① 对于团体项目,工作组员应该在组长组织下共同努力,说出自己的想法,在完成自己的分内任务下,还应该和大家积极的讨论、学习;

② 作为组长,我觉得大家在这次的实验中真的很努力了,都尽可能最好的完成了布置的任务并且做得更好,还在讨论中提出了许多有建设性的问题,有的组员甚至为了弄明白一些自己不懂的东西还向计算机老师请教,我觉得也许我们的程序还有思想不是很成熟,但是我们学习的热情是绝对很高的;

③ 为了做好这次的实验,我把不怎么熟悉的C语言看了一遍,还把数据结构也看了一遍,觉得学习到的东西不只是编程序,还懂得了要把所学习到的东西连贯起来运用才达到真正使用的效果;

④ 本来觉得学习C语言和数据结构在实际的生活中不会有什么作用,但是通过这次的学习我了解到其实生活中的许多东西都应用到我们现在学习的东西,现在的知识再结合一些比较好的思路和方法我们也可以成为技术人员;

⑤ 团结就是力量,有多少努力付出就有多少收获。通过实验程序的编写,最大的收获是学会了如何与组员合作,在遇到问题的时候如何处理问题,培养了一种良好的思维习惯。

4结束语

“数据结构”是一门理论性和实践性都很强的课程,既需要利用理论教学的结果来指导实验教学的过程,也需要利用实验教学的过程来强化理论教学的效果。因此,如何在教学过程中把理论教学与实验教学很好地结合起来就成为“数据结构”教学成功的关键。本文提出的课题答辩式实验教学能够激发学生的学习兴趣,锻炼学生分析和解决实际问题的能力,培养学生全面综合的素质,不失为一种较好的“数据结构”教学方法。

参 考 文 献

[1] 黄现代. “数据结构”课程教学改革与实践[J]. 计算机教育,2007,(16):38-39,53.

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

[3] 陈澜,顾翔. 数据结构实践环节教学研究[J]. 电脑知识与技术,2007,(12):1712,1715.

[4] 陈媛,刘洁. 信息管理与信息系统专业中数据结构课程的实验教学探讨[J]. 重庆工学院学报,2007,(5):161-163.

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

数据结构实验报告范文第3篇

关键词:数据结构;教学设计;教学目标;内容体系

中图分类号:TP3-0 文献标志码:A 文章编号:1674-9324(2013)08-0209-04

一、引言

《数据结构》是计算机科学与技术及相关专业的一门非常重要的专业基础核心课程,其主要研究内容是数据之间的逻辑关系和物理实现,即探索有利的数据组织形式及存取方式。有关计算机的各类软件的开发和设计,首先要考虑数据的表示,即使用何种类型的数据结构。因此,如何更好地解决实际问题,仅仅依赖几种计算机程序设计语言是不够的,还必须学习和掌握好数据结构的有关知识。当我们使用计算机来处理一个具体问题时,一般需要经过下列几个步骤:首先要从该具体问题抽象出一个恰当的数学模型,然后设计出解决此类数学模型的算法,再编写相应的程序并进行调试、测试,运行程序并最后得到答案,如图1所示。

早期计算机为解决问题而涉及的运算对象都是一些简单的数据类型,如整型、实型或布尔类型数据,所以一般把着重点放在程序设计的技巧上,而不必重视数据结构。随着计算机的发展,它的应用领域的不断扩大,涉及非数值计算问题的应用所占的比例越来越大,许多问题涉及到的处理对象不再是简单的数据类型,其形式更加多样,结构更为复杂,因此,解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,以便更有效地解决问题。

二、课程说明

1.课程的定位。《数据结构》这门课程,是计算机理论与技术的重要基石,该课程一般是在大学二年级上学期开设,具有承上启下的重要作用,既要对前一年学习的软件技术进行总结提高,又要为后续专业课程提供基础。它贯通始终,是计算机科学与技术人才素质培养框架中的中坚课程,对学生的软件开发能力培养至关重要,也为学生今后的专业生涯打下牢固的基础。所以《数据结构》课程是计算机专业提高软件设计水平的一门关键性课程,它在整个课程体系中具有非常重要的地位。《数据结构》课程在计算机学科中与其他课程的关系如图2所示。

2.课程的教学目标。温州大学瓯江学院作为独立学院,其定位为培养“应用性”本科人才,同时结合本课程的地位,因此,在本课程的教学中体现“基础性”和“应用性”。本课程的定位与目标是:①注重基础性:掌握基本数据结构的特点,了解数据结构与算法的关系;培养学生的算法设计与分析的基本理论知识和技能;培养学生设计及选择有效的算法、设计合适的数据结构的能力;增强学生发现问题、分析问题和解决问题的能力。②突出应用性:本课程强调理论和实践的统一,突出对学生的动手能力的培养。在对学生进行基本数据结构的理论、技术和设计等的知识运用和技能培养的同时,突出对学生进行将实际问题转化为基本数据结构和算法问题的分析能力。鼓励学生学以致用,用学到的知识来解决实际问题。

3.课程内容体系。数据结构课程的内容主要是围绕着数据的逻辑结构、数据的物理结构(数据在计算机中的存储方式)和选用合适的算法来实现对数据的相关操作展开。数据的逻辑结构有:线性结构、树形结构、图结构;数据的物理(存储)结构有:顺序存储结构和链式存储结构。在教学中引入抽象数据类型(ADT)观点介绍数据结构技术,采用算法时空分析来判断算法的好坏。在此基础上介绍数据结构的具体应用。数据结构课程的内容体系如图3所示。

我们把数据结构课程的内容划分为基础部分、数据结构与算法部分和应用部分。基础部分的内容有数据结构与算法的基本概念,抽象数据类型(Abstract Data Type,简称ADT)的表示,算法时空分析(算法复杂度)等。数据结构与算法部分是课程的核心内容。介绍各种基本数据结构的特点、ADT、各种存储实现方法、相关的操作的实现。应用部分主要介绍排序、查找(或检索)、索引和散列等经典算法。

三、理论教学设计

1.教学方法与手段。由于独立学院的学生本身基础不够扎实,加上《数据结构》课程理论性强,内容抽象,学生在学习该课程的开始阶段,容易产生畏惧和茫然的情绪。为了提高教学质量,我们在对教学方法和教学手段等方面进行了有益的探索和尝试。要处理好多媒体教学模式与传统教学模式之间的关系。多媒体教学模式以其形象性、生动性和信息量大等特点已成为主要的课堂教学手段,但也存在一些不足,一方面影响教师的即兴发挥,而这恰是传统黑板教学的长处;另一方面,由于多媒体教学具有信息量大、呈现快速、表现直观、操作简便的特点,教学活动很容易出现“课件喧宾夺主”的不良倾向。笔者认为,在讲述如算法思想、编写程序时,采用传统的教学模式更能清晰地表达。因此,在教学中要综合使用多媒体教学模式与传统教学模式两种教学手段,以达到良好的教学效果。

2.把握课程的重点和难点。①课程的重点。基础部分:数据结构的有关概念术语、算法特性、算法描述和算法分析;数据结构与算法部分:线性表、栈、队列、串、树、二叉树、图等数据结构的逻辑结构、存储结构、相应基本操作的实现,这些基本数据结构的应用:一元多项式的运算、递归算法的设计和实现、哈夫曼算法的实现和哈夫曼编码的设计、最小生成树和最短路径的求法及实现;应用部分:顺序查找算法的设计,二分查找算法的设计,二叉查找树的创建、查找、插入和删除的算法的设计,散列表的建立和查找算法的设计;直接插入排序算法、冒泡排序算法、简单选择排序算法、快速排序算法、堆排序算法和归并排序算法的实现,这些排序算法的性能比较。②课程的难点。基础部分:抽象数据类型(Abstract Data Type,简称ADT)概念的理解和描述,算法时间复杂度和空间复杂度的估算方法;数据结构与算法部分:栈在递归函数中的应用,模式匹配KMP算法。图的遍历方法、Dijstra、Floyd、Prim、Kruskal等典型的图应用算法;应用部分:排序算法的复杂性分析,排序方法在各类实际问题中的应用。散列表的建立和查找算法的设计。

四、实验教学设计

1.实验类型。根据独立学院应用型人才培养目标,注重培养实践动手能力,结合教育部的“面向21世纪教学内容和改革计划,保留少量必开的经典验证型实验,增开综合型、设计型实验”的精神,为了保证实验课的正常运行,完成实验教学目标,针对独立学院学生普遍编程能力比较弱,C程序设计语言基础较差的情况,我们打算增开一些巩固C语言的课程预备型实验,保留了必要的经典的验证型实验内容,增加设计型实验,加强综合型实验,使得实验类型不再单一,实验内容更显层次化,做到既要有基本实验的训练,又有独立思考、综合运用知识、创新等能力和素质的培养。预备型实验:主要加强学生C语言的薄弱环节,如结构体、指针、数组、函数调用等,掌握C语言的这些知识点是完成数据结构实验的有力保证。验证型实验:主要是为了理解和巩固数据结构的基本知识点,用来验证典型数据结构的逻辑定义及在具体存储结构下的相关操作实现。综合型实验:实验内容涉及本课程的综合知识或本课程相关课程知识,主要是为了培养学生的综合分析能力、实验动手能力、数据处理能力及查找参考资料的能力。

2.实验方法。对于验证型实验,学生在做实验的任务基本上,只是将课本的算法修改为在某种编程语言环境下可以运行的程序而已。但对于设计型和综合型实验,尤其是综合型实验,它是多个知识点的综合训练,包括问题分析、总体结构设计、程序设计等基本技能,需要用更科学的实验方法系统地完成。所以,为完成《数据结构》实验,我们引入软件工程的方法来指导实验,以实现实验方法的规范化。需求分析:说明实验的主要任务,如输入的形式和输入值的范围、输出的形式、程序功能和测试数据等。概要设计:说明本实验中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次调用关系。详细设计:实现概要设计中定义的所有数据类型,对每个操作用程序设计语言编写代码;画出函数之间的调用关系图。调试分析:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;算法的时间复杂度与空间复杂度的分析;算法的改进设想。

3.实验过程。数据结构课程实验同其他课程不同,在上实验课之前需要做大量的准备工作,整个实验从开始到结束不可能在有限的实验计划课时中全部完成,因此对整个实验过程的控制和管理显得非常重要,要求对每一次实验课都进行精心地策划,我们主要从课前预习阶段、实验操作阶段和实验总结阶段等三个阶段进行改革,以实现实验过程的规范化。课前预习阶段:以往的实验教学环节,往往是学生到了课堂上才知道实验的内容,学生往往措手不及,这不利于实验教学的正常开展。现在我们采用把每个实验内容提前放在网上,要求学生课前充分预习,详细了解实验目的和原理、实验要用到的数据结构和算法,在实验之前必须提交实验预习报告。通过课前预习,保证学生在实验中思路清晰,能及时发现问题,易于取得实验的成功。实验操作阶段:学生上机实验的过程是实验成败的关键,我们一方面培养学生在实验过程中养成做实验记录的良好习惯,另一方面引导学生在实验过程中积极思考,当出现异常情况时,教师要指导学生分析其产生问题的根源,寻求解决问题的方法。学生在每次实验结束后,要将实验记录交给教师检查签字。实验总结阶段:这一阶段要求学生完成高质量的实验报告,实验报告中除了包括数据结构定义、算法思路、异常情况分析、测试数据及运行结果等必备的内容外,更重要的还要包括实验设计实施的成败得失、经验教训和心得体会。整理和填写实验报告的过程,即是学生对自身存在的问题进行修正和完善的过程,通过分析整理实验报告,学生可以更深刻地认识到自己在实验中存在的问题,加强其设计思维的训练,也能不断地积累解决实际问题的动手能力。

五、课程考核

1.《数据结构》课程的考核学生成绩以100分制评定,其中,平时成绩(包括书面作业、课堂测试、期中测试),占总成绩的15%;考勤和学习态度,占总成绩的5%;上机实习(加实习报告),占学期总成绩的20%;期末考试,占总成绩的60%。

2.“数据结构综合实验”的考核学生成绩以优、良、中、及格和不及格五个等级评定,其中,学生编写的实际软件和运行结果,占总成绩的30%;设计报告,占总成绩50%;教师提问,占总成绩10%;考勤和学习态度,占总成绩10%。关于综合实验成绩的考核,由于过去过分依赖实验报告的优劣,导致学生不注重实验过程,片面追求实验报告的篇幅和整洁程度,严重制约了对学生综合素质的培养。因此,必须注重综合能力的考评,考虑平时的表现、实验过程的考核、严禁抄袭。

数据结构实验报告范文第4篇

关键词:数据结构;计算机教学;教学改革

作者简介:崔翔(1975-),男,河南开封人,河南大学计算机与信息工程学院,讲师。(河南 开封 475000)李晓雯(1984-),女,河南周口人,郑州防空兵学院指挥控制系,助教。(河南 郑州 450000)

中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)04-0060-02

“数据结构”是一门计算机软件基础课程,主要讲授计算机软件中数据组织关系的原理、算法和实现。[1,2]该课程是计算机软件专业、自动化专业及相关信息类专业课程体系中一门重要的专业基础课。“数据结构”一般以“计算机引论”、“离散数学”、“C语言”、“Java语言”等课程为先修课程,同时开设的课程有“数据库原理”、“计算机体系结构”等课程。该课程涉及程序设计语言、计算机软件理论和毕业设计诸多教学环节,主要目的是帮助学生建立计算机软件中数据的组织方法及其分析设计的基本技能,提升学生编程实践能力和综合解决问题的能力。[1]“数据结构”内容丰富,涉及多门交叉课程,为了在有限的教学时间内尽快引导学生入门,使其在理论与实践两方面的能力都得到提高,作者从“数据结构”课程的内容安排和教学方式等不同侧面进行了一定的探索和研究。

一、课程的教学内容改革

“数据结构”的主要内容包括数据结构组织的基本原理、算法和基于C语言的课程实验。[1,2]为了能在课程的讲述过程中重点突出,做到理论与实践相结合,在“数据结构”教学内容安排上进行了重新整合。

1.教学主线的确定

在教学过程中确定了一条课程主线,该主线构建在计算机软件数据的基本组织结构――线性结构、树形结构和图形结构以及联系这些数据结构的基本操作以及查找和排序算法之上,[1]如图1所示。

这条主线按照数据的组织结构展开,对总学时为80学时的教学计划,可以安排60个学时的理论课时间,以及20个学时的实验课时间。通过主线,可以将“数据结构”教学理论部分和课程实验部分有机结合。根据制定的教学主线,教师也可以根据教学计划对课时多少进行相应调整,例如增加更多的课程实验部分的内容。

2.“数据结构”理论教学的内容安排

“数据结构”的理论教学部分包括数据组织结构的概念和基本算法。掌握数据结构的理论内容部分可以帮助学生理解课程本质。内容安排以数据不同组织结构为主线,算法上有重点地展开讲解,主要目的在于帮助学生掌握数据结构的实质原理,培养学生对软件中数据的组织和基本操作的能力。

其内容安排如下:线性数据结构的基本概念和基本算法(包括数组、队列、栈和链表的基本概念和基本算法);树形数据结构的基本概念和基本算法;图形数据结构的基本概念和基本算法;查找、排序的数据结构和算法。在数组概念的教学中,强调数组元素可以是基本数据类型或是构造类型,按数组元素的类型不同,强调数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别;在队列概念的教学中,强调其只允许在表的前端进行删除操作,而在表的后端进行插入操作的特点;在栈概念的教学中,讲解栈是只能在某一端插入和删除的特殊线性表;在链表概念的教学中,讲解其物理存储单元上非连续、非顺序而数据元素的逻辑顺序通过链表中的指针链接次序实现连续存储的特点;在树形数据结构概念的教学中,讲解其数据元素一对多的存储特点;在图形数据结构概念的教学中,讲解其数据元素多对多的存储特点;在查找和排序概念的教学中,讲解不同的查找和排序算法(包括稳定算法和不稳定算法),分析其性能特点。

二、课程实验环节教学的改革

笔者在“数据结构”的教学中增强了实践环节的内容:在课程的教学时间安排中,实验课程的时间约占总教学时间的25%,并且综合性实验的内容比例占70%左右,实验内容的安排覆盖理论课部分的讲授内容。“数据结构”实验课程在安排上围绕前述的课程主线展开,将理论教学部分和实验教学部分有机结合,其目的要求如表1所示。通过课程实验教学环节的改革,学生学会如何分析数据的特性、给出数据结构的描述、写出相应的算法,培养和训练学生编写复杂程序的能力。

三、课程考核方式的教学改革

考试形式可采用闭卷考试成绩、平时成绩与课程实验成绩相结合的方式。评分标准:数据结构总成绩=平时成绩+实验成绩+期末闭卷考试成绩。

1.平时成绩

平时成绩占总成绩的10%,采用百分制共10分,评分标准采用以下方式:每缺勤一次扣3分,满三次扣10分,满四次取消考试资格。

2.实验成绩

实验成绩占总成绩的20%,采用百分制共20分,评分标准采用以下方式:在数据结构实验教学中共有8次实验,内容涵盖线性表、栈和队列、树、图、查找和排序,根据学生撰写的实验报告和程序代码实现情况,对每个学生完成的每个题目评出百分制成绩,然后求出8次的平均成绩,再乘以20%即为实验成绩。每次实验结束后,学生均应上交实验报告,源程序要加注释。如果题目规定了测试数据,则实验报告结果要包含这些测试数据和运行输出,当然还可以含有其他测试数据和运行输出(有时需要多组数据)。

3.期末闭卷考试

期末闭卷考试成绩占总成绩的70%。期末闭卷考试考核学生对本课程的综合理解情况,采用选择、填空、综合等多种题型,内容涵盖算法时间复杂性分析、空间复杂性分析、线性表、栈和队列、串、数组和广义表、树、图、查找和排序等内容,以树和图为重点,采用百分制,试卷成绩乘以70%即为期末闭卷考试成绩。

四、教学方式改革

由于“数据结构”不仅涉及理论方面的知识,还涉及编程实验的教学部分,如何在教学过程中对学生的自主学习潜力进行激发是一个值得探讨的问题。为了能够激发学生的主观能动性,需要在教学过程中实施以教师为指导的、以学生为中心的教学方式:[3,4]

1.帮助学生建立起学习动机,激发学生的学习兴趣

通过课堂理论教学的学习,学生已基本掌握了“数据结构”的理论知识。为使“数据结构”课程理论讲解部分更加生动和易于理解,在教学过程中,可以使用多媒体讲解的手段。另外,实验课的内容可以按照由容易到复杂的顺序进行安排,使得学生在成功完成简单作业后再有兴趣完成复杂作业,锻炼学生分析和解决问题的能力。

2.在教学过程中布置适当的实验作业以帮助学生思考,加强其认识

例如在实验“图及其应用”中,布置实现最短路径的算法,学生会发现,此类问题在实际软件应用中也有很强的实用价值。这样,可以使学生对数据结构算法应用范围的认识进一步加强。

3.增强教学过程的开放性

例如,在课程教学过程中,学生可以随时提问和展开讨论;在一些算法的讲解过程中,可以安排学生参与讲解。同时,学生可以对不同的算法设计进行评价,增加课堂教学的趣味性,提高学生的参与意识。

五、教学效果

1.课堂和实验课教学效果

通过教学实践的改革,在课堂教学过程中,学生积极思考和回答问题,学习兴趣得到了进一步提高,并且能够主动查阅参考书目,提出想法和问题。在实验课上,大部分学生能够独立完成实验内容,有些善于钻研的学生的实验更为深入,提出了算法或程序改进的思路。

2.实验报告反馈的教学效果

从学生提交的实验报告中可以看出,学生主观能动性得到了充分的提高,完成过程较好。学生在编写程序完成实验的过程中,不仅巩固了课堂和教材上的教学内容,还自发引入一些创造性的设计和实现,使得教学效果更加明显。

总而言之,学生在“数据结构”课程的学习过程中,发挥了学习的主观能动性,提高了对问题的分析能力和解决能力。

参考文献:

[1]汪沁,奚李峰,等.数据结构[M].北京:清华大学出版社,2009.

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

[3]吴疆,陈瑛,等.现代教育技术教程[M].北京:人民邮电出版社,

2005.

数据结构实验报告范文第5篇

摘要:本文结合信息管理与信息系统专业“数据结构”课程的教学实践,提出了提高专业实验教学水平的一些方法与思考。

关键词:信息管理与信息系统专业;数据结构;实验教学

中图分类号:G642

文献标识码:B

1引言

信息管理与信息系统专业是信息科学与管理科学相融合而形成的新兴专业,其教学内容、课程教学方法和人才培养等方面有待进一步探索和完善。从该专业培养目标和课程实践教学目的考虑,“数据结构”实验教学具有重要的意义。本文作者在多年的“数据结构”课程教学工作中发现实验教学环节存在诸多问题,因此积极探索,得到了一些启发并运用于实际教学,希望这些经验对同行有所帮助。

2存在的问题

“数据结构”具有逻辑性强、抽象等特点,因而对于信息管理与信息系统专业的学生具有一定的难度,特别体现在课程实验教学方面。

现行的“数据结构”课程多数采用某种高级语言来描述和实现算法,我院的C语言课程是全院平台课,因此“数据结构”采用了C语言描述。由于总课时较少等原因,学生的C语言基础比较薄弱,特别是对指针、结构体等C语言核心内容的掌握与运用更差,但这些内容恰恰是“数据结构”课程中经常用到的知识点。

同一班级的学生对于“数据结构”实验技能的掌握与学习呈现出两极分化的现象,大约25%的同学表现较为优秀,而60%以上的同学表现较差。通过观察和了解,程序设计基础较好或学习兴趣较浓的同学,通过努力能够完成实验项目,写出合格的实验报告;而基础较差的同学,在学习中容易产生畏难和茫然的情绪,实验时缺乏信心,无从下手,随着课程学习的深入,此种情形会形成恶性循环,导致了该部分同学实验技能无法提高的局面,从而影响了班级课程实验教学的顺利开展。

3改革措施

3.1循序渐进,团队协作

在每一次“数据结构”课程教学初期,授课教师通过了解和课程知识测试,对班级学生的程序设计基础和能力等情况进行了解,据此在全班集中讲授以C语言指针为主要内容的专题知识,并重点讲解函数参数与指针的灵活运用。这样学生在学习线性链表这种基本而重要的存储结构时,就有了相关知识点间的衔接,降低了学习的难度。另外,每次实验项目或任务应该提前一周告诉学生,让他们逐步收集资料、分析问题,为实验课教学做适当准备,以免出现学生在实验教学中不知所措或无所事事的现象。

在实验教学中,特别是实验教学的初期,我们发现学生对程序调试过程中出现的各种问题都要请教老师,然而由于计划学时较少,仅依赖老师个人难以及时为学生圆满解决各种问题。这种情况还是程序设计和调试方面的基础薄弱所导致的,所以我们以此为契机,采取了以下措施。

首先,我们将整个班级分成若干由5~6人的学习小组,每一小组中至少有一名成绩较好的学生。业余时间同学在编写算法、程序设计和调试方面有问题时,可以向该同学咨询,小组也可以集体讨论,这样通过问题的最终解决来加强学生的课程学习能力,逐渐消除这些同学因为基础较差或问题的累积而产生的各种消极情绪和负面影响,及早调动他们的学习积极性,同时也培养了学生的团队合作意识。

其次,在实验教学中,有的同学基础很好,提前完成了实验教学项目,那么这部分同学可以在实验中辅助教师,在有限的时间内为更多的同学及时解决程序调试问题。对于这些从事辅助教学的学生,我们可以从课程教学的角度给出较高的平时成绩以示鼓励,也可以从学校的素质教育考核角度进行适当鼓励,让他们有更多获得各种奖励的机会,调动他们从事这种教学活动的积极性。

3.2精心设计实验项目

目前多数高校都在设法提高实验教学质量,特别强调实验项目的层次化和实验内容的多样化。按照课程内容,信息系统与信息管理专业的“数据结构”课程实验项目一般分别涉及线性表(顺序表、链表)、栈和队列、二叉树、图或网结构和查找等内容。我院信息管理与信息系统专业的学生一般要完成至少6个实验项目。其中实验项目类型可以为基础类型(或验证型)、设计类型和综合类型,实验项目的不同类型使之呈现出层次化特点。比如实验内容均涉及线性表,对于线性表的一般操作(如单链表构建及其插入与删除算法的实现),是一个基础或验证性的实验;对于利用线性表作为数据结构,设计一个学生成绩管理微型系统,则是一个设计型实验项目;而涉及多种数据结构或多项应用的实验项目,则是一个综合实验。所以在课程实验教学大纲中,我们设计了多层次的实验教学项目,通过对相应项目的说明,明确要求哪些项目是必修的,哪些是选修的。这样学生在选择实验项目时,会根据自己的基础和偏好灵活选择。

由于“数据结构”实验所涉及的内容往往具有单调性,学生觉得实验内容与专业实际应用联系不大,容易产生厌倦的学习态度,所以我们在设计实验项目时,结合专业特点,编制了与专业有关的一些实验项目。如利用线性表设计一个简单的学生成绩管理系统程序,利用栈结构实现一个物流装箱问题,根据图结构的最小生成树概念设计一个具有最小耗费的通信网络,或者邮递员的最优投递网络等。结合专业应用实践设计的实验项目会激发学生的学习兴趣。

3.3合理的监督和奖惩机制

在实验教学实践中,我们发现没有合适的监督机制和奖惩办法,学生的实验项目难以顺利完成,从而会影响班级实验教学质量的提高和顺利实施。由于程序设计基础较差或其他原因,许多学生无法完成任务时会抄袭应付,尤其现在动动鼠标就可完成“复制”。因此,我们在校园网内部开发了一个简单的课程实验教学交流信息系统,用来实验项目预告、学生提交完成的实验项目,以及师生交流。学生完成的实验项目应该包括项目的实验报告及其源程序。我们根据实验报告了解某学生实验项目的信息、解决问题的方法和实验项目的完成情况,根据源程序验证结果的正确性。根据评判结果等级(分为A、B、C、D),结果等级为D的实验项目需要立即返回给学生进行修改。根据最终修改结果,若某学生拒不修改或最终有三次以上成绩为D,那么考试资格将被取消;若发现实验报告雷同或有抄袭嫌疑,我们会给出警告信息,并根据情况采取相应惩罚措施。然而检查和监督每一个同学的实验项目需要大量的人力和时间,所以在院系教学单位的支持下,作为研究生教学实践活动的参与形式之一,我们让在读研究生来辅助完成此项监督任务。通过上述机制,实验教学的最后环节得以较为顺利地实施,从而从整体上改善了课程实验教学的质量。

参考文献

[1] 谢阳群等. 信息管理与信息系统专业教育的改革与实践―以安徽大学管理学院为例[J]. 情报杂志,2006,(3):132-135.

数据结构实验报告范文第6篇

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

中图法分类号:G424文献标识码:A文章编号:1009-3044(2008)33-1427-02

On the Practice Teaching of Data Structure in High Vocational College

SHEN Gen-hai

(Jiaxing Nanyang Vocational Technology College, The Electronics Information Department, Jiaxing314003, China)

Abstract: The data structure is one of the most important core courses in computer science and technology. Aimed at the characteristics of data structure, such as strong logic, higher degree abstract etc. The author summarizes experience from the instruction practice and inquiried into some problems which appear in the process of practice teaching ,also tried some. new experiment teaching methods such as “by different levels”.

Key words: Data structure; Practice teaching; Teaching Method; Reform in teaching

在计算机类专业中,数据结构是一门非常重要的专业基础课,它主要研究如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。课程特点是概念性强、抽象度高、算法复杂、不易被学生所掌握,尤其是实验实践部分,学生掌握起来更是困难。因此如何进行实验教学,提高学生的实际编程能力,已成为实验教学改革的重要问题。

1 实验教学中存在的问题

1.1 实验前导课程基础不牢

学生在做实验时,不了解实验的原因和目的且其前导课程基础不牢。比如对前导课程计算机文化基础、C语言程序设计等掌握不好,影响了他们学习这门课的积极性和效果。

1.2 实验水平参次不齐

从实验过程、实验结果来看,实验水平参次不齐且差距较大,多数学生对所学过的理论知识把握不准,动手编程能力较弱,不能把一个较简单算法写成一个完整的程序。

1.3 没有良好的实验习惯

对课程中部分知识点和算法难于理解,没有考虑知识点之间、算法之间的联系,做实验时也是听之任之,实验报告书写也不规范,不能体现实验流程。大多数学生缺乏对实验的分析、比较和总结,创新能力更是不够。

2 实验教学过程中的一些尝试和研究

传统的实验教学特点有两个:一是注入式,即在教学工作中,只顾单纯地灌输知识,不管课程特点和授课对象的特点;二是教条式,即在各个实验设计中,不注重培养锻炼学生动手的能力,往往按照已有的实验步骤让学生按部就班地完成即可。在这种教学方法下,学生的学习主动性和创造性受到严重的压抑,处于被动地接受知识的地位。因此,实验教学改革势在必行。

2.1 严格规范实验流程

根据以往的教学经验,学生能根据实验要求基本完成实验任务,但最后提交上来的实验报告无法体现其实验工作,更不能反映出实验中遇到的问题及解决问题的步骤、方法。主要原因是学生没有按照软件工程的要求来分析设计实验,没有养成良好的程序设计习惯,拿到实验题目后直接上机进行编程调试。针对这种情况,我采用实例教学,即第一次实验课用一个具体的实验,从分析、设计到实现、测试等过程进行,指导学生如何分析问题和解决问题。指导学生如何按设计步骤:实验题目、实验目的要求、需求分析、概要设计、详细设计、调试分析和实验结果以及实验中出现的问题和解决方案(此为重点),并写出规范的实验报告。

2.2 “动态分层实验教学”

高职的学生(四批的学生),基础较差,水平参次不齐,进入学校之后学习主动性也是因人而异。如果所有的学生练习同样的实验题目,就只能以中等程度的学生来设计实验难度系数,这样就直接导致了程度好的学生“吃不饱”,程度差的学生跟不上。本人所采用的方式是“动态分层实验教学”的方法。即先通过两个实验(实验由容易题、较难题、难题构成),根据实验结果,把学生动态得分成三个层次:基础层、提高层、竞赛层,每次的实验题也设计成三个层次,规定每个学生必须完成自己所在层次的题目,其它题目可以选做(鼓励选做),所谓动态是指:不同层次的学生会根据后续实验的情况作动态调整。这种方式的优点是:一是可以对学生进行因材施教;二是可以调动学生的积极性,使自己能动态的进入更高的实验层次。

2.3 成立实验兴趣小组

兴趣小组有学生自由报名,教师宏观调控,每个小组有3~5个人组成,好中差相结合,教师给每个小组设计一个比较难的综合性任务,一般要求小组在2/3个学期完成且要求分工明确,学生在整个过程中,可以相互讨论、交流,充分发挥学习积极性,发挥团队精神,共同进步,实践证明这既可以提高学生上机编程能力也可以逐步培养学生团体合作和创新能力,为以后步入社会工作打下良好的基础。

2.4 在实验中引入计算机辅助教学

多媒体教学具有生动、直观、信息量大等特点。由于数据结构知识比较抽象,每过一定的时间本人就把学生在实验中出现的有代表性的问题利用多媒体手段统一讲解,采用恰当的图和动画演示的方法把算法的动态执行过程演示出来,可以让学生清楚地看到算法的执行过程,从而加深对实验内容的理解。

3 实验样本分析

为了确定数据结构课程的实验教学问题不是模糊的认识,在具体的实验教学研究过程中,本人以嘉兴南洋职业技术学院计算机应用技术专业2005―2006级学生为教学样本,并进行分析、总结。

实施对象:嘉兴南洋职业技术学院计算机应用技术专业2005―2006级的学生。

实施目的:判断新的实验教学方案是否有效。

实施时间:2006年9月至2007年12月。

样本条件分析:见表1。

最终实验成绩结果分析:见表2。

表1 样本条件

表2 2003―2006级数据结构课程实验成绩分数比例

依据表1和表2数据分析我们可以得到,在样本其它条件基本一致的条件下,有无采用新的实验教学方式,产生了不用的实验成绩。2005和2006级采用新的实验教学方式后,学生成绩在90-100分、80-90分、70-80分的比例上都有所提高,在60-70分比例上有所减少,在60分以下比例上基本不变。从这些数据整体来看,采用新的实验教学方式后实验成绩要明显好一些。

4 结束语

数据结构这门课比较难学,在实验教学过程中需要不断地改革探索,不断地总结,形成一个集实验教学内容、教学方法、教学手段等完整的实验教学体系,提高学生动手编程解决问题的能力,本文提出的实验改革方式对提高原本中等或中等偏下学生实验能力有所帮助,对本身学习能力较好的学生也有一定的作用,但是从样本结果情况来看,对程度很差的学生帮助不大。

参考文献:

[1] 张乃孝,裘宗燕.数据结构――C++与面向对象的途径[M].北京:高等教育出版社,2006:131-135.

[2] 江静.《数据结构》课程综合性实验的实践[J].实验科学与技术,2006(6):64-66.

[3] 戴敏,于长云,董玉涛.高效学习数据结构[J].计算机教育,2006(2):59-60.

数据结构实验报告范文第7篇

关键词:高职;数据结构;实验教学

中图分类号:G424 文献标识码:A 文章编号:1006-4117(2012)01-0275-01

数据结构课程是计算机专业的重要基础课,主要介绍和研究数据在计算机中的存储和处理方法[1],其实验课程通过上机实践,利用C/C++等高级程序设计语言对理论知识进行验证,达到理解和巩固理论知识的目的,是整个课程学习中的一个重要环节。

一、高职数据结构实验课程存在的问题

在传统的数据结构实验中,有指定的实验课教材,记录了理论课中所有算法的实现程序,由教师向学生详细讲解算法的理解、实现过程和运行结果,学生只要按照教材上机编辑并调试通过,验证一下结果就可以了。这样的教学模式使学生毫无学习兴趣,也不用动脑思考,并且由于高职学生大多学习基础较差,对于程序设计语言中的数组、结构体和指针等知识掌握不够,根本不能理解大量的复杂算法,只是机械的录入,使上机调试变得十分困难,这就失去了开设该课程的意义。为了能够更好的发挥实验课程的作用,使学生提高程序设计能力,理解数据结构研究数据处理方法的意义并掌握基本的算法设计,我针对高职学生特点,在实验课程的教学内容、教学方法及考核方式进行了初步探索。

二、实验教学改革的具体措施

为了能够更好的发挥实验课程的作用,使学生提高程序设计能力,理解数据结构研究数据处理方法的意义并掌握基本的算法设计,我针对高职学生特点,在实验课程的教学内容、教学方法及考核方式进行了初步探索。

(一)夯实基础,弥补先行课知识的不足

由于程序设计语言课程课时少、内容多,学生接受能力差等原因,导致其教学内容往往停留在初级阶段,关于数组、指针、循环、结构体等内容,学生没有成分的时间去理解和吸收,但这些内容是数据结构实验课必不可少的基础内容,所以,在课程的初期,教师要带领学生弥补先行课知识掌握的不足,深入解析指针和循环的有关内容,设计一些简单的应用数组及结构体编程的任务,让学生上机独立完成。这样不仅可以夯实学习数据结构实验课程的基础,达到良好的知识迁移效果,而且可以使学生在完成任务的同时,体会成功,建立学习的兴趣和信心。

(二)逐步添加,合理安排教学内容

在数据结构这门课程中,根据数据的不同逻辑结构,又结合数据的存储结构,总结出数据处理的许多具体算法,在实验教学中逐一实现所有算法是不必要的也是不实际的。所以教师必须对该课程的知识点进行梳理和规划,合理安排教学内容,使实验中的知识点随着教学进度逐渐增加。

考虑到高职学生的接受能力,实验的内容不宜选择较复杂的实验项目,只要能够使学生通过典型算法的实现,循序渐进地理解算法的实现方法及后续改进策略,掌握数据结构的本质,提高程序设计能力就可以了。

如C++程序设计语言中的数组与数据结构中顺序存储的线性表是不同的,但学生在学习之初并不能透彻理解二者的差异。教师可以先设置一个对10个整数进行升序排序的算法,学生只要在main()函数中定义int a[11]及循环变量 int i,j,应用循环嵌套就可以实现了,然后教师再增加任务,要求在数组中连续插入若干不同数据,使数组仍然保持升序,并输出每次数据插入前后数组的状态。如果学生仍然应用数组,在原程序基础上修改就会十分繁琐,并且输入输出语句和插入程序代码不断重复出现。这时教师再引导学生通过三方面修改程序,首先应用线性表的顺序存储,将数据定义修改为

const int m=50; //设不超过50个数据

struct L{

int list[m];

int n; //n为线性表当前长度

};

其次,针对输入输出及插入代码的不断重复出现,定义插入、输入和输出算法,并添加函数声明。最后完成主函数的设计。

通过这样逐渐添加任务要求,可以从完成任务的过程中体会到学习数据结构的意义,掌握算法的具体实现方法,在知识的逐渐积累和更新中,增强学习信心,提高编程能力和理论应用于实践的能力。

1、组建学习小组,促进学习互助与提高。考虑到高职学生学习水平的差异性及数据结构实验课程的难度,教师无法在课堂上对程序的编辑、调试及改进做逐一的指导,这样将造成一部分学生跟不上教学进度,当无法完成任务时就以抄写实验报告等方式蒙骗过关,久而久之丧失了学习的兴趣和信心。对此可以在教学中组建5人左右的学习小组,将程序设计水平较好的学生与学习困难的学生组织到一起,共同完成各项学习任务,促进学习互助和自主探究,达到实践水平的共同提高。

2、改变考核方式,保证学习效果。合理的考核方式是数据结构实验课程取得良好效果的保证,为了切实达到促进学习的目的,要彻底改变过去单纯依赖实验报告定成绩的现象,针对课前准备、上机实践和实验效果三个方面制定考核标准。要求学生在上机实验前做好相关知识的预习,完成算法的初步设计,拟定实验数据,在上机实践过程中要求学生边实践边记录所遇到的问题及解决方法,记录算法的实现和运行结果,实现算法的改进并记录未解决的问题形成新的记录报告;对实验过程及结果及时作出总结,如怎样设置输入输出能改进程序的可读性,采用哪种存储结果使算法更加简单灵活,怎样定义算法更利于修改等等。总之,教师要针对实验的各个环节提出具体要求和考核标准,定性定量地从各个方面评定实验成绩,调动学生的积极性和自主性,保证实验教学的学习效果。

作者单位:营口职业技术学院计算机系

作者简介:郭洪荣(1974―),女,汉族,辽宁营口人,营口职业技术学院计算机系,讲师,计算机专业学士学位,教育学原理硕士学位。

参考文献:

[1]徐卓群.数据结构[M].北京:中央广播电视大学出版社,2001.

[2]尹孟嘉.基于增量型的数据结构实验教学改革[J].计算机教育,2010,11.

数据结构实验报告范文第8篇

关键词:数据结构;实践;多维;教材

“数据结构”是在20世纪60年代中期才设立的一门课程。它主要讨论在软件开发过程中的分析、设计与实现中的若干基本问题[1]:1)问题的建模。如何把客观世界的问题映射到计算机世界中?如何在计算机世界中表述和存储客观世界中的对象?它是算法处理的对象。2)问题的求解方法,即算法。3)算法的评价。评价算法的优劣。算法是数据结构的主要研究内容。算法是计算机科学的核心,也是一种一般性的智能工具。“学习算法有助于人们对其他学科的理解,不管是化学、控制、甚至音乐,即使非计算机专业的学生,学习算法的理由也是非常充分的[2]。”因此,数据结构是高级程序设计、编译原理、操作系统、数据库、人工智能等课程的基础,它不仅被作为计算机相关专业(如计算机科学与技术、软件工程、网络工程等)的一门核心的专业基础课;也是工科、理科、医科等学科中许多专业的必修或选修专业基础课。

“数据结构”课程具有抽象性和实践性。客观世界中的问题在计算机中的表示与算法描述是抽象的,但算法的实现是实践的,惟有通过实践才能真正掌握课程内容,达到学习目标。通常在有限的课时内,教师主要讲授的是抽象部分,此种情况下如果没有相应的实践,课程的学习将如同在沙漠建房,难以落成。

因此,如何构建能够有效的实践环节,一直是教师关注的问题。

笔者结合“数据结构”课程建设,就多维一体的“数据结构”实践教学系统的构建与实现进行总结,以期为“数据结构”实践教学提供一定的参考和借鉴。

1 “数据结构”实践活动层次

实践是一切认识活动和知识的前提[3],学生的认识主要是在实践活动中发展起来的[4]。笔者根据由浅入深、循序渐进和创新能力获得的规律,将课程实践活动按层次由低到高分为验证型实践、设计型实践、综合型实践和创新型实践。

1.1验证型实践

荀子说:“闻之,不若见之;见之,不若知之;知之,不若行之……行之,明也。”验证型实践指通过运行已实现的算法对书本知识及算法进行对错性的验证。验证理论的实践活动使学生充分领悟知识的内在意蕴,加深学生对基础知识的理解,掌握基本实验技能,为后续较高层次的实践活动奠定基础。验证型实践活动从内容上来讲,它依附于课堂教学,是课堂教学的延伸和补充。

1.2设计型实践

设计型实践指用所学的一个或若干个知识点去解决特定的问题。通过对问题的求解,了解知识的应用场景,获取知识的初步应用能力。智慧来源于知识,但知识不会自然而然地达成智慧,需要通过实践活动对知识“内化”和“活化”,起关键作用的是人的实践经验[5]。这里的知识是局部的,是一个个知识点。大量的设计练习是解决较复杂的问题的基础。

1.3综合型实践

综合型实践是指将所学的数据结构思想与方法,应用到软件开发的分析、设计与实现等方面。综合型实践要用到课程的许多知识点。能力与智慧的获得,绝不是简单的累积,此处,1+1≠2。学习者可能掌握各个知识点及其各自的应用,但不等于具备解决复杂问题的能力,盲人摸象的典故正说明这一点。通过综合实践,引导学生从全局的观点,认识数据结构课程的精髓和本质;指导学生如何综合地将所学的知识应用于软件开发过程中。

1.4创新型实践

创新型实践是指能够激发和培养学生创新能力的实践活动。培养具有创新精神和实践能力的有较高综合素质的人才是当代教育的目标,也是学校教学的出发点和归宿。但“人的发展以人在不同经验方式中发展为前提[5]”,创新型实践旨在通过实践活动培养学生的创新能力,由旧知识建构新知识,达到学习的目标。

2数据结构实践活动的实施

实践活动的参与者有教师和学生两方。学生是实践的主体,旨在运用所学的知识和理论发现问题、分析问题、尝试解决问题,目的是提高解决问题的能力。教师是引导者,为学生提供必要的实践环境和条件,当学生遇到困难时,给予指导;对学生的实践成果给予评定,使他们不断进取。

2.1验证型实践

对验证型实践的处理方式有两种。一种是作为课程实验内容。此法的不妥之处在于:1)在有限的实验课时内,只能完成验证工作的很少一部分;2)如果把验证作为课程实验的主要内容,那高一层次的设计型实验就没有时间了。另一种方式是完全由学生自我解决。持该观点者认为,算法的实现是学生在学过高级程序设计语言后应该能解决的问题,不是本课程应该关注的。其实,算法描述和算法实现之间是有距离的,这如同一台机器的构造和机器生产工艺流程之间的区别一样,能够跨越这个距离的学生很少,即使有的学生具备这个能力,但因时间、精力所限,也不可能实现教材中的所有算法。

一个人接受科学教育的最大收获是那些能够受用一生的智能工具。数据结构正属于这类教育的内容。通过学习算法,学生一方面开扩眼界,培养正确的思维方法,更重要的是数据结构介绍的典型数据模型和实现,是一种可以用于解决复杂问题的工具。如果学习者的学习只是纸上谈兵,就不可能学会工具的使用,就无法用工具去解决问题呢?所以,无论从学习者的认知所需还是从课程的学习目的来看,以适当的方式帮助学生掌握典型的数据模型的实现是必须的。因此,上述两种方法均不可取。我们的做法是由教师实现这些数据模型并把源程序提供给学生,学生利用课余时间自行进行验证实验,具体任务如下。

1) 教师。①给出教材中相应算法实现后的源程序;②给出程序设计说明,方便学生理解程序的结构与功能;③给出思考题,引导学生阅读源程序和理解源程序;④给出操作说明和测试用例,引导学生进行正确性地验证和更全面地理解算法。

2) 学生。①理解相关背景知识;②根据程序设计说明和思考题阅读源程序;③根据操作说明运行源程序的测试用例,并进行结果分析;④回答思考题。

为了督促学生进行验证实践,要求学生将任务③、④的工作记录作为作业上交;教师利用课堂提问,抽检和讨论部分源程序的运行结论。

2.2设计型实践

设计型实践活动分为两个部分,一是课程实验,二是作业。

2.2.1课程实验

鉴于实践对数据结构学习的重要作用,一般会拿出课时的1/5~1/4用于课程实验。针对课程实验,教师与学生的工作分别如下。

1) 教师。①给出问题描述,提出问题解决的基本要求,如采用的知识点、输入输出要求、算法复杂度等;②对问题进行初步分析,必要时给出逻辑设计和存储设计的建议;③酌情给出算法描述;④给出若干测试用例,引导学生进行功能测试,领会健壮的程序设计;⑤给出实验报告撰写要求,包含问题描述、数据结构设计、功能划分和算法设计、界面设计、运行与测试、总结与心得、源程序等。

2) 学生。①分析问题;②定义数据结构;③给出算法描述;④编程实现算法;⑤用测试用例测试程序,记录运行结果;⑥写出符合要求的实验报告。

教师通过检查源程序运行情况和批阅实验报告,了解和评定学生的实验情况。

2.2.2作业

作业题分为两类:基本概念题和算法设计题。部分算法设计题要求学生编程实现,以弥补课堂设计实验的不足。对于这部分实践活动,教师布置题目,通过批改作业,检查学生的完成情况。学生编程实现题目,将设计思路、算法和运行结果形成作业上交。

2.3课程设计

课程设计对应于综合实践活动。对于计算机相关专业的学生来说,在“数据结构”课程学习结束后,通过前期的验证和设计实践,具备一定的综合使用课程知识解决问题的能力和规范的程序设计能力。所以,一般在课程结束后,单独有1~2周的“数据结构”课程设计,教师与学生的工作分别如下。

1) 教师。①制定课程设计实施计划书。给出课程设计的目的和要求、日程安排、考核方法及分组情况等。②给出问题描述。区别于设计题,这里的问题一般较复杂,实现的源码,一般均在500行以上,甚至千余行。③提出设计要求,引导学生进行概要分析。可分为基本要求和较高要求,与不同层次的学生的能力相对应。④设计提示。综合设计的问题解决,通常包含多个算法,对其别难的、学生不易想到的要点给出提示。⑤提出课程设计报告的写作要求。包含需求分析、概要设计、详细设计、调试分析、测试分析、总结与体会、使用说明及源程序等。

2) 学生。①根据实施计划书的进度要求、问题描述和设计要求进行“概要设计详细设计调试测试”的问题求解;②接受系统检查;③撰写符合要求的课程设计报告。

教师通过作品检查和批阅课程设计报告给出学生的课程设计成绩。教师通常在课程设计的最后一天,通过运行系统和提问,检查学生的系统设计与完成情况。

2.4科技活动

学生的创新能力来自科研实践。科研实践要因人而异,针对学有余力的学生,通过下列三种途径提供科研实践活动。

2.4.1项目开发

通过项目锻炼,培养学生进行科学研究的工作方法和相互协作的精神。

1) 辅研。教师积极向学生介绍自己的研究方向和课题,吸纳有特长和兴趣的学生参加自己的项目研究,根据其知识结构,给学生布置力所能及的任务,逐步深入。

2) 项目申报。积极鼓励学生参与各级项目的申报。学生作为申报人并获得资金的资助,能有效增加其完成项目的责任感与投入其中的热情。

2.4.2社会实践

“没有经验”被企业视为大学毕业生的最大弱项。参加社会实践,是学生获取经验的最好途径。学习数据结构的学生基本上是大二和大三的,这样,他们有1~2个暑假,可以进行社会实践。教师向学生宣传社会实践的好处,介绍社会实践场所。学生在寒暑假或平时课余时间,到某个单位短期工作或兼职工作,参与单位具体项目的工发。

2.4.3竞赛

竞赛是学生用理论知识解决实际问题的有效载体,是检验、锻炼、提高和展示学生科技创新能力的很好平台。竞赛所带来的荣誉感,能够有效激励学生的创新热情。常见的竞赛有:校级的“希盟杯”电脑技能设计大赛、网页设计大赛等;市级的“天翼杯”电脑技能大赛、科技创新大赛等;省级的“富士通”杯网页网站设计大赛、大学生软件设计大赛等;部级的数学建模大赛、“挑战杯”全国大学生科技作品竞赛、软件人才设计大赛等。

教师及时地把各种竞赛信息通报给学生并组织学生申报;组织好竞赛作品的创作与指导工作;对参赛者和获奖者给予一定的奖励,并对参赛作品进行展示和宣传,扩大活动效果,以吸引更多的学生参与竞赛活动。

3 “数据结构”实践平台

为了使数据结构的实践活动能够顺利进行,我们编写了《数据结构实践教程》[6],创建了“数据结构实践教学网站”作为实践教学实施平台。

3.1 《数据结构实践教程》教材建设

本书含盖了1―3层的实践活动的素材和实施指导。全书分为三篇:验证篇、设计篇和综合篇。

1) 验证篇。详述《数据结构》[1]教材中相关算法的实现。本篇首章介绍算法到程序转换的基本步骤及需要注意的问题;给出了进行验证性实验的步骤;同时介绍了实验环境。其余各章按教材教学内容进行编排。每个应用程序的叙述采用一致的结构,由如下四个部分组成:①程序设计。给出数据的类定义和程序结构图。②源程序。方便学习者研习程序设计思路、程序结构、改进程序以及更好地操作程序。③程序运行。给出程序操作方法介绍及程序运行界面。④思考题。引导学习者更深入地理解程序、程序所实现的算法、程序所采用的存储结构以及可改进之处。

2) 设计篇。针对一定的知识点给出不同难易程度的设计题,作为课程实验和课后程序设计素材。本篇介绍了设计型实验的实验步骤、设计内容;提供了实验报告格式,并给出一个实验报告案例。其余各章按教材教学内容进行编排,每个设计题由以下五个部分组成:①问题描述。给出问题背景,提出需要解决的问题。②基本要求。给出算法实现时对数据逻辑结构、存储结构、功能设计、数据输入或输出上的要求。③实现提示。对算法设计给出必要的提示或伪码描述。④测试与运行。给出测试案例。⑤思考题。提出相关问题或更高设计要求。

3) 综合篇。针对一个以上的知识点给出综合设计题,可以作为课程设计素材。全篇首章给出有关综合设计项目涵盖的内容、综合设计报告格式以及综合设计成绩评定准则等。其余各章按设计任务编排,每个项目任务的叙述由以下三个部分组成:①问题描述。给出问题背景,提出需要解决的问题。②设计要求。提出项目设计与实现时功能上需求,分为基本要求和较高要求。③实现提示。对数据组成形式、相关算法设计上给出必要的提示。

该教材充分考虑了学习者进行1―3层次的实践活动的可能需求。验证程序使用菜单界面,结构统一,操作简单;设计篇和综合篇内容丰富,提供了各种难易程度、且有一定实用性或趣味性的题目,可以为学习者提供全程指导。

3.2数据结构实践教学网站

该网站分为用户管理、学生主页和老师主页三个部分,其功能如图1所示。

图1 “数据结构实践教学平台”系统功能

3.2.1学生主页

以学生身份登录系统后进入学生主页,从中查看实践教学内容、联系教师,上传作业、在线交流等。页面中包括课程实验、课程实训、课程设计、作品展示等。

1) 课程实验:提供实验教学大纲、实验指导书及实验上传功能。

2) 作品展示:提供经典算法设计案例、优秀学生作品展示、典型数据结构及其基本操作的算法动画演示等。

3) 课程实训:提供习题、试题、典型题解、最新题库等。

4) 课程设计:提供课程设计指导书、课程设计作品上传等。

3.2.2教师界面

以教师身份登录系统后进入教师主页。教师通过该页面,公告,进行实验、实训(即课外设计)、课程设计、作品、学生、教师等相关信息的管理。

1) 公告管理:实施公告的编辑、及公告的数据库管理等。

2) 课程实验:实验指导相关内容;查看学生上传的课程实验源程序与报告。

3) 课程实训:实训设计问题及对问题库的数据库管理。

4) 课程设计:课设指导相关材料;对学生上传作业进行管理。

数据结构实践教学系统的开发为学生和教师带来了很大的方便,通过网络突破时间和空间的限制,方便教师与学生之间、学生与学生之间的专题交流,为学生提供丰富的素材。

4结语

实践教学是“数据结构”教学中不可缺少的环节,对课程学习成效起着决定性的作用。笔者根据课程特点和创新人才培养目标,提出按验证、设计、综合和创新四个层次的实践活动,对教材和网站的建设进行了积极探索,构建了一个多维一体的数据结构实践教学体系。经过多年的实践,已经取得了明显的成效,考研率逐年提高;学生在各级比赛中获奖越来越多,等级也逐步提高。

参考文献:

[1] 管致锦,徐慧,陈德裕. 数据结构[M]. 北京:清华大学出版社,2010:3.

[2] 王道俊,郭文安. 主体教育论[M]. 北京:人民教育出版社,2005:309-310.

[3] 张英彦. 论实践教学的理论基础[J]. 教育科学,2006,22(4):34-36.

[4] 张英彦. 论高校实践教学目标[J]. 教育研究,2006(5):46-49.

[5] 陈佑清. 论活动与发展之间的相关对应性[J]. 教育研究,2005(2):77-82.

[6] 徐慧. 数据结构实践教程[M]. 北京:清华大学出版社,2010.

Multidimensional Practice Teaching System of Data Structure

XU Hui, GUO Rongxiang, ZHOU Jianmei

(School of Computer Sci. & Tech., Nantong University , Nantong 2260019, China)

Abstract: Practice in teaching of Data Structure is a key to affect learning. In this paper, the practice actives are divided into four level from easy to complication, they are test and verify, design, integration and innovation. The division is corresponded to the aim of the course learning and creative ability of students as a precondition. The implementation method of the practice is discussed from the role of teachers and students respectively and auxiliary textbook and website is introduced. The multidimensional one of Data Structure practice teaching system is constructed based on these ideas and materials.

Key words: Data Structure; practice; multi-dimension; textbook

数据结构实验报告范文第9篇

关键词:数据结构;实验;知识层;应用层;综合层

中图分类号:G642文献标识码:B

文章编号:1672-5913(2007)12-0003-03

“数据结构”是设计和开发系统软件和应用程序的基础,是一门理论性和实践性均比较强的课程,课程概念多、技巧性强。非计算机专业开设的“数据结构”课和计算机专业开设的“数据结构”课相比,重要的差别之一就是授课时间和实验时间相对较少。为了使非计算机专业学员在课时减少的情况下,仍能系统地掌握“数据结构”的基本内容,在教学中合理设计实验就显得十分重要和必要。

本文通过对非计算机专业“数据结构”课程内容的研究和对学员状况的分析,对非计算机专业“数据结构”的实验设计做了一些有益的探索和实践。

1实验课设计的重要性

在从事“数据结构”的教学中我们发现,学员们普遍感到理解授课内容并不困难,完成习题却困难重重,尤其是上机实验题,常常感到无从下手。对于学员来说,如果不能较好地解决上机实验问题,就有可能在学完这门课后,不知道自己到底学了些什么,更不知道如何应用。因此,如何设计实验,如何引导学员循序渐进地学习和实验,使学员在较短的时间内掌握课程内容,是十分重要的。

2实验设计的思路和实现

2.1实验设计的基本思路

教学过程中我们发现,学员的情况千差万别,不同学员的学习主动性和学习能力各不相同,如果用同样的尺度要求学员,则往往起不到良好的教学效果。为了达到因材施教的目的,在进行“数据结构”课程实验的设计时,既要重视理论知识的重现,又要尽量联系实际;既要考虑学员对所学知识的理解,又要考虑培养学员解决实际问题的能力;既要考虑学员总体的基础,又要考虑学员个体的差异;既要考虑知识性和应用性,又要考虑趣味性。因此,我们采用层次化设计思想,把实验自下而上分为知识层、应用层和综合层三个层次。实验的整体结构设计如下(见图1):

知识层注重对知识的理解和掌握,应用层重点在于巩固与应用,综合层则关注综合与创新。知识层为应用层和综合层的基础,综合层为知识层和应用层的提高和深化。

对基础较弱的同学给出一个最低要求,即独立完成知识层实验;对大部分同学要求其能完成教学基本要求,即独立完成应用层实验;对极少数思维特别活跃的同学提出更高的要求,进一步激发他们挑战自我的意识,建议他们在完成应用层实验的基础上,完成综合层实验。同时,要求基础较弱的学员从知识层次做起,逐步提升自己,最终达到教学基本要求。

2.2知识层实验设计

知识层实验以理解和掌握基本数据结构的概念及其基本操作为目的,内容为“数据结构”最主要和最重要的知识点,包括顺序表、链表、栈、队列、串、二叉树、图、查找、排序等内容。在知识层中,为每个知识点设计一个实验,要求学员在各章节内容结束后,完成相应的实验。知识层实验与课堂知识的讲授相辅相成,是强化学员理解和掌握知识的一种训练手段。从知识点出发设计的实验以学员掌握理论知识为主,能够巩固和加深学员对知识点的理解和应用。知识层实验相对比较简单,与授课内容联系直接,学员容易完成。

例如在讲授了顺序表后,我们安排了一个关于顺序表的实验,它的目的是巩固和加深学员对顺序表的存储以及插入、修改、删除等算法的理解和实现。

2.3应用层实验设计

应用层实验以巩固和应用数据结构基本知识为目的,是实验整体结构的中间层,起着承上启下的作用。应用层实验强调理论与实践的结合,让学员体会到“数据结构”不是抽象的理论,而是一门与实践紧密联系、非常有趣味的课程,从而激发学员的学习兴趣。

应用层实验以社会生活中具体问题为背景,由学员独立分析和选择具体的数据结构并设计相应的算法来解决问题,主要考虑培养学员解决实际问题的能力,同时考虑实验的趣味性。

如:约瑟夫(Joseph)问题是一个实际问题,也是一个一题多解的问题;既可以利用循环队列求解,也可以利用循环链表求解,还可以利用静态链表求解。通过对同一问题寻找不同的数据结构和算法来求解,开阔学员的思路,培养学员的创造性思维,同时通过比较不同的算法,发现算法的适用范围,培养学员灵活运用多种方法解决实际问题的能力。

2.4综合层实验设计

应用层实验的设计主要考虑单个知识点的应用,综合层实验则考虑多个知识点的应用,知识覆盖面广。

综合层实验以综合和创新为目的,是实验整体结构的最高层,是对数据结构知识的升华,是学习数据结构的真正目的。综合层实验需要学员针对较为复杂的问题,选择合适的数据结构,甚至改造基本的数据结构,并设计相应算法。因此,通过综合层实验,学员才能真正掌握数据结构的精髓,在灵活创新的应用中体会到“数据结构+算法=程序”这一重要思想。

例如,利用表达式计算实验完成扑克牌的24点游戏。24点游戏中,表达式的录入、合法性判断与计算以及运算符优先级的判断等涉及字符串的处理、顺序表的存储、栈的应用、图的应用以及HASH表技术等多知识点的应用。

3设计实验的实施

为了配合实验的有效实施,需要加强对上机实验的指导和管理。

3.1实验准备

麻雀虽小,五脏俱全,即便是一个小小的实验,也应要求学员按照软件工程的思想进行实验准备。良好的开端是成功的一半,第一次实验前,给学员简单介绍软件工程的思想并按照软件工程的思想简短分析第一次实验,为后续实验打下了坚实的基础。

3.2实验过程

实验中做好及时辅导,指导学员尽量利用DEBUG的各种功能,提高调试效率。验收时,要求每个学员首先介绍设计思路,再对照源程序讲解,最后运行程序,得出结果,以检查学员对知识的掌握程度,同时避免了抄袭现象的发生。

3.3实验报告

实验报告除须包括需求分析、总体设计、界面设计、详细设计和测试用例等内容外,还须包括调试过程中遇到的问题、解决问题的方法以及经验体会,并附上源程序代码。

这样的过程虽然繁琐,学员一开始不太习惯,却能使学员受益匪浅。例如,有的学员在体会中谈到,第一次实验时,设计人机交互界面花费了很多时间,但第二次实验时,很快就完成了人机交互界面的设计。还有的学员谈到,通过对软件工程思想的了解,意识到改错不如防错,目的不明、思路不清、结构不好的程序可能根本无法调试。

3.4实验讲评

及时总结实验情况,演示较好的设计,展示较好的实验报告,指出优点和不足,提出改进意见,使学员在下一次实验中避免发生类似的不足。

例如,第一次实验时,有的学员不知如何进行测试,程序调试通过后,简单地用几个数据运行一下就满意了;有的学员不知如何设计友善的界面。实验讲评后,学员深受启发,在后续实验中进步很大。

3.5课外指导

在计算机较为普及的今天,很多学员都拥有自己的计算机,他们非常希望多练习,却苦于找不到合适的实验。系统设计实验后,可根据课程进度,安排相应内容的课外实验,让学员根据自己的实际情况,有选择地上机实验,获得更多的实践体会。

4分析与结论

根据上述实验设计,我们在自动化与仿真专业的两期学员中进行了试点,例如,将“利用栈进行表达式计算”的上机实验划分成这样三个层次:知识层的要求是,根据授课内容,建立空栈,进行入栈、出栈和读栈顶元素算法的实现;应用层的要求是,输入一个表达式,可以进行带括号的四则运算;综合层的要求是,利用表达式计算,设计完成24点游戏软件。我们发现,通过这些实验,学员对数据结构知识的学习兴趣、掌握程度以及对问题的综合分析能力与以前相比都有了明显的提高。

参考文献

[1] 徐士良. 计算机软件技术基础[M]. 北京:清华大学出版社, 2002.

[2] 徐士良. 实用数据结构题解[M]. 北京:清华大学出版社, 2001.

数据结构实验报告范文第10篇

关键词:数据结构;实验;编程;教学

中图分类号:TP3-4 文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Teaching Research on Data Structure Experiment

Zhang Xiujian

(Guangzhou University Sontan Collehe,Guangzhou 511370,China)

Abstract:Data structure is a course that emphasizes that exercise of logical thinking and programming ideas.In this paper,we argue that the appropriate experimental program and integration of software engineering can improve student’s innovative ability.

Keyword:Data Structure;Experiment;Programming;Teaching

《数据结构》,是一门重要的理论学科。通过调研看出,该科目在各个院校的实验教学情况存在较大差异。学生学习理解过程缓慢,教师教学也不能得心应手,尤其是实验课,由于部分学生对编程语言掌握不熟练,实验内容抽象,而有较大畏难情绪,甚至不参加实验课。虽然曾经有些教师参考了任务驱动、实例教学等方法,但过于强调某种教法,也会影响教学效果。所以,该课程宜结合课程特点设计教学,切实通过贴近于实际的方法传道授业,结合实验落实教学效果是非常重要的。

一、数据结构课程实验教学中问题所在

(一)实验课时欠缺。有的学校压缩实验时间,让位于理论教学,这对学习效果的落实来说是本末倒置。没有足够的实验课时,学生就无法把理论知识加以系统地整理,进而在实验中消化吸收。

(二)综合性、创新性实验科目欠缺,系统性不强。开设的数据结构的实验课程中,虽然安排了相关知识点的实例,但是对设计的创新性和综合性上有待提高,要加强知识点的综合运作。

(三)没有很好地结合课堂教学和实验教学。作为一门比较抽象的理论教学课,尤其要重视课堂和实验教学相结合。实验中要突出该课程的实践性,教学中要注重理论和实践的结合。现在,不少教师只重视知识的灌输,在实验中任务不明确,要求不明晰,让学生在实验中迷失了对理论的进一步实践的方向。

二、实验教学的改革探索

(一)教学模式的改变。基于数据结构课程理论难于理解的特点,要突出实验课的效果,要注重“课堂.一章的基础性实验.综合实验”相结合的框架。注意从逻辑机构到存储结构,再到实现基本算法,继而具体应用的方法,一以贯之地落实到数据结构教学中去。算法的讲授要先分析算法,再运用编程语言演练算法,最后进一步分析算法。如能采用多媒体演示算法的步骤,会使学生更加清晰地理解。课堂教学始终要把应用的要求作为做种目标,辅以实验训练,加强学生动手编程和自我创新的能力。

(二)基础实验环节要重视。实验环节要让学生进一步理解数据结构的特点,明确相关概念,熟练各种基本算法的实现。枯燥的理论讲述的再多,也不如配合实验让学生一练,所以教学要重视基础实验环节。要想获得扎实的教学效果,教师要提供实验编程语言,Turbo C、Visual C++、Delphi等都可以。根据教材确定实验方案,明确实验目的、内容、要点和必备注意事项,最后安排几个演练题目,比如矩阵的遍历、数据的折半查找等。实验课程要贴近学生的编程水平,不可偏离太过。实验中,学生有章可循,对要点有较强的针对性,实验效率就会大大提高,使学生真正能举一反三。

(三)课程实验要理论应用相结合。实验要注意结合原理和应用,让学生在解决实际问题时学会调用学过的知识点,养成动手练习语言编程的习惯,所以,这个层面的综合实验要求要高于普通的课下练习和基础实验,更贴近于应用。平时虽然侧重练习简单的算法程序,但综合实验课是软件设计的高级训练阶段,融合了问题的分析,系统结构设计、操作界面设计、编程技能技巧,是软件设计的系统工程。教师分阶段拟定数据机构在实践中的各种应用,比如:汉诺塔问题、约涩夫环问题、Huffman Coding方式、班级信息管理系统等,把任务分配给学生,让学生组织课题公关。课题的结题要提供课题表述、基本要求、实验数据、实现结果和关键实现步骤等内容,这能协助学生破题解题,以免形成错误的认识,同时也讲解了程序设计的基本路线,确保实验目标的实现。最后每个课题组都集中展示实验过程接结果。试试证明,这样的实验环节,综合了数据结构知识、编程语言技能和软件工程思想,让学生系统地理解各门课程的联系,融合相关专业课的精髓,锻炼了学生的团队合作互助精神,提高了组织能力和管理水平

三、重点组织好教学实验的各个环节

(一)实验题目的设计。鉴于实验环节教学时间的限制,学生的编程基础和技能较为薄弱,所以,设计和拟定合适的实验题目尤为重要。实践题目应该由易到难循序渐进:

1.常用算法练习。主要讲解各章节知识点,深入贯彻算法理论的理解;2.基础性应用练习。主要让学生针对单一的数据结构解决应用难题,其难度中等;3.综合应用题目练习。要涵盖多个章节的内容,系统性强,难度较高,可以组织学生成立课题组,在课外实验环节共同研讨解决,再集中展示。课题的设计要注意:(1)常用算法的练习要有一定代表性,重点练习各个章节的知识点,难度较小,目的在于理论知识的掌握。课堂教学要和实验环节对应,学生在试验中重点演练课上讲授的内容。(2)基础性应用练习难度要适中,既要带动基础薄弱的学生,又要注意发挥基础好的学生的能动性,可以加以延伸,或是鼓励提供多种解决方法,进行不同思路的性能的比较,让各个层面的学生都能参与实验。(3)综合应用练习题不宜太难,但要引起学生的兴趣,宜于结合实际中的事物或应用系统,让学生宜于接受和理解,这样才能促进学生的积极性。

(二)实验环境的搭建。现在很多学校选取谭浩强教授出版的《数据结构(c语言版)》作为教材,应用C语言进行数据结构的设计语言,用TC搭建实验环境。而在实际教学中,应用C语言讲解数据结构常常对算法设计和实现上较为突出,对数据结构的系统性容易忽视。如果用C++进行数据结构的实验练习,可以注重其整体性和系统性,先定义数据结构的类,再分析其逻辑特性,然后把存储结构延伸到算法的实现中去,能帮助学生构建数据机构的概念。

(三)实验过程的组织与实施。实验中可以采取学生分组、一人负责的机制进行实验。提倡互动探讨和交流,既能让学生接触更多的实验题目,也能提高学生的团队合作精神。

(四)实验结果的检验和考核。对实验结果,教师要辅以必备的检查来进行督导。对于实验报告的书面汇报,要设计题目、要求、步骤、结构、程序代码和改进方法,以及最后的体会等。教师通过实验报告书可以详细了解学生的实验情况,进而发现共性的问题集中解决。

(五)实验问题的总结与弥补。通过实验,教师对于学生学习中存在的问题要进行系统总结和分析加以更正,有些不良的编程习惯,教师要着重强调。

四、结束语

《数据结构》的实验课注重学生动手能力的培养,强调创新思维的养成,通过实验,结合应用案例,能够进一步提高该课程的教学质量,加深学生对知识点的理解,具有积极的现实意义。

参考文献:

[1]程满玲.数据结构课程教学模式改革的探索与研究[J].武汉商业服务学院学报,2007,3

上一篇:光电效应实验报告范文 下一篇:声速的测量实验报告范文