首页 > 文章中心 > 数据结构实验报告

数据结构实验报告

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇数据结构实验报告范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

数据结构实验报告

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

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

作者简介:刘志鹏(1980-),男,江苏南京人,南京邮电大学计算机学院,讲师;段卫华(1977-),男,江苏南京人,南京邮电大学计算机学院,讲师。(江苏 南京 210003)

基金项目:本文系南京邮电大学计算机学院教学改革项目(项目编号:12)的研究成果。

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

“数据结构”课程是计算机科学与信息管理等专业的核心课程之一,它在计算机领域的重要性仅次于编程基础。[1]我国制定的CCC2002体系强调了“数据结构”在计算学科及电子信息学科中的作用与地位。该课程一般以“计算机高级程序设计语言”为先修课程,也是“操作系统”、“数据库”、“编译原理”等专业课程的基础。“数据结构”课程涉及的知识点较多、实践性很强,除了要求学生有严密的逻辑思维外,还需要拥有较好的编程实践基础。目前,大多数高校“数据结构”课程的教学工作均在一学期内完成。学生学习任务较重,往往在学习过程中出现“重理论、轻实践”的现象。许多学生在设计和实现算法方面表现不佳。为了在有限的学时中得到更好的教学效果,使学生在算法设计和实现两个方面的能力都有所提高,笔者从“数据结构”课程实验教学环节入手,尝试了一系列的探索和研究。

一、实践教学目前存在的问题

“数据结构”是一门实践性很强的课程。实践有助于学生更好地理解和应用所学习的理论知识,实践环节是无法替代的,直接影响学生的学习效果。然而,目前的“数据结构”实验教学环节普遍存在如下的一些问题:

1.学生对实践环节重视不够

目前,学生对“数据结构”课程实践环节普遍不够重视。主要原因如下:

第一,主流开发语言和集成开发环境,如C++、Java等,均提供了现成的数据结构程序库。程序员可直接调用程序库中的函数而无需重头编写底层数据结构。部分学生认为,只要掌握程序库的使用方法,便无需实践数据结构的底层实现。然而,无论是C++的STL和Boost程序库,还是Java语言的集合类,均无法满足某些程序苛刻的性能要求。因此对学生而言,仅仅掌握某种特定编程语言的程序库是不够的。

第二,由于“数据结构”课程以笔试作为衡量学生学习成果的主要方式,加上实践环节考查指标并不明确,造成很多同学不重视实践环节,导致实践环节效果不理想。

第三,学生对“数据结构”在操作系统、数据库、编译器中的实际应用知之甚少,部分同学虽然知道“数据结构”课程十分重要,但并不知道数据结构在各个领域的广泛应用。

2.学生程序设计能力薄弱

学生程序设计能力薄弱,是部分高校长期普遍存在的现象。究其原因,主要包括以下两个方面:

首先,部分学生程序设计基础较薄弱。对于C++的某些基本语法并不熟悉,也不了解使用封装、继承和多态型在编写大规模代码过程中带来的好处。大量的对语法知识的要求导致学生难以阅读和编写程序,造成学生思想上的困惑。

其次,对程序设计能力薄弱、基础较差的学生而言,某些优秀教材[2,3]并不适合。学生阅读这些教材时,虽然能够理解算法的含义,但是却无法将伪代码转换成对应编程语言的程序代码。这一方面导致学生无法动手实践,另一方面也进一步削弱了学生的编程能力。

3.实践过程中无法得到及时的反馈

许多学生在“数据结构”实践课中采用先编写、后调试的方法,这种编写代码的方式对代码量较少、代码逻辑较简单的程序是有效的。但对于代码量较多、代码逻辑复杂的“数据结构”程序则不可取。由于拼写和逻辑错误,导致最终程序错误较多,难以调试。由于在代码编写过程中无法得到及时的反馈,导致学生丧失了进一步学习的兴趣。

此外,编写代码、正确执行后,许多同学不及时总结经验教训,反复犯相同错误。对待实验报告撰写工作态度不端正。教师没有及时将实验报告成绩和其中存在的问题及时反馈给学生,部分学生不了解实验报告和实验的评分细则,对实践环节最终成绩不满,也反过来削弱了学生学习该门课程的兴趣。

二、实践环节的教学改革

针对教学中存在的以上情况,笔者主要从以下几个方面进行实践环节的探索和改革:

1.引导学生重视实践环节

第一,加重实践环节占用总评成绩的比例,从原先的10%-15%增加到20%。改变传统模式下主要依靠平时作业、课堂表现和期末考试成绩的评价模式。增强实践环节比重,旨在督促学生参与实践、编写程序和撰写报告。

第二,在课堂教学中,提纲挈领地讲解C++、Java语言程序库的不足之处,使学生明确具备编写数据结构代码能力的重要性。

第三,针对多种数据结构,讲解其在操作系统、[4]数据库[5]和编译器中的实际应用。开源软件为“数据结构”教学提供了大量的实际案例。通过介绍数据结构的实际应用,提升学生的学习兴趣,提高学生对实践环节的重视程度和兴趣。

最后,尽早明确实验任务和目标。让学生在教学过程和实践环节中明确认识到,只有按部就班,才可以完成实验任务。在实践环节中,不能随着学生的完成情况无限制地增加题目的要求和难度,而应做到因材施教,因人而异。

2.提升学生程序设计能力

教材是学生入门和提高的主要材料。笔者选用人民邮电出版社陈慧南编著的《数据结构:使用C++语言描述(第2版)》作为“数据结构”课程的教材。该教材2007年入选普通高等教育“十一五”国家级规划教材,其中对每一种主要的数据结构均给出了C++代码实现。与传统经典教材[2,3]相比,省略了学生将伪代码转换为可执行代码的中间过程。学生在实现基本数据结构时可直接参考教材程序完成。该教材列出了“数据结构”中使用的C++知识点,并指导学生在课后自行开展有针对性的复习。通过边复习、边学习的方式,部分同学能够克服程序设计能力不足的缺陷,建立理解和实践“数据结构”课程的信心。

针对许多学生仅能理解C++代码片段,无法将这些代码片段合成完整的程序问题,笔者通过课堂教学和实践环节两个方面加以弥补。在课堂教学中,教师至少编写一个完整的数据结构实现。通过演示,使学生了解编写代码的具体动态流程和技巧。实践环节中,采用循序渐进的代码编写方式,即课堂上先给出对应算法完整程序的框架,并演示程序得到的最终结果,让学生去填写框架中的函数内容,接下来要求学生独立完成一些函数模块,具体操作方法与文献[6]中的第一项研究方法相同。实践表明,采用结对编程、独立完成实验报告的方式与独自完成实践环节的效果相比较,实践环节学生平均成绩高5~7分。

3.及时反馈实践结果

鼓励学生在编写代码前,首先编写测试用例。一方面有助于学生了解代码中的边界条件,考虑代码实现中的各种特殊情况。另一方面也有助于学生在编写代码的过程中及时获得反馈。避免传统编写代码方式所导致的程序无法正常运行的情况,增强学生的信心。

第二,指导学生编写代码的正确次序。例如,在编写单链表类时,先实现构造函数和析构函数,再实现插入函数和打印函数。这样便可先检测插入函数是否正常工作,在此基础上,再完成删除函数等其他功能函数。这种迭代开发、单元测试,将错误局部化的思想对于培养学生正确的程序设计观念十分重要。指导学生重视代码重构的工作并鼓励学生重构代码,通过介绍编码规范,强调良好代码风格的重要性。

第三,指导学生调试程序。针对Visual C++ 6.0集成开发环境和gcc编译器,总结学生在编码时常犯的各种编程错误,并给出相应的代码调试方法。通过不断完善文档、分发并反馈,从而减轻教师的工作量,培养学生的参与精神和不断总结的能力。

最后除课后答疑外,笔者还及时通过电子邮件反馈疑难解答和平时成绩。教师将有代表性的提问进行总结和群发邮件,使学生能及时掌握自己的最新成绩,并允许学生质疑分数的公平性和公正性,制定较详细的实践环节评分标准,明确实验报告的结构,要求学生重视需求分析、概要设计,并要如实撰写总结和体会部分。许多同学的总结都停留在表面,并没有总结实际学到的编程知识和调试方法。

以下是在“数据结构”课程实践环节中的的评分标准:

能独立查阅文献资料,较好地理解课题任务并提出实施方案;内容详实准确、文字流畅,符合规定内容及字数要求;论证、分析、设计、计算、结构、建模、实验正确合理;用语符合技术规范,图表、公式清楚;努力学习,遵守纪律,作风严谨务实,按期完成规定的任务。

三、实践环节教学效果

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

通过课堂讲授和实践性环节锻炼,学生能端正学习态度,树立编写代码的信心和决心。通过制定合理的编程任务,每个学生都能动手编写程序。通过动手实践,加深了对数据结构相关知识点的理解。采用结对编程、测试优先和代码重构,学生认识到编写能够运行的代码和优秀代码的差异。有些同学能够进一步完成更高难度的编程任务,并参加国家级的比赛,如挑战杯等。

2.实践环节效果反馈

本次共有97名学生学习“数据结构”课程,每个学生需要完成4份实验报告。统计结果表明,上交报告的积极性、分析设计的规范性和总结体会,与去年相比,均有很大程度的提高。拖延上交实验报告的情况从去年的11.0%降低到3.1%,实验报告的内容更加规范,总结体会内容大多集中在编程过程中遇到的问题及解决方案上。通过填充和扩充代码两种编程方法,绝大多数学生完成了数据结构实践环节的基本任务,如单链表的实现等。51.5%的同学能够完成更加复杂的程序设计任务,如双向链表等。

“数据结构”课程是计算机专业的专业基础课程,应用范围非常广泛。本文分析了数据结构实践教学中目前存在的一些问题,积极探索和尝试新的教学方式,在一定程度上调动了学生的积极性,为学生的软件开发打下了良好的基础。但对于课程体系的建设及教学方法的改进等问题,仍然需要开展进一步的研究。

参考文献:

[1]Mehran Sahami.Expanding the Frontiers of Computer Science Education[EB/OL].http://wccce11.unbc.ca/wccce11-sahami.pdf.

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

[3]科曼,等.算法导论[M].潘金贵,等译.北京:机械工业出版社,

2006.

[4]毛德操,胡希明.Linux内核源代码情景分析[M].杭州:浙江大学出版社,2001.

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

论文摘要:在建构式教育理论的指导下,以就业需求为目标,针对数据结构教学中教与学目标不明、学习信心和动力不足、编程基础薄弱等问题,提出建构式的数据结构教学方法,在实际教学中取得较好的教学效果,这些措施也可作为其他计算机专业课程教学的参考。

近年来,在产业界急需大量软件开发人员的情况下,普通本科院校计算机专业学生的就业率持续走低。网络、报纸等媒体对计算机本科教育现状多有批评,甚至出现了大学不如培训公司的极端观点,严重影响了学生对专业课程的学习兴趣、动力和信心。数据结构是计算机专业的核心基础课程,上承程序设计语言、离散数学,下启操作系统、编译原理等课程,其重要性不言而喻。一方面,数据结构学科具有难度大、抽象层次高、概念繁杂等特点,学生很难掌握,更不要说将抽象理论与就业实践需求相结合。另一方面,国内主流数据结构教材和相应的传统教学模式侧重于培养学生的计算机学科基础理论素养,而将如何通过组织数据结构教学活动积极推动就业的问题留给了任课教师[1]。这造成了学生学习数据结构的目标不明、信心和动力不足。笔者面向就业需要明确了数据结构的两大主要教学目标,并在实际教学过程中实践建构式教育理论,尝试解决学生对专业认识不清、学习兴趣不足、编程基础薄弱等问题。一些做法得到了学生的认可和配合,成功地激发了学生的学习主动性、在一定程度上培育了学生的创新精神。

1面向就业需求的数据结构教学目标

教育要服务于社会生产需求。数据结构教学也必须紧扣这一根本目标。本节从满足就业需要的角度阐明了数据结构教学的两个主要目标:

1) 培养超越具体程序设计语言技巧的编程技术。

现阶段是一个传统的生产生活方式迅速向电子化、信息化转变的时期。人们需要开发和维护更多、规模更大的计算机系统来满足生产和生活的需要[2]。这就决定了具有熟练编程技术的程序员在很长时期内都将受到产业界的青睐。大学对学生编程技术的培养始于程序设计语言的教学,如C语言,Java语言等。但是现今编程语言繁多,各种新概念层出不穷,常常出现学生无所适从或者质疑某门语言课程已经过时无用的现象。甚至很多教师也在争论讲授何种编程语言。笔者看来掌握编程技术(而不仅仅是语言),回归编程的本质问题更加重要,无谓地追赶时髦不可取。作为编程语言课程的后续,数据结构教学的重要目标就是帮助学生理解编程的本质、锻炼编程技术以及学习提高编程技术的方法。

2) 培养围绕复用的软件开发方式。

随着软件规模的日益增大,软件开发模式逐渐从“从无到有”的模式过渡到“从有到有”的模式,即复用现有的丰富的软件资产,开发新的应用系统。事实上,复用的思想已经被广泛的用于软件开发实践之中,从各种各样的程序库、软件开发包、软件构件、Web服务等各种可复用资产已经简化了软件开发的难度、提高了软件开发的效率也极大地改变了软件开发的模式。数据结构学科本身就是对软件复用思想的一种实践,它通过总结大量软件系统中反复出现的数据结构(如表、树、图、集合等),定义和实现处理这些数据结构的基本操作,最终达到能够在不同项目开发中反复应用的目的。这些基本数据结构和算法已经被实现为可复用的产品随着程序设计语言,如C++ STL、C# collections, Java collections等,并得到了广泛的使用。因此,数据结构教学的另一个重要目标就是引导学生习惯围绕复用的软件开发方式,能够使用和定制已有的数据结构和算法库。

其他传统的数据结构教学目标,如培养学生面向实际问题进行算法设计和分析的能力,培养学生计算机学科的基本理论素养和思维方式等也非常重要。但普通本科院校学生对理论内容的接受能力以及将理论和现实就业需求相联系的能力相对较弱且教学时间有限[3],笔者认为重点突破本节给出的两个更具体、更可达的教学目标,并在实现这种具体教学目标的过程中潜移默化地培育学生的计算思维和理论素质,将会取得更佳的效果。

2建构式数据结构教学

教学理论研究以及教学实践反馈均表明,学生主动学习的效果远较被动地接受老师灌输的效果好的多。因此,为实现上述教学目标,在建构式教育理论的指导下,笔者探索并采用了一系列建构式教学措施,激发学生的主动性和兴趣,取得了较好效果。

建构主义认为,学习并非学习者对教师所授知识的被动接受,而是学习者以自身已有知识和经验为基础的主动建构过程[4]。知识不仅是通过教师传授而得到,更是学习者在一定的情境中,利用必要的学习资料,通过同化新知识、顺化自身知识结构的方式而获得。建构主义提倡在教师指导下的、以学习者为中心的学习,也就是说,既强调学习者的认知主体作用,又不忽视教师的指导作用,教师是意义建构的帮助者、促进者,而不仅仅是知识的传授者与灌输者。学生是信息加工的主体、是意义的主动建构者,而不仅仅是外部刺激的被动接受者和被灌输的对象。下面从理论教学和实践教学两个方面介绍我们采用的一些教学措施。

2.1理论教学措施

课堂教学是数据结构教学活动的主要部分,充分利用课堂教学时间,激发学生学习数据结构的兴趣和信心,帮助学生建立学习数据结构的环节非常重要。我们采用了如下措施:

1) 组织小型讨论。

好的开始是成功的一半,好的课堂教学须在上课之初就抓住学生的注意力,让学生带着轻松、愉快的心情听课。我的做法是在课堂的前5分钟,提出一个学生感兴趣的话题,组织若干个有3~5位同学参与的小型讨论。到一个学期结束时,每位同学都有至少一次的发言机会。讨论的主题可以灵活设置,如时事、技术、社会热点等。有时,课堂中间学生比较疲惫、注意力下降的时候,也可以穿插一点讨论,改善课堂环境。大多数学生非常喜欢这种讨论活动,积极参与其中,成为课堂的一部分,从被动上课转变为喜欢上课。

2) 重建理论知识所针对的问题。

国内的经典数据结构教材侧重严谨的理论,较少讨论各种概念、算法出现的背景以及探讨的问题是否仍然具有现实价值。而回答这些问题能够帮助学生重建理论知识所针对的问题原型,重现解决方案的提出、发展乃至最终成熟的整个过程,更有助于培养学生解决实际问题的能力,养成批判性、创新性思考的习惯。众所周知,关于树的存储方法很多,有双亲表示法,孩子表示法和二叉链表表示法[5],其中以树的二叉链表表示法使用最广,但其他存储方法也有其适合的应用。例如,在利用树表示各个集合,求集合中的等价类时,双亲表示法更为合适。每一个集合都用树的双亲表示法存储时,并设树的根结点的值为集合名,集合中的每个成员都对应一个结点,这样很容易找到一个元素所属的子集(顺着双亲指针找树的根结点)。

3) 组织“我来讲”活动。

数据结构涉及很多抽象的概念和算法,初学者很难理解。而教师则对理论内容比较精熟,常常倾向于从理论的角度逐步递进、展开讲解,这就增加了学生的学习难度。教师和学生在教学语言上的鸿沟是影响教学效果的一个重要障碍。教师当然可将抽象的理论概念与生活中更形象的概念进行类比,帮助学生理解,也可以将复杂的算法过程用多媒体动画模拟出来,直观地展示给学生,帮助学生掌握。但一方面,根据建构主义理论,教师和学生的知识背景不同,由教师设计概念类比语境和算法模拟动画实际上仍然是基于教师的知识结构对知识点进行的同化和顺化,而不是对学生知识体系的直接建构。另一方面,教师的经验和智慧有其局限性,未必总能够找到最适合的类比语境和动画模拟。为此,笔者采用了充分发挥学生智慧的方法,组织“我来讲”活动,要求学生通过设计算法的动画模拟,创建概念的类比语境等方式进行学习,并随机选择学生走上讲台对抽象理论概念和复杂算法进行说明。这样不但能够调动学生思考问题,还能帮助那些无法完成自我知识体系建构的同学从学生的视角去理解同一个问题。例如,对于n维数组是元素为n-1维数组构成的线性表这一递归的类型定义,可采用符号推理的方式,培养学生的理论素养,而同时可鼓励学生根据自己的理解将抽象理论具体化,建立帮助理解和记忆的现实语境。

2.2实践教学措施

数据结构是帮助具有基本编程语言基础的学生锤炼编程技术的关键课程。它揭示了程序设计的基本面,即如何处理相互之间存在一种或多种数据关系的数据元素所构成的集合、如何设计算法并分析算法的优劣。若没有相应的配套实验指导学生如何将理论应用于实际问题,只是泛泛而谈、纸上谈兵,学生容易迷失在数据结构的一连串复杂概念和算法之中,而不知道学习数据结构的意义何在。为实现教学目标,笔者锁定实验内容设置和实验考核等两个关键环节,实践了如下措施,取得了较好效果。

2.2.1实验内容设置

实验内容设置是进行实践教学的最重要部分。从覆盖知识点的角度看,实验内容须面向数据结构教学目标,即实验内容须能够锻炼学生的编程技巧,如算法设计、调试、测试以及调优等能力,还能够让学生体会到围绕复用开展软件开发的威力以及思路。从覆盖教育对象的角度来看,实验内容须面向大多数同学并充分考虑优秀同学,即实验内容须划分不同的层次,让大多数学生能够很容易入手,并让有能力、有余力的学生能够不断地深入,直至形成综合型课程设计。

基于以上考虑,并借鉴同行经验,笔者开展三个层次的实验教学活动,一是要求所有学生都完成的实验内容,要求学生采用不同的数据结构实现同一个问题并进行对比分析,例如,分别使用静态数组和动态分配的连续内存区实现顺序表,使用整型、字符型数组或者链表实现长整数的乘法,使用带头结点或不带头结点的循环链表模拟约瑟夫环等;二是组织程序设计竞赛,让部分学有余力的同学能够在算法设计、程序实现和调试、优化等方面得到锻炼和提高;三是设计综合型课程设计锻炼学生解决问题的综合能力,并通过适当分组,培养学生团队协作精神和能力,锻炼学生解决问题的综合能力的目标,最终达到以点带面全面提高学生能力的目的。

2.2.2实验考核手段

考核手段在教学环节中至关重要。考核手段是学生学习和锻炼自身能力的风向标。为保证每位同学都能积极完成实验并有所收获,避免抄袭和敷衍的现象,笔者采取了综合型的考核手段。其一,提交实验成果,即程序及其运行结果;其二,记录实验过程、分析实验结果以及总结实验得失的实验报告,对实验报告进行选优讲评,培养学生撰写科学实验报告的能力;其三,每位同学必须面向教师讲解自己编写的程序,包括主要思路和细节性语法,优秀的同学可走上讲台宣讲自己的实验方案和程序设计技巧。这就基本杜绝了学生相互之间抄袭程序和实验报告的现象,使得学生真正能够思考问题,并尽力动手完成实验。综合上述三种手段的综合型考核方法既能够达到督促大部分同学完成实验、锻炼动手能力目的,又能够达到培养优秀同学的目的。特别地,优秀同学宣讲活动能够使学生观摩到如何从学生的视角从无到有的解决问题的过程,这能够培养学生解决实际问题的信心并激发其学习积极性。

3应用中遇到的问题

建构式教学模式在应用和推广过程中遇到的主要问题来自三个方面。其一,目前学生的课业负担较重,习惯于被动“填鸭”而不习惯于主动“求索”,这是推动和开展建构式教学模式的主要障碍。其二,建构式教学活动,需要师生的密切交流,但现有师资不足难以满足实际需求。一个可能的解决方法是综合多门课程和多个老师,建构整体的知识框架和学习体系,避免课程教学中的重复劳动,提高师资的利用率。另一个可能的解决方法是利用互联网技术,建立在线教学园地。其三,建构式教学模式仍然处于探索阶段,各学科缺乏建构式教学素材。从笔者在实践教学的体验来看,应尽量从学生的学习背景和能力成长规律出发而不仅仅是从学科背景出发,为学生建构知识体系设计更平滑的路线。

4结语

笔者提出将“培养超越具体程序设计语言技巧的编程技术”和“培养围绕复用的软件开发方式”作为普通本科院校的数据结构教学目标,在建构式教育理论的指导下,设计并实践了一系列建构式教学措施,分析了应用建构式教学模式所遇到的一些问题。

未来将开展两个方面的工作。一是通过问卷调查、统计分析等手段定量地分析建构式教学方法的实际效果;二是创造和积累建构式教学素材,如研究数据结构课程设计过程中不同类型学生的知识建构路线,挖掘并推广其中优秀的知识建构方法。

参考文献

[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:8-101.

[2] 蔡敏,郑尚志,梁宝华.“数据结构”课程教学改革之我见[J]. 计算机教育,2009(4):50-51.

[3] 揭安全,李云清,杨庆红,等. 项目教学模式指导的“数据结构与算法”教学改革[J]. 计算机教育,2008(22):21-23.

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

关键词:数据结构;高职高专;实践教学改革

中图分类号:G642 文献标识码:A 文章编号:1007-9599 (2012) 15-0000-02

1 课题研究的背景及意义

“数据结构”是计算机专业及相关专业的一门重要专业基础课程,是计算机专业教学计划中的核心课程之一,在整个专业教学中占有极其重要的地位。对于高职高专学生来说,该课程具有一定的抽象性和动态性,在学习和理解上有较大的困难。因此,必须通过实验环节加强对理论知识的理解和掌握,通过算法设计和上机实践,培养学生数据抽象和程序设计能力是“数据结构”课程教学别需要重视的环节。

实验教学是高职高专院校教学过程中一个重要的环节,是理论联系实践的桥梁。它不仅要培养学生掌握和深化知识的能力,更重要的是要引导学生掌握科学的思维方法,提高综合分析问题和解决问题的能力,进而提高学用结合的实践能力。所以,进行“数据结构”课程实践教学改革,一者是提高教学质量,改变高职院校教学现状的迫切需要,势在必行;二者,学生能力的培养已成为现代教育的重心,教师应该在促进学生一般能力全面提高的同时,更应该对学生分析问题和解决问题的综合创造能力给予特别的关注,该课题的研究对提高学生的综合素养和能力有一定的作用;再者,本课题的研究过程和成果对于提高其它实践类课程具有借鉴的作用,进而对整个高职高专院校实验教学改革的探究起到了基础性的支持。

2 目前数据结构课程实践教学中存在的问题

数据结构课程是计算机相关专业的一门专业基础课程,在相关专业学习过程中起着承上启下的重要作用。因其专业性、理论性强,内容抽象等特点,被大多数高职高专院校公认为是一门既难学又难教的课程,教学效果一直不理想,教学质量难以提高。经调研,目前大部分高职高专院校在数据结构课程实践教学中存在以下问题。

其一,数据结构课程本身较强的逻辑性和抽象性决定该课程的难度较大,学生首先从心理上畏惧数据结构,害怕实践,拿到实验任务到上机实习,常常茫然不知如何动手。

其二,在传统的数据结构教学中,大多数实验配套教材详细描述了理论课中所有算法的程序实现。每次实验之前,教师会向学生详细讲解算法的理解、实现过程和运行结果,学生只需照搬教材机械录入,验证结果就可以。这样的教学模式使学生毫无学习兴趣,也不用动脑思考,使上机调试变得十分被动,这就失去了开设该课程的意义。

其三,C语言程序设计是数据结构的前导课程之一,学生对它的熟悉掌握程度,直接关系到数据结构课程的实践教学效果。数据结构课程的理论教学重在算法思想的描述,实验过程中,大多数学生因程序设计语言基础差,不能很好的将类C算法描述转换成计算机能够接受的程序,甚至有些学生直接复制算法,这样数据结构的实验就更困难了。

其四,近年来由于我国高校综合素质教育要求地不断提高,各高职高专院校的专业课程普遍存在压缩课堂学时,导致理论教学进度急促,“重在实践”的教学理念不知不觉就被忽视。

3 数据结构课程实践教学改革措施

为了能够更好的发挥实验课程的作用,使学生提高程序设计能力,加深理解数据结构研究数据处理方法的意义,同时,提高学生分析问题和用计算机解决实际问题的能力,笔者针对高职高专学生的特点,在实验课程教学内容设计、培养学生兴趣、改进教学方法和过程管理,以及考核方式等经过调研、分析进行了初步探索。

3.1 重视实践教学内容的设计

以往的实践教学中大都由教师统一组织实验,先理论后实践,实践只是对理论知识的简单验证,教师只关心学生是否来做实验,而是否会做实验,实验的效果如何则并不关注。长此以往,学生对实验越来越没有兴趣,更谈不上实践能力的提高。

笔者对实践教学内容体系进行了层次化的设计。尝试着按基础性、综合性、实用性和创新性四个层次构建数据结构课程的实验教学内容。第一层次,基础性实验。针对学生的基本要求,设计基本操作技能方面的实验项目,其目的是通过实验让学生理解并掌握掌基本概念、基础知识和基本操作,并及时消化课堂教学内容。同时,从基础性实验中也会获得一定的成就感,学习热情会进一步得到提高。第二层次,综合性实验。在一个实验项目中设计并整合某种数据结构的综合性实验,其目的是通过实验使学生综合把握某种数据结构的特点,建立完整的概念和设计思路,提高学生综合运用知识的能力。第三层次,实用性实验。开发一些实用性强,具有实际意义的实验项目进行实战训练,增强数据结构能够处理现实问题的依据,提升学生的兴趣和自信心,提高实践能力。如给出“城市间最佳路径”问题,通过这个实验项目的分析、设计、编程实现,让学生体会图这样的数据结构如何从现实问题中抽象出来,又如何用来解决现实问题;第四层次,创新性实验。该部分的实验主要是针对基础较好,且能在短时间内完成基础性和综合性实验的学生,给学生自主设计自主选择的空间,引导学生深化问题,同时鼓励学生提出新问题,分析新问题,解决新问题。

3.2 开设“数据结构”兴趣小组,培养学生的团队协作精神

学生是教学的主体,只有充分调动学生的学习积极性,激发学习的兴趣,才能使实践教学收到良好的教学效果。在以往的实验课中,我们不专门分组,要么是自由组合,要么是一窝蜂,多数学生都是蒙混其中,根本起不到实验的目的。笔者在数据结构实验课中建立实验兴趣小组,每组4-5人,组中的成员按学习成绩和实践能力优劣搭配,好的带动差的,差的追赶好的,形成一种浓厚的学习氛围。在实验教学的实施中,教师将每次实验的内容分解且具体到每一个人,既存在各自独立,又有相互协作,共同完成实验任务,这样有助于对知识认识的升华,综合素质的培养,更有助于长期形成协作习惯,培养学生团队精神。

3.3 实践教学方法及过程管理的改进

传统的实验教学方法基本上以灌输、验证为主,学生学习主动性没有得到充分发挥。其次,因高职高专院校大量压缩课时,导致实验学时受总学时的约束,不可能很多,第三,我们先前采用的课内课外相结合的方式又缺乏全程跟踪考核与管理。因此,笔者对实践教学方法以及实验过程管理提出了实验项目驱动教学法,以实验项目为载体构建学习情境,以加强监督实验过程管理为主体,学生在教师老师的指导下,通过共同学习,相互协作完成一个完整的综合性实验。

在实验项目驱动教学过程中,主要有四个中心的转变。其一是由以教师为中心转变为以学生为中心。之前的教学老师讲、学生听,课堂气氛沉闷,缺乏师生交流;转变后以学生为主体,教师放开手脚,学生积极参与学习和讨论,最大限度地发挥其主观能动性。其二是由以理论为中心转变为以项目为中心。过去以理论讲授为主,照本宣科,注重基础理论知识的学习;现在需要教师针对每个单元的知识点,选择有代表性、难度适中、综合性的典型算法,合理设计实验项目,供兴趣小组选择。其三是由以课堂为中心转变为以实践为中心。在实验项目开发过程中,教师对实验项目进行具体的指导,要求学生写出每一阶段的设计思路和设计原理,撰写实验报告和测试结果,写出自己调试过程中遇到的问题,以及如何解决问题,且对实验项目设计与实现的回顾讨论与分析。四是由以课内管理为中心转变为以过程管理为中心。过去教师检查以实验课堂为主,注重实验结果,忽视实验过程;现在要求教师重视课外指导,全程管理实验进度。教师要详细制定实验计划,合理安排实验进度,按时下发各阶段任务,耐心指导实验过程,认真验收各阶段任务,及时总结存在问题并反馈于学生。紧紧围绕这四个中心,开展实验项目驱动教学法活动,加深理论知识的学习,提高实践教学效果。

3.4 改革考试方式,加强实验考核

考试是检验教学质量和检查学生掌握知识水平的一种重要手段。目前我校所有科目的考核模式采用统一的标准,其组成是平时成绩占30%(包括课堂提问、到课情况、作业、实验报告等),期末考试成绩占70%,应该说基本体现了重在平时的考核理念。但随着教学方法和教学环境的改变,该考核模式比较适合理论性强的课程,而对于理论和实践并重,甚至实践强于理论的课程,该考核模式就不能取得良好的实验效果,不能真实地反映学生的学习情况,不能切实达到促进学习的目的。

因此,合理的考核方式是数据结构实验课程取得良好效果的保证。笔者在遵循学校考试模式的前提下,对该模式进行了细分量化,平时成绩的10%是平时表现,主要包括课堂提问、到课情况,以及书面作业;平时成绩的20%是实验表现,主要包括实验项目的前期准备、实验过程记录、实验问题记录、实验结果、实验报告及实验总结。笔者在期末卷面考试中,增加了10%~15%的实验课内容的考核。总之,教师要针对实验的各个环节提出具体要求和考核标准,定性定量地从各个方面评定实验成绩,调动学生的积极性和自主性,保证实验教学的学习效果。

4 教学效果分析

为了验证实践教学改革措施在数据结构实验课程中的效果,笔者先后选取信息工程学院计算机应用技术专业09级和10级进行试验,两个年级的学生计算机基础和水平都差不多(参考表1),男女比例也接近(参考表2)。在同一个教师教学的前提下,09级采用传统未改进的实验教学模式,10级采用改革后的实验教学模式,综合成绩测评也采用统一的新考核标准,现将两个年级的平均综合成绩测评结果统计如下(参考表3):

从以上表格数据可以看出,在保证试验条件基本相同的条件下,实验教学改革后的教学模式,提高了学生实验的积极性和学习兴趣,培养了学生对实验项目实施的解决实际问题的能力,同时,加深了学生对理论知识的理解和巩固,促进实验教学效果。

5 结束语

当然,同传统的实验教学相比,数据结构实验教学的一系列改革措施对教师在知识结构和知识素养方面无疑有了更深层次的要求,但教师付出的艰辛与得到的“回报”也是成正比的。因为这是一种集内容设计、兴趣培养、教学方法改进、考核制度合理化为一体的过程管理的学习和参与,学生和教师都从中受益匪浅。因此,只要我们提高对数据结构实验教学目的地认识,端正教学态度,就会不断探索新的、更适合高职高专院校实验教学效果的方法。

参考文献:

[1]黄桂敏,周娅.实践教学模式的探讨[J].桂林电子工业学院学报,2009,5

[2]陈雪刚.数据结构课程教学改革与实践[J].计算机教育第4期

[3]孟佳娜,孙雪莲.数据结构实验教学改革探讨[J].大连民族学院学报第3期,2010,5

[4]王楠.“层次性、实例化、开放式”实验教学模式的探索与实践[D].大连广播电视大学

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

关键词:数据结构;理论教学;实践教学;教学改革

中图分类号:TP311.12-4 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

1 课程内容

《数据结构》是计算机科学中一门综合性的专业基础课,也是其它辅修计算机专业的必修课程。本课程讨论了软件设计中经常遇到的线性表、堆栈、队列、串、数组、树和二叉树、图等典型数据结构的逻辑结构、存储结构和操作的实现方法,以及递归算法设计方法和各种典型排序和查找算法的设计方法。并对算法进行性能分析和比较,内容非常丰富。数据结构课程是一门理论和实践相结合的课程。本课程包括讲授和课内上机实验两部分教学内容。课内上机实验是为训练学生的实际程序设计能力安排的。

课程的目标是使学生掌握数据基本的逻辑结构和存储结构、一些典型的数据结构算法及程序设计方法和技巧,要求学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法,要求具备算法分析的基本技术和能力,并培养良好的程序设计风格,掌握开发复杂、高效程序的技能。

2 理论教学方法与手段的探索

遵循以学生为主体,以教师为主导的教育理念,针对理论教学和实践教学的不同特点,合理进行教学设计,推进教学方法和教学手段改革。课堂上引入启发式教学,充分发挥学生的学习主动性,重视自学能力的培养,引导学生积极思考,活跃课堂气氛,适当压缩授课时数, 留给学生更多的思维空间和自学空间,增加学生阅读参考书、科技文献和写读书报告的时间。数据结构的教学策略:

(1)激发学生的学习兴趣

兴趣是最好的老师,只有激发了学生的学习兴趣,才能事半功倍,取得更好的学习效果。在教学中通过具体的实例说明数据结构在程序设计中的重要性,从而激发学生的求知欲,让学生充分感受到数据结构算法设计的魅力,调动学生思考的积极性。鼓励学生对教学内容提出疑问,师生共同讨论,从而提高教学和学习水平。在课堂上随时提出一些思考题,对一个结构从不同角度讨论。例如,对于线性结构,讨论线性表、栈和队列各自的操作特点。鼓励学生在学习过程独立思索,提出不同的算法,深化对问题的理解。例如在讲解循环队列时,如何判断队空和队满,有的同学提出三种解决方法。对于这样的同学,我们及时给与表扬和鼓励。

(2)教学内容的有机组合

在现有教学大纲的内容的基础上,不断吸收新知识、新内容,补充考研试题。对教学内容的安排重新进行拆分和重组,突出重点、细化难点。运用面向对象的学习方法讲解数据结构,每一种数据结构的学习方法都是相似的,重点介绍数据结构的逻辑关系、基本操作和在不同存储方式下基本操作的实现,介绍数据的逻辑结构和物理存储之间的关系,及物理存储在类C语言中的描述,数据结构的主要内容可用以下的体系结构来表示。

学生在了解了数据结构课程的核心内容后,算法的实现就不难理解了。例如:我们在讲授线性表的复杂操作有序表的合并时,先从逻辑上看是如何实现的,介绍算法设计思想,然后讲解两种实现算法:顺序存储方式和链式存储方式下的算法,让学生自己比较两种算法,加深理解。

(3)双向互动式的教学

改变原来“填鸭式”的教学模式,变以教师为主的教学方式为以学生为中心的教学模式,教师只起画龙点睛的作用。课堂上引入启发式教学,充分发挥学生的学习主动性,重视自学能力的培养,引导学生积极思考,活跃课堂气氛,适当压缩授课时数,留给学生更多的思维空间和自学空间,增加学生阅读参考书、科技文献和写读书报告的时间。为了更方便和鼓励学生自主学习,我们建设了数据结构精品课程网站,有授课视频、教学课件、各章习题和考研辅导等学生内容,教师还可以通过网站进行网上答疑,与学生及时交流。

(4)注重各知识点的有机统一

若想让学生做到融会贯通,举一反三,在教学中就必须注重各知识点的有机统一。比如在讲授内部排序算法时,综合比较各种排序算法的时间复杂度、空间复杂度、稳定性、最好及最差情况等。让学生通过比较,提高解决问题的能力,会根据不同形式的待排序表选择合适的存储方式和排序方法。再就是讲授链队列时,讲完用一个带有头尾指针的单链表表示的队列后,再让学生思考如何用一个循环链表表示队列,在给出启示后让学生自己写成队列的初始化、入队和出队算法,通过这种方式的教学不仅培养了学生的思维能力,而且有助于培养学生的创新能力,会综合运用所学知识,用计算机解决较复杂的问题。

(5)运用现代化教学手段

重视现代教育方法、技术手段的运用,采用多媒体教学,加大课程信息量,提高教学效率。在采用多媒体技术讲授本门课程的过程中,在深入研究多媒体教学的特点以及学生现有知识架构的基础上,重新组织、优化、补充教材内容,精心制作多媒体课件。在多媒体课堂上,通过教师有机地组织电子教案、演示课件等,使得学生能形象地领悟到算法的效果,教学变得丰富、有趣。在授课过程中,首先还原问题的本来面目——提出问题,引导同学积极参与——尝试解决问题,在讨论的基础上给出结论——讲授教学内容,最后采用课件进行算法的动态演示,加大了课堂信息量,提高了教学效率。

3 实践教学的探索

实践教学是数据结构课程教学的一个重要组成部分,对本门课程的学习起着至关重要的决定。通过实践教学,让学生能够学会运用书上学到的知识来解决实际问题,培养软件工作所需要的动手能力。

实践活动通过两个环节来实现,第一个环节课程实验,较偏重于对课程内容的理解。实验讲义完备,开出率100%。保证了学生理解和掌握课程的基本理论和基本概念,又提高他们的动手能力。第二个环节课程设计实习,让学生有机会自己提出实验项目、实验方案,在教师指导下按其方案进行实验,最后让学生自己得出应有的结论,进一步培养学生的学习兴趣和实践动手能力,从而激发创造力,也初步实现了对学生进行一整套软件工作规范的训练和科学作风的培养。

(1)实验教学内容

依据实验教学大纲,合理安排实验教学内容。我在教学时把实验项目按照不同内容和难度分成三种类型:基础型实验项目、设计性实验项目、和综合性和创新型实验项目,实现了实验教学内容的创新。基础型实验项目安排在各个章节中,主要围绕数据结构基础知识内容,目的是让学生掌握各种基本数据结构的逻辑关系和存储方式,通过实验验证算法,理解数据结构的基本操作的定义和实现。设计型实验项目是在基础型实验项目的基础上,让学生自己设计数据结构和算法,提高学生解决问题的能力和良好的编程能力。例如一元多项式求和,要求学生选择合适的数据结构自己编写算法。综合型实验项目涉及数据结构中多个知识点的重点内容,要求学生自己进行设计和实现,主要训练学生综合运用知识的能力,协作能力和创新实践能力。

(2)考核方式探索

为了培养学生的创新意识和团队协作精神,促进学生之间的交流和协作,使不同水平的学生都能在大型实验项目中担负起相应的工作,特别设计了一套针对综合型实验和探索创新型实验的考核方式和考核方法。

根据不同的实验项目采取不同的考核方式,基础型和设计型实验项目安排在平时每周的上机实验课进行,根据学生提交的实验报告进行考核。综合型和创新型实验项目较大,需要学生分工合作,共同完成,一般对学生进行分组,每组完成一个实验项目,在课程设计环节完成,一般有两周时间,教师根据每个学生在组内的表现给出一个考核成绩,项目完成后,再根据各组提交的项目报告和项目的质量给出合理考核成绩。这样既激发了学生的创新能力,又提高了学生的团队合作精神。

4 结论

在研究课程的教学方法时,要因内容制宜,因学生制宜,采取不同的教学方法。本人通过近十年对数据结构教学的实践与探索,取得了一定的教学效果,使得学生在学习数据结构时,不在感觉那么抽象,理解数据结构和算法不再那么困难,让学生真正理解了数据结构的作用,会选择和使用合适的数据结构解决问题。为学生后继课程的学习打下良好的基础,乃至对学生今后从事软件方面的工作都会提供较大的帮助。

参考文献:

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

[2]李治军,廖明宏,张岩.数据结构与算法课程设计教学模式的探讨[J].计算机教育,2006(2).

[3]殷人昆,陶永雷,谢若阳,盛绚华.数据结构(用面向对象方法与C++描述)[M].北京:清华大学出版社,2002.

[4]李锋,孙莉.任务驱动式方法在离散数学教学中的应用[J].计算机教育,2006(3).

[5]王锐.基于网络的《数据结构》新型教学模式研究[J].中州大学学报,2006(10).

[6]莫家庆.《数据结构》程序教学模式探索[J].计算机教育,2008(9).

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

关键词:数据结构;实验教学方案;栈;队列

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)24-0274-03

一、引言

实验教学是学生从学习理论知识到走向社会的桥梁,对提高学生综合素质、培养学生创新精神和实践能力有着理论教学不可替代的特殊作用[1]。特别是主干课程的实践教学,它是应用型人才培养中的关键环节[2]。课内实验是指与理论课相捆绑的实践教学,即嵌入到专业基础课或专业课内的实验实践教学[3]。它是与理论教学并行实施的实践教学环节,能够帮助学生深入理解和掌握所学的专业知识。

数据结构是随着处理对象的复杂性不断增加而发展起来的一门课程,作为计算机专业的核心课程,在专业人才培养链条中占有举足轻重的地位[4-7]。数据结构主要研究数据在抽象视图和实现视图中的表示和处理方法[8,9]。抽象视图涉及的是数据结构的理论性部分,实现视图主要体现的是数据结构的实践性,理论指导实践,实践支撑理论,因此设计有助于课堂理论教学的实验教学方案是非常有必要的[10]。它可以解决学生对所学知识缺乏必要感性认识的问题,将知识传授、技能训练、能力培养融于一体,使所学理论知识在实验中得到验证和应用[11]。

栈和队列是两种非常重要的数据结构,它们有非常多的实际应用并且是实现其他复杂结构的基础,因此为了帮助学生掌握并灵活运用这两种结构,本文给出一种栈和队列的实验教学方案。该方案的设计思路也可以应用于其他数据结构或课程的实验教学方案的设计。

二、认识两种重要的数据结构――栈和队列

栈和队列是两种运算受限的线性表,它们的插入和删除运算都被限制在表的端点处进行,只是具体的受限规则不一样[12,13]。

(一)学习对象

栈(stack)是运算受限的线性表,它被限制在表的一端进行插入和删除操作。能进行插入和删除的一端称为栈顶,另一端称为栈底。正是由于它插入和删除操作上的限制使得它具有了一种独特的“后进先出”(LIFO)的特性。栈的LIFO特性使得它具有非常多的应用,如:符号平衡问题、中缀表达式转换为后缀表达式问题、后缀表达式的计算问题、函数调用的实现(包括递归函数的实现)、在股票市场中查找划分、Web浏览器中的网页访问历史、文本编辑器中的撤销序列等。此外,栈还是其他很多算法的辅助数据结构和其他数据结构的组成部分。

队列(queue)也是一种运算受限的线性表,它被限制在表的一端进行插入操作,在表的另一端进行删除操作。进行插入操作的一端称为队尾,进行删除操作的一端称为队首。正是由于它插入和删除操作上的限制使得它具有了一种独特的“先进先出”(FIFO)的特性。队列的FIFO特性使得它具有非常多的应用,如:操作系统中的作业调度、异步数据转换、多道程序设计等。此外,队列还是其他很多算法的辅助数据结构和其他数据结构的组成部分。

(二)学习目标

学习这两种重要的线性结构需要学生重点消化的知识点有:(1)栈/队列的概念、类型定义及基本操作的定义和实现;(2)栈/队列的结构特性;(3)栈/队列的灵活应用。

为了配合栈和队列的理论教学,帮助学生理解和掌握上述知识点,我们需要精心设计栈和队列的实验教学方案。

三、栈和队列的实验教学方案设计

(一)实验题目设计

根据栈和队列的学习目标和遵循循序渐进的学习和教学原则,实验题目被分为以下三个层次:基础型实验题目、设计型实验题目和加强理解型实验题目。

所谓基础型实验是指围绕课程讲授的栈/队列的物理实现和其基本运算的实现来设置的实验题目。设计基础型实验的目的是,通过实践的方式验证课堂上讲授的重要知识点,给学生切身的感受,摆脱“纸上谈兵”的感觉,这种立体的感受有助于学生深入理解和掌握这些知识点。设计型实验要求学生能分别运用栈/队列解决简单应用问题。这类实验题目主要是用来引导和加强学生对栈/队列的灵活运用。设计加强理解型实验的目的是强化学生对栈和队列的结构特性的理解和体会。为了达到这个目的,加强理解型实验题目的设计思路有两个方面:(1)引导学生去思考并解决这样两个问题:能否利用栈的LIFO特性来实现队列的FIFO特性?能否利用队列的FIFO特性来实现栈的LIFO特性?(2)让学生实现其他更为复杂的栈和队列。

在栈的理论教学过程中可以开设栈的基础型实验,在栈的理论教学结束后可以开设栈的设计型实验,在队列的理论教学过程中可以开设队列的基础型实验,在队列的理论教学结束后可以开设队列的设计型实验和加强理解型实验题目。表1给出了具体的实验安排。

学生必须在相关内容的理论教学过程中利用自己的课外时间完成全部基础型实验题目,教师根据学时安排选择1~2道设计型实验题目让学生在上机课上完成,未选择的题目应向学生提供完整的源代码和设计说明。相关内容的理论教学结束后,学生必须利用自己的课外时间完成加强理解型实验题目中的第1题和第2题,剩下两题可以选做。

(二)教学方法

因为三种类型实验的要求、难易程度不同,因此在学生参与形式、教师参与程度、教师参与方式等方面需要区别对待。表2给出了对三种类型实验在上述这几个方面的设计。

基础型实验要求每位学生利用课外时间独立完成,教师全程参与指导。所谓全程参与指导是指从算法基本思想到算法实现的各个环节(包括编程技巧、程序调试与测试等)都要参与指导。参与方式多种多样,例如利用QQ等即时通讯工具进行指导,约定时间和地点进行答疑,等等。

设计型实验要求每位学生在上机课上独立完成,教师前期参与指导。所谓前期参与指导是指教师参与学生在算法设计环节的讨论,教师可以给出提示,同时鼓励学生设计不同的算法。参与方式是面对面的交流。

加强理解型实验要求每位学生利用课外时间独立完成,教师后期参与指导。所谓后期参与指导是指教师在收齐学生提交的源码和设计报告后,对其进行分析总结,并将总结结果以班级为单位采用面对面的方式反馈给学生。

(三)考核方法

对三种类型的实验采用不同的考核办法。表3给出了这方面的设计。

对基础型实验不做专门考核的原因是学生基础型实验完成的好坏会直接影响设计型实验和加强理解型实验的完成,因此对其他两种类型实验的考核间接考核了基础型实验。

对设计型实验的考核分两个部分:一是本次上机课上实验的完成情况,包括程序是否调试成功、程序的运行结果是否正确,代码编写的质量等;二是本次上机课结束后提交的实验报告的完成情况,包括内容是否完成、书写是否规范等。

对加强理解型实验的考核主要是考核学生提交的源代码和设计报告的完成质量。

设计型实验的成绩占总实验成绩的70%,加强理解型实验的成绩占总实验成绩的30%。

四、结语

数据结构是一门理论性和实践性很强的课程,其理论教学环节与实验教学环节相辅相成。栈和队列是两种重要的线性结构,为了提高它们的教学效果,增强实验教学对其理论教学的促进作用,本文提出了一种栈和队列的实验教学方案。该方案的设计思路同样适用于其他数据结构或课程的实验教学方案设计。

参考文献:

[1]朱金秀,金纪东,周妍,等.实践教学与就业能力培养相融合的研究与探索[J].实验室研究与探索,2011,30(4):105-107.

[2]荣瑞芬,闫文杰,李京霞,等.实践教学课程考核评价模式探索[J].实验技术与管理,2011,28(3):232-234.

[3]张纯容,施晓秋.问题与案例驱动的课内实践教学分级模式探索[J].实验室研究与探索,2012,31(1):145-148.

[4]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[M].北京:机械工业出版社,2010:143-147.

[5]董丽薇.数据结构课程教学方法的改进[J].沈阳师范大学学报(自然科学版),2012,30(2):307-309.

[6]刘城霞,董宛,蔡英.数据结构中基本教学案例的研究[J].计算机教育,2010,(03):144-146.

[7]韩建民,钟发荣,赵相福,等.基于ACM-ICPC训练模式的数据结构实践教学探讨[J].计算机教育,2013,(10):103-107.

[8]沈华.数据结构、算法和程序之间关系的探讨[J].计算机教育,2013,(04):58-61.

[9]沈华.数据结构入门教学中的实例法[J].计算机教育,2013,(24):64-66.

[10]沈华.数据结构课内实践教学方案[J].实验室研究与探索,2013,32(10):396-400.

[11]刘光蓉.以计算思维能力培养为导向的C程序设计实验教学[J].实验技术与管理,2013,30(1):154-156,191.