数据结构课程设计总结范文

时间:2023-02-26 08:45:36

数据结构课程设计总结

数据结构课程设计总结范文第1篇

关键词:数据结构;课程设计;以人为本

1 背景

数据结构课程是计算机相关专业的专业基础课程,也是专业课程体系中的核心课程。数据结构课程设计与其他课程设计不同,它不仅是对本门课程知识的综合训练,而且要综合运用几个学期积累的程序设计知识,是对程序设计能力的一次关键的训练;因此,需要以整个教研室的力量完成该课程设计的教学工作。

在数据结构课程设计教学中,学生的基础、心态、积极性等因素在很大程度上影响教学的效果。近年来很多教学一线教师对数据结构课程设计面临的问题进行了探讨,介绍实践经验或提出改革建议,如基于问题驱动(以问题求解为核心)、案例驱动、任务驱动和项目驱动的课程设计模式;文献[6]指出以人为本的教育理念是时展的产物,主张把人放在第一位,以人作为教育教学的出发点;文献[7]认为提高教学质量的关键是在教学中坚持以人为本。数据结构课程设计教学涉及出题、选题、指导、评价等工作,任务繁重,参与的老师众多,因此,探讨如何在数据结构课程设计教学管理和教学实施过程中贯彻以人为本的理念,对数据结构课程设计的教学工作具有指导意义。

2 数据结构课程设计教学中的问题

在数据结构课程设计教学过程中通常会遇到以下问题:

(1)学生程序设计基础薄弱。高级语言程序设计是数据结构课程的先导课程。学生对于高级程序设计语言的语法知识的掌握和具备的基本程序设计能力是顺利完成数据结构课程设计的基础。由于计算思维与人类思维差异较大,尽管有些学生学习高级语言程序设计课程非常努力,但对于设计程序解决实际问题仍然不得要领。无论国内还是国外的高校,这都是困扰计算机相关专业教学的一个重要的问题。

(2)存在照搬、照抄他人课程设计的现象。部分学生在接受课程设计任务时没有建立起靠自己的努力认真完成任务提高自身能力的意识,当课程设计时间不够,无法按期完成任务时,从而采用抄袭的办法以图过关。查阅资料,消化吸收他人的解题思路,完成自己的课程设计,这原本是很好的方法;然而,由于数据结构课程设计的题目相对固定,在互联网上很容易查找相似题目的课程设计源代码。这些学生不是借鉴资料中解决问题的方法,而是直接拷贝,或者简单地改头换面之后交给老师。

(3)存在重视编码、轻视设计的现象。由于数据结构课程设计的题目完全可以不运用数据结构的知识直接用程序设计的方法来完成。有些程序设计能力较强的学生习惯于跳过设计步骤直接编写程序代码,看似他们在编程中使用了一些数据结构课程中的存储结构和处理操作,其实根本没有领会和运用数据结构的基本思想和方法。除了编码前的设计外,测试和分析也常常被学生忽略。

(4)很多学生在完成课程设计过程中不能与老师及时沟通。对于学生而言,理想的情况是在课程设计过程中只要遇到问题,指导老师都能及时详尽地指导;然而,这几乎是不可能的,由于学生多、问题多,而且在设计、编码、测试和分析中的每个学生的问题都不同,老师通常需要较长的时间来了解问题,然后才能给予解答,难以保证问题解答的及时性。导致很多学生很少提出问题,老师也不了解具体出现了哪些问题。还有一些学生问题特别多,不愿意靠自己的努力去解决,只要有困难就找老师,造成过度指导的现象。

对于上述问题,运用单一的教学模式是不够的,在数据结构课程设计的教学过程中,导人以人为本的理念是提高教学质量的关键。

3 以人为本理念的工作原则

以人为本是一种管理理念。在高校教学管理工作中贯彻以人为本,既要以学生为本,使学生健康成长成才,也要以教师和教学管理人员为本,调动他们的工作热情和积极性,推动学校各项工作的有序运行。一门课程的教学实施是高校教学管理工作的一个基本单元,是贯彻以人为本理念的一项具体工作。根据数据结构课程设计的具体要求,我们整理出在该课程中体现以人为本理念的工作原则,具体体现在以下几方面。

(1)尊重学生兴趣和发展目标上的差异。学习数据结构课程设计的学生并不都是以软件设计专家等为发展目标。有些学生在了解计算机专业、经历了程序开发体验之后,基于自身的兴趣和特长逐渐树立不同的发展目标,因此,教学管理在坚持课程目标的同时,考虑学生的发展目标和兴趣爱好,这是体现以人为本理念的一项重要的工作原则。

(2)正视学生程序设计基础的差异。对于程序设计基础较差的学生不能简单地降低题目要求,而是在题目设计、启动报告、选题过程、指导、评价、总结等各个方面都考虑鼓励、激励和帮助他们向自己设立的目标靠近。

(3)增加学生与指导老师交流的机会和形式。学生在完成课程设计的过程中需要得到及时指导,由于问题不同,如果采取一对一的有问即答方式,指导老师没有足够的时间;因此,采用灵活多样的师生交流方式也体现了以人为本的理念。

(4)明确区分指导与管理工作。数据结构课程设计指导老师的任务是帮助学生制订切实可行的进度计划、随时检查学生的进展、帮助学生解决遇到的问题。管理任务包括计划安排、过程监控、评价和总结等。这两类任务要明确区分开来,否则容易造成管理混乱,给学生带来困扰,不利于课程设计的顺利完成。

(5)尽可能不额外增加指导教师的工作量。高校教师在承担基本教学任务的同时,还肩负着科研的重任;如果改革使得教师工作量显著增加,教师的积极性就难以提升,这会影响实施效果。所以,教学工作不仅要以学生为本,考虑学生作为教学接受者的实际情况;还要以教师为本,考虑指导教师的主观能动性和客观的任务承受能力,不能为了教学改革无限制地给教师指派额外的工作任务。在构建数据结构课程设计工作实施方案时,应该想方设法提高教师指导工作的效率,确保指导教师的工作量不会大幅增加。

无论是从学生的自身差异出发,还是从教师的实际情况出发,在数据结构课程设计这一具体的微环境中贯彻以人为本的理念,有利于该教学过程的顺利实施,同时更好地诠释了以人为本理念的工作原则。

4 以人为本理念的教学过程

数据结构课程设计的时间安排主要有两种:一是在学期末或者学期初停课1~2周集中进行;二是要求学生利用课余时间分散进行。前者似乎比后者更好,因为教学效果的提升必须以指导老师的加倍付出为前提,基础较差的学生要在短时间内完成任务就需要指导老师更多地指导。

我们采用时间上的梯次安排法,也就是分成3个或者更多个梯次,不同梯次使用不同的时间安排,要求也不同。最高梯次适合基础好的学生,留给学生的时间大概两周,要求在时限前一次性提交课程设计报告和代码。中间梯次适合程序设计基础较强但设计能力弱的学生,分两个阶段完成任务,每个阶段为两周时间,第一阶段根据老师提供的比较粗糙的设计进行编码,第二阶段分析所写代码的不足,改进设计且重新编码。对于编码能力弱的学生,可以借用软件工程中的原型法来进行,把任务划分成若干部分,一步步地做,根据每一步的需要,老师可以提供函数库作为替代部分,但这需要老师投入更多的时间,同时要求整个课程设计的时间延长。

这种灵活的时间安排虽然适合数据结构课程设计的实际情况,却需要老师们的密切配合和精细的管理,而且在教学管理和实施过程中坚持以人为本的理念以取得最佳效果。下面分别按照计划与准备、启动、选题、课程设计、评价和总结6个阶段阐述体现以人为本的数据结构课程设计教学过程。

1)计划与准备阶段。

本阶段的任务是做好人员分工、任务安排和时间安排。参与数据结构课程设计工作人员根据所承担的不同任务分为5类:管理员、指导老师、讲座教授、评审老师和教研室主任。不同人员的职责如下。

管理员由一线教师承担,可以有多个管理员分别负责不同学生的数据结构课程设计管理。管理员的任务是按时间安排收集文档资料、检查学生的进展情况,并做好记录,从指导老师和学生那里收集、总结一些共性问题提交给教研室主任。指导老师主要任务是准备题目并对题目作详细的描述和要求,规定题目的限选人数,帮助学生制订进度计划,指导学生解决遇到的问题。讲座教授的任务是精心准备和主讲各种专题讲座(包括启动报告)。可以根据以往的经验提前总结一些针对典型问题的讲座,并根据收集上来的具体问题充实讲座内容。评审老师的任务是根据管理员收集的文档、资料和进展记录对学生所做的课程设计进行打分。规范了不同工作人员的职责,有利于教学过程的顺利实施。教研室主任负责总体协调、推动进程和最后的工作总结。

数据结构课程设计围绕题目进行,题目主要由指导老师提供,学生也可以自行选题。对于指导老师提供的题目,其本人应该亲自完成该题目的设计、实现和测试工作,并且形成规范文档。每个题目有详细的描述、要求、难度系数和限选人数。题目描述应该留有余地,供学生发挥自己的想象力。题目设计尽量有实际应用背景,如有向图求解最短路径问题,赋予了物流或者旅游等背景之后,题目本身就鲜活了。每个指导老师可以准备多个题目,这项工作往往在第一次进行时花费的时间多一些,以后每年只需做细微调整即可。指导老师把每个题目的描述、要求、难度系数、限选人数、报告文档和代码提交给教研室主任。教研室主任召集所有相关人员对这些题目进行研讨,以便对于题目要求、难度系数、评分标准等方面达成统一。

2)启动阶段。

启动报告以讲座形式进行,主要强调数据结构课程设计的重要意义,介绍与数据结构课程设计相关的各项安排,展示和讲解数据结构课程设计范例。启动报告的主要目的是让学生全面了解课程,调动学生的积极性。讲座教授在主讲各种专题讲座时切忌使用自己设计的例证性错误实例,尽可能使用学生写的文档和代码,分析其中的问题,教给学生解决问题的办法,而不是仅仅告诉学生问题的正确答案。

3)选题阶段。

该阶段主要工作是确定每个学生的题目,同时也就确定了指导老师,选题过程如下:

(1)学生选择已公布的题目(不受限选名额的限制);

(2)该题目的指导老师根据学生的情况和题目难度确定接受选题的学生名单(不得超过该题目的限选人数);

(3)没有被接受的学生可以进行再选题,直至每个学生都找到自己的题目。

确定题目之后,学生同指导老师一起确定题目相关的细节,确定遵从哪一个梯次的时间安排,并制定具体的进度计划。

4)课程设计阶段。

在这个阶段,管理员要严格按照进度计划进行检查,不能按照计划进行的学生要说明原因,请指导老师修改进度计划,同时扣分;同时管理员要及时发现共性问题,教研室主任安排讲座讲解有代表性的例子;指导老师检查学生是否完成了阶段性任务,给出修改意见,老师在此阶段投入的时间很多。从整个教学体系出发,学生在校期间要做的课程设计还有很多,数据结构课程设计仅仅是在高级语言程序设计课程设计之后的第二门。如果老师们在这门具有核心基础地位的课程中投入更多的精力,也就意味着在以后的课程设计中花费的时间会大大减少。

5)评价阶段。

评价数据结构课程设计的方法和标准要兼顾学生作品的质量、努力程度和学习态度,考虑题目难度等因素。对于作业质量评价可以采用部分答辩的方式,即由学生申请后按照不同难度系数分组答辩,最后评价小组评定各组质量等级。

6)总结阶段。

在总结工作中既要对学生的努力予以表扬,也要对所有老师的工作进行评价。可以分别从设计质量、编码质量、设计报告质量等角度对学生作品展开评优活动,颁发优秀证书。优秀名单及优秀作品存入学院评优查询系统,并在校园宣传板进行公告,并附指导老师的姓名。

5 结语

教学中坚持“以学生为本”,尊重学生在兴趣爱好和发展目标上的差异,激发学生的学习激情,用灵活的方法方式不断地保持和加强这种激情和动力,这是提高数据结构课程设计教学质量的必由之路;坚持“以教师为本”是提高课程设计教学质量的根本。我们将以人为本的理念运用到2010级的数据结构课程设计教学,提供A、B、C3种梯次供学生选择。19%的学生选择了A类,教师主要负责课程设计报告撰写指导。48%的学生选择了B类,教师主要指导数据结构设计、物理结构设计、复杂算法设计和课程设计报告。对于选择C类的学生,教师还要帮助他们解决程序调试等问题。我们根据教学进展情况安排了7次讲座。实践证明,学生非常欢迎这种细致的工作方案,96%的学生能够独立完成课程设计任务。然而,尽管利用讲座提高了效率,指导教师的付出比之前要多出一倍。如何减轻教师的工作量是我们下一步关注的问题。

参考文献:

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

[2]李英梅,夏伟宁,邢恺.“数据结构”课程设计教学过程的研究与实践[J].计算机教育,2009(5):68-69.

[3]庞晓琼.案例驱动的数据结构课程设计教学改革实践[J].计算机教育,2009(1):53-64.

[4]姜雪茸.任务驱动教学模式探究[J].兰州教育学院学报,2013(1):147-148.

[5]唐轶媛,蒋荣萍,周卫.项目驱动式教学在数据结构课程设计中的应用[J].轻工科技,2013(1):137-141.

[6]张亚平.“C程序设计”体现以人为本的教育理念[J].计算机教育,2009(12):22-23.

数据结构课程设计总结范文第2篇

关键词:数据结构;教学效果;存在问题;改革总结

一、课程的重要性

《数据结构》课程是计算机专业中一门重要的专业基础必修课,它为操作系统、数据库原理、编译原理、单片机原理等后续专业课程的学习奠定了基础。其次,数据结构课程是计算机相关专业的考研专业课之一。该课程的重要性显而易见。

二、教学中存在的问题

《数据结构》课程的教学目标是全面系统地介绍数据的逻辑结构、存储结构和算法实现,并介绍常用的非数值计算方法,如数据插入、删除、排序、查找检索等,使学生掌握各种数据结构的特点和算法思想,并能结合具体应用,运用各种数据结构和算法解决实际问题。但大部分高校《数据结构》课程的教学效果都不尽如人意,影响课程学致有如下原因:

1.程序设计课程掌握较差,基础薄弱。

2.实践机会少,动手能力差。

3.缺乏课外辅导,学生自学时障碍重重。

三、解决方法

鉴于以上几点,可以从这几方面进行教学改革:

1.加大对先行课程的重视程度。首先加大C程序设计课程的课时。C程序设计课程是数据结构课程的直接先行课,因此,学好C语言,为后续若干课程的学习打好坚实的基础。另外,增加数学及线性代数课程的课时。学习算法离不开数学的思想,学习数组的存储结构也离不开线性代数的应用。最后,增加了32课时的C程序设计课程设计。

2.实际操作方面,计算机专业要求有很高的实际操作技能,而我们的学生在长期被动的学习过程中却养成了勤于动脑,懒于动手的学习特点,这样教出的学生却是不能满足实际工作要求的。因此,数据结构的实验教学要紧密配合理论教学,通过相关实验与课程设计,帮助和加深对数据结构的整体理解,所以在本课程结束前安排两周实践进行课程设计,不要求实现过多的项目,但每个学生都要动手去做,亲身经历从需求分析到算法分析,最后的代码编写与调试这样的过程,从而更深刻的理解数据结构的逻辑结构、存储结构以及在某种具体的存储结构下的运算及其实现方法。

3.构建《数据结构》网络视频课程,加强师生互动环节。为了弥补课外辅导的缺陷,制作与《数据结构》课程内容相适应的视频,尤其是该课程中典型的算法及其实现过程,学生在课外学习时遇到问题可随时登录校园网观看视频,进行查漏补缺,达到巩固知识的效果。另外,在网站上可以设置在线答疑或留言功能,从而实现师生互动。

四、改革成果

根据以上改革方法,经过实施,数据结构课程教学效果颇见成效,简单做以总结:

1.加大C语言程序设计课程的课时,教师能够在足够的课堂时间将课程内容系统化的进行讲解,尤其是数组、指针、结构体等重要知识。从而给数据结构课程的学习打下了夯实的基础。

2.网络视频的构建,给学生提供了更为丰富的学习参考资料。学生在课外复习时遇到不理解的算法,随时登录校园网观看视频,好像再一次回到了课堂,从而解决了疑难问题。另外,校园网上开通了该课程的在线答疑功能,学生可以通过在线答疑功能随时和任课教师进行沟通。

3.加强数据结构课内实践与课程设计的实施,学生可以将课堂上的理论知识应用于实践中。尤其是课程设计的开设,如:简单文本编辑器的设计与实现、科学计算器的设计与实现等,通过案例让学生真正体会到数据结构课程的实用性,并从本质上理解该课程的内容。

五、结束语

《数据结构》不仅是计算机科学与技术专业的专业基础课,也是大多数院校研究生入学考试的专业必考课,因此,《数据结构》课程教学的讨论将会持续下去,最终能找到一条行之有效的教学方法。以上是作者结合自己多年教学经验和体会,提出的若干改革方法,不足之处会继续探讨研究。

参考文献:

[1]李春葆.数据结构(C语言)[M].北京:清华大学出版社,2013

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

[3]武建华.基于ACM模式的数据结构实践教学改革与探讨[J].计算机教育,2007

数据结构课程设计总结范文第3篇

关键词:数据结构;课程设计;教学质量

数据结构是计算机专业的核心课程之一,是计算机软件技术的基础,以数据为中心讲述问题如何在计算机程序中得以实现。该课程的教学不仅要注重学生对理论知识的理解,更要培养学生能针对具体问题,设计合理的数据结构,对数据进行有效的存储、操作,并能完成相应的高效算法。课程设计的教学是整个教学环节中非常重要的一环,它弥补了课堂教学中实践少的缺陷,其教学目标不仅要培养学生缜密的逻辑思维和数据抽象能力,更要培养学生在软件设计领域科学的思维方式,将算法理论和编程实践完美结合,能够在工程实际中灵活应用。因此不断改进课程设计的教学方法,提高教学质量是培养高素质软件人才的迫切要求。

1存在的普遍问题

1.1编程语言基础差

数据结构课程设计通常是在大二进行,算法是基于C/C++语言。虽然学生之前已先修过这些课程,但C++本身规则复杂,面向对象的思想不容易掌握,而学生又没有经过系统训练,普遍存在编程语言基础薄弱、对调试程序的方法不够熟练、程序结构设置不合理、代码编写可读性差等问题。不少同学反映算法能听懂,看教师演示一些实例也觉得简单,但轮到自己编程就无从下手。这种状况直接制约了学生完成课程设计的质量[1]。

1.2缺乏系统的软件开发思想

计算机专业的课程体系中,软件工程通常安排在数据结构课程设计之后,这样学生在进行课程设计时,尚不具备软件开发的思想。遇到问题时,只考虑怎么实现,没有进行整体软件开发的过程规划,忽视了软件的性能、质量、甚至于需求都不甚明确就急于动手编写程序。这样的做法使得课程设计的完成效率很低,经常需要返工。

1.3教师的指导“过多”或“过少”

课程设计中,教师的指导相当重要,但是目前存在两个极端,有的教师对每个课程设计都讲解得面面俱到,如何实现,用什么样的存储结构,所得结果等都作了交代,学生只是被动的接收者,这种“填鸭式”的教学方式制约了学生的创新能力。而另一个极端,有的教师认为课程设计是由学生上机完成的,教师督促学生,最后给出考评,对学生完成课程设计的过程关注太少,很多学生因此敷衍了事。教师如何把握指导的度,如何指导是学生能力能否得到提高的一个重要因素[2]。

1.4考评制度不合理

长期以来,课程设计报告被看成是评定学生成绩的一个重要依据,而对学生软件开发的过程关注不多,学生只要上交了报告就能获得成绩[3]。这样的做法导致学生过度追求报告的整洁度、实验结果的正确性等。甚至部分同学抄袭、直接从互联网上下载报告交差。一个学期下来,除了交了几份报告,学生的收获甚少,课程设计教学效果甚微。因此,必须改革考评制度,才能真正培养学生的动手能力、创新能力。

2提高课程设计教学效果的措施

2.1规范软件开发的过程,培养良好的编程习惯

在学生开始课程设计前,教师首先通过一个具体的实例,从需求分析、概要设计、详细设计、编程测试等各个方面出发,让学生了解完整的开发软件过程。在数据结构课程教学中,所有算法均用可运行程序讲解,避免出现懂算法不懂编程的现象。有意识地让学生强化编程的技巧、调试方法、面向对象思想等内容。

我院数据结构课程组教师采用面向对象的思想,将数据结构中基本算法全部用C++模板类实现,学生通过多看、多读这些规范的程序,取得了不小进步。

2.2梯度命题,循序渐进开展课程设计

课程设计以往是教师根据实验指导书布置课题后由学生完成,部分学生感到难度很大,无从下手。现阶段我们将课程设计改为验证型、验证设计型、设计应用型多种层次,针对各种基本数据结构,教师首先用模板类实现,学生在课程设计时先用实例验证程序,在此基础上,设计出预留的一些函数接口,实现该类的部分功能。最后再针对某一具体问题,由学生开发出完整的程序。这是一个由易入难的循序渐进的过程,学生通过验证型实验更加牢固掌握基本数据结构,再由验证设计型和设计应用型实验学会如何应用数据结构,如何在计算机中实现存储,实现各种需求的功能。

下面以二叉树部分内容为例,首先实现二叉树的模板类如下:

/*二叉树类*/

template

class BinaryTree

{

public:

BinaryTree():m_root(NULL){} /*构造函数*/

~BinaryTree()//析构函数

/*按以先序次序输入结点值的方式建立二叉树的接口函数*/

void Create1(ElemType ch[],const ElemType &endChar);

/*以二叉树的先序和中序次序建立二叉树的接口函数*/

void Create2(ElemType ch1[],ElemType ch2[],int );

/*先序递归遍历二叉树的接口函数*/

void PreorderTraverse (void (*visit)(const ElemType &));

/*中序递归遍历二叉树的接口函数*/

void InorderTraverse (void (*visit)(const ElemType &));

/*后序递归遍历二叉树的接口函数*/

void PostorderTraverse (void (*visit)(const ElemType &));

……

private:

BTNode *m_root;

/*按先序次序输入结点值的方式建立二叉树*/

void _Create1(BTNode* &,ElemType ch[],const ElemType &,int &);

/*已知二叉树的先序遍历次序及中序遍历次序,建立二叉树*/

void _Create2(BTNode * &,ElemType ch1[], ElemType ch2[],int ,int ,int &);

/*先序递归遍历二叉树*/

void _PreorderTraverse(BTNode* ,void (*visit) (const ElemType &e));

……

};

对于这样的模板类,设定的验证型实验为:给定一棵二叉树,验证其先序中序和后序遍历结果。在掌握了二叉树遍历的基础上,设计出模板类中预留的两个接口函数create1和create2。最后,安排设计型实验为创建表达式树;分别用三种遍历方式遍历该树,比较它与实际的波兰式、中缀式和逆波兰式之间的区别;完成给定表达式树的表达式求值运算。这样有梯度地安排课程设计,一方面强化了基本概念,另一方面引导学生完成更复杂的设计。对基础薄弱的同学来说,验证型实验难度不大,基本都能完成,大大增强了自信;对优秀学生来说,挑战设计型实验更能提高自身的能力。

2.3抽丝剥茧,层层深入启发

学生遇到复杂问题时,往往一筹莫展,不知如何下手。教师应教会学生如何从问题本身出发,层层分析,应采用哪种数据结构,用到什么样的操作,在这样的操作需求下应用何种存储方法比较合适,最后细化到具体的函数实现。

如教学计划编制问题[4],要求根据课程和课程之间的先修关系,得到合适的教学计划安排。首先分析这个问题是对有向图进行拓扑排序,课程和课程之间的先修关系可用有向图描述出来。数据结构为有向图,存储方式为邻接表,应用的操作是拓扑排序。拓扑排序的基本思想是先输出有向图中入度为零的顶点,再从图中删除该顶点和所有以它为尾的弧,重复执行,直至图中所有顶点均输出为止。要完成拓扑排序,首先要求出图中所有顶点的入度。拓扑排序算法中还用到了一个辅助的数据结构栈,因此还需要初始化栈、出栈,入栈,判定栈空等操作实现。这样层层分析下来,程序中需要的函数一一明了:创建有向图、邻接表的建立、求顶点入度、初始化栈、出栈、入栈、判定栈空、拓扑排序等。函数层次关系图示如图1所示。

图1函数层次关系图

通过这样的教学方式,学生学会了带着问题去思考,逐步学会将大的程序化解成若干小函数,最终经过整合完成整个设计开发。

2.4加强团队合作,调动每位同学积极性

在课程设计中,针对每一种数据结构安排了一个工程性综合实验,这个综合实验由几名同学组成小组合作完成。团队成员分工明确,一名同学担任组长,负责组织和控制组内的工作进程,强调任务落实到组内每一个同学。

教师布置任务后,每个团队将软件开发流程应用到课程设计中,实质性进行问题规划、模块划分、项目整合等工作。只有团队中每个成员都积极面对,整个团队才能获得优秀成绩,无形之中鞭笞每位同学认真对待。在一个团队中,大家集思广益,可以跟伙伴一起交流,互相学习,形成共同进步的良好局面。

最后在验收答辩时,团队中每个成员都应汇报自己所做工作,教师和其他团队可以提问,交流开发过程中的心得。

2.5改革考评制度,从多角度综合考虑成绩

合理的考评制度可以对课程设计过程进行有效的监控,通过考评体系可以反馈各阶段的进展情况,便于总结经验,找出不足,保证课程设计的质量和效果。课程设计考评有别于普通的课程评分,我分院数据结构课程设计的成绩由几个方面综合决定:课程设计的内容、课程设计的实现以及实验报告。各项考评指标均有一定的权重,能够比较客观公正地确定学生成绩。其中课程设计的内容主要考虑学生所选课题的难易度、工作量多少。实现过程主要考虑完成情况、软件代码规范化、文档规范化、答辩质量等,最后由学生提交设计报告进行总结和讨论。设计报告除了包括常规的系统需求分析,概要设计,详细设计,调试分析和实验结果外,还鼓励他们提出优化方案,对于每个课程设计再“多想一点”,即其他可能存在的求解方法,如已经使用了链式存储结构实现,那使用顺序存储结构如何实现?各种设计的优缺点是什么?如何提高时间空间性能?通过总结,学生对问题有了更加深入全面的理解,锻炼了扩散思维方式,培养了创新能力。同时教师对评价优秀的学生或团队给与奖励,促使学生之间形成你追我赶的良好学习氛围,整体提高教学质量。

3结语

数据结构作为计算机专业的重要基础课程之一,对学生软件开发习惯的培养至关重要。提高课程设计教学质量不仅可以巩固基本知识,还可以让学生适应快速发展的软件开发技术,激发学生学习和研究的兴趣。本文从五个方面讨论了提高课程设计教学质量的措施,通过一个学期的教学实践,从效果上来看,这届学生分析问题、解决问题的能力,综合创新能力,学习积极性都比前几届学生有了明显提高,绝大部分的同学都能顺利完成课程设计并获得较好成绩,这为他们后续的课程打下了坚实的基础。

参考文献:

[1] 庞晓琼. 案例驱动的数据结构课程设计教学改革实践[J]. 计算机教育,2009(1):53-64.

[2] 陈越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J]. 计算机教育,2008(8):54-55.

[3] 李群,赵玉霞,庄波.《数据结构》实验课程设计与探讨[J]. 中国现代教育装备,2007(3):27-28.

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

Discussion and Practice on Improving Teaching Quality of Data Structure Course Design

XU Chong, WANG Libo, JIANG Juan

(College of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China)

Abstract: Data Structure course design is an important professional practice lesson for computer major in university or college. According to the current situation of the low teaching quality for course design, based on the experience in our college, the paper puts forward several steps on improving the teaching quality, and then have been analyzed and discuissed.

Key words:Data Structure; course design; teaching quality

数据结构课程设计总结范文第4篇

关键词课程设计数据结构教学模式问题驱动

1 引言

课程设计是课堂理论教学的延伸和补充。作为一门独立的课程,它应该完成如下基本目标:应能够完成理论与实践的结合,应能够锻炼学生的设计创新能力、分析和解决问题的能力。

数据结构与算法课程是计算机科学与技术专业以及相关专业的一门专业基础课程,同时它也是计算机科学与技术专业课程体系中的核心课程之一,它在计算机科学与技术专业的课程体系,特别是软件系列课程体系中处于承上启下、联系左右的中心地位。大量的实践表明,是否学好数据结构与算法课程对于能否学好计算机本科课程有着相当重要的作用,同时也对后续的工作和研究有着深远的影响。

现今,各大学的数据结构与算法课程和教材的内容都主要集中在“基本数据结构的阐述和分析、基本数据结构的应用、典型基本算法的适当渗透”这三个方面。其中,前两部分是重点,并占据了较多的篇幅,而这些内容的教与学离不开大量的实践,所以在数据结构与算法课程教学中经常会有大量的课程实验作为辅助。

通过进一步的深入分析可以看出,上述基本知识的学习并不是最终目标,而是为到达最终目标打下的基础。显然,从计算机科学与技术专业的知识体系可以看出:如图1所示,学习数据结构与算法更深层次的目标是能够针对实际问题来选择、扩展甚至是设计全新的数据结构,然后设计相应的存储结构并加以实现,从而最终完成问题的求解。可以看出,这一过程是一个融会贯通的过程,是不能通过课程实验完成的,也不可能在课堂教学中就可以建立完整意识的,所以在课程之后需要进行课程设计。

为此,数据结构与算法课程设计应能达到如下基本目标:培养学生应用数据结构基本知识来分析问题、解决问题的综合能力;帮助学生建立计算机问题求解的全局意识,主要是通过认识数据结构在问题求解中的地位来完成全局认识的建立(这一全局认识如图1所示);训练学生从系统的、规范的观点来进行计算机问题的分析、设计、编码、测试等。

上面分析得出的数据结构与算法的课程设计目标是符合一般的课程设计规律的。但数据结构与算法课程具有自身的、明显区别于其他课程的地方,再结合计算机专业的特点,就决定了还需要分析并建立适合数据结构与算法课程设计特点的教学模式。所以本文在第2节就数据结构与算法课程设计和其他课程的课程设计进行了对比分析,在第3节提出了一种基于问题驱动的教学模式,并就其中的关键部分给出了详细的描述。

2数据结构课程设计的特点分析

任何事物都是一般性和特殊性的统一,数据结构与算法课程设计也是一样的。和许多其他课程的课程设计一样,它有着课程设计的共性,也有自身的特性。经过和其他课程的课程设计的对比,作者认为数据结构与算法的课程设计主要具有如下特殊性。

2.1不具有明显的整体性

这是由数据结构与算法课程本身的特点决定的。由于该课程的核心内容主要集中于对各种数据结构的认识上,虽然各种数据结构之间总是存在许多内在的联系,但总的来说还是自成体系、较为独立的。

就这一点而言,数据结构与算法课程就和其他许多课程存在不同,也就使得数据结构与算法课程设计具有相应的特点。比如计算机组成原理的课程设计,可以通过做一个完整的、简化的计算机硬件系统(包括的简化的存储器、控制器、运算器等部件)来完成课程内容的全面训练,并让学生建立对计算机组成的整体认识。机械原理的课程设计可以是一个简单的机械系统的设计,完成对机械原理各部分内容的综合训练。而对于数据结构与算法的课程设计来说,几乎不可能构造一个题目把所有的数据结构都包含进去。实际上这样做是毫无意义的,因为数据结构本身就是不断扩展的,在学习、掌握基本数据结构的基础上能够对知识加以扩展并灵活运用才是真正重要的。

所以在数据结构与算法的课程设计中,应强调问题求解能力的培养,而不像其他课程的课程设计那样来强调综合设计能力。

2.2课程内容具有很强的可伸缩性

从发展状况来看,数据结构与算法的发展是极其迅速的,不断地有新的数据结构和新的算法出现,而且针对不同的问题,数据结构与算法可以做出非常灵活的调整。在这一点上它和许多其他课程不同,比如操作系统中可能会不断出现各种各样的调度算法,但都集中在进程管理中,并总归结于资源管理这一基本框架下,只要冯・诺伊曼体系结构不变,操作系统的资源管理框架就不会改变。而数据结构就不同,如就树结构而言,二元树虽然在概念上较为规整,但在实际问题中,大多都采用树结构的变形,如B树以及其他新型变形等,似乎两者都可成为教学的重点。

正是因为数据结构与算法的可收缩性,培养针对问题的数据结构设计能力才是最重要的。

2.3具有极其广泛的渗透性

计算机问题领域包括许多其他行业的问题,如经济领域问题,只要涉及到对数据的组织与处理,都能或多或少地找到数据结构的用武之地,所以培养依托数据结构完成各类问题求解的“嗅觉”是十分必要的。

总的来说,基于数据结构与算法课程的特点,建立起与之相匹配的课程设计教学模式,这样才能更好地完成教学。

3基于问题驱动的课程设计教学模式

在以上分析基础上,如图2所示,本文提出一种基于问题驱动的课程设计教学模式。

3.1问题来源

数据结构与算法课程设计的问题来源(即教学内容)主要包括:基本数据结构在解决实际问题中的应用;基本的算法策略在解决实际问题的应用;新兴数据结构的相关问题;新兴算法的相关问题及实践;经典问题的经典算法;典型系统的计算机模拟;需自行设计数据结构和算法来解决的实际问题。

3.2问题描述

在问题的描述上,侧重于用半自然语言进行描述。完全的形式化描述将减少问题分析能力的培养力度,完全的自然语言描述有包含太少的启发信息。

一般来说,要求问题的描述必须能够清晰地说明问题的含义和目标,并就采用的数据结构适当地给出启发,其中,也可以设计一些题目故意将问题的目标隐去,加强对学生问题定义能力的培养。

3.3问题求解的迭代性

问题求解是不能够一蹴而就的,一开始设计(选取)的数据结构与算法往往存在这样或那样的问题,建立逐步求精、多次迭代的问题求解思维是必要的。

为此,我们需要在学生的课程设计过程中,鼓励学生对其解决方案进行理论分析和实验分析,鼓励学生大胆提出优化方案,鼓励其积极主动的创新意识。

3.4结论形成

最终的结论(体现为课程设计报告)应以数据结构的描述为核心,并集中体现如何针对问题来完成数据结构的设计与优化。

其中,数据结构的描述应以抽象数据型(ADT)为基本手段,并在抽象数据型的基础上,引导学生深刻理解和掌握数据的逻辑结构、性质、特点、基本操作和存储结构的特点、实现和优化,并引导学生在实际应用中有意识地去为实际问题选择恰当的存储表示。

结果分析应采用理论分析和实验分析并重的方式,应适当加大实验分析的力度,使得学生能在分析结果的基础上形成总结并产生启发,最终能形成问题求解过程的全局意识。

3.5结果考核

鼓励学生选择需要设计新型数据结构(至少需要对已有数据结构作出修正)的题目,而不仅仅是实现一个定义明确的数据结构;鼓励优化方案的提出、分析和验证;鼓励学生扩展知识体系,并建立问题求解的修养;鼓励创新意识和主动学习意识的培养。

4 结束语

针对数据结构与算法课程设计的一般性和特殊性分析,本文在提出该课程设计的基本要求后,更提出了适合于数据结构与算法课程设计的“以问题求解为核心”的教学模式。近年来,经过对计算机科学与技术专业本科生的多次实践,可以看出,这一模式可以取得很好的教学效果。

参考文献

1 耿蕊,李敬有,邓文新.关于计算机基础课课程设计的研究.高师理科学刊,2005,5

2 郭福顺,廖明宏等.数据结构与算法基础.大连:大连理工大学出版社,2000

3 王伟,王东宏.计算机控制技术课程设计的实践.江苏大学学报(高教研究版),2003,10

数据结构课程设计总结范文第5篇

关键词:数据结构;多维一体;实践教学体系;教学改革

1、研究背景

1.1 数据结构课程的重要性

在专业课程体系中,数据结构课程不仅是计算机科学与技术专业的核心基础课程,同时也是信息与计算科学专业、电子商务专业和信息安全专业等与计算机技术关系密切的专业的必修主干课程。在程序设计与软件开发中,数据结构课程是建立问题的数据模型、进行算法分析、设计与实现的奠基石,特别是非数值计算模型问题的程序求解完全离不开数据结构课程所介绍的知识体系和方法;在研究生入学考试中,数据结构课程是计算机专业的必考课程,是提高和评价学生专业素质和技能的重要方面,一定程度地影响着学生的深造和发展。没有学好数据结构课程的专业从业者,在专业能力的提升上将遇到极大的瓶颈,无法突破。总之,数据结构课程的教学在专业教学体系中有着举足轻重的地位。

1.2 数据结构实践教学的重要性

目前,高等院校教学主要分为理论教学和实践教学两大块。数据结构实践教学主要有数据逻辑结构及其存储结构的选择与设计、建立在特定存储结构上的算法分析、设计与实现等教学活动,是提高学生程序设计实践能力的保障,同时也为提高学生的创新能力与创新意识奠定坚实的基础,是理论教学环节所不能替代的。学生在实践活动中会出现大量的问题,其中一些问题在理论教学环节是无法出现或无法发现的,因此,只要学生能在发现问题后,找到合适的方法和途径去解决,就可以提高学生系统的综合分析问题和解决问题的能力,能体现理论与实践的完美结合。

1.3 数据结构实践教学的现状

从数据结构教学过程的实际情况看,绝大多数教师存在“重理论轻实践”的现象,主要表现在:

(1)实践教学的地位未能真正达到与理论教学平等的高度,缺乏统一的基本教学要求和大纲,许多学校没有形成完整且科学的专业实践教学体系。

(2)在实践教学内容上大多局限于验证性实验,没有合适的实践教学设计,没有高质量的实践教材与实验指导。

(3)从该门课程对学生的考查情况来看,考查形式单一,一般是用一份试卷来反映学生的掌握情况,而试卷情况又是理论方面考查的多,实践方面考查的少,一般是最后一道题要求学生设计算法并用程序实现,其他的基本是对理论的考查。

(4)大多数系部及教师对于实践环节的考查,只有形同虚设的制度,没有实施保障与监督机制,教学过程容易被“偷工减料”,很难真正落实。

综上所述,为了提高数据结构课程的教学质量和学生对该课程的满意程度,为了规范数据结构实践教学过程,对数据结构实践教学体系进行优化设计研究是非常必要的。

2、数据结构实践教学体系的设计原则

数据结构实践教学体系必须科学合理,内容必须完整,方法必须开拓创新,其设计主要遵循以下原则:

(1)理论教学与实践活动高度统一,不能重理论轻实践,或重实践轻理论。

(2)实践教学层次化,实践活动应遵循从简单到复杂,从验证、设计到综合,再到创新的认知规律。

(3)实践教学体系符合湖南人文科技学院学生的基础现状。

3、数据结构实践教学体系设计

湖南人文科技学院自2004年升为本科院校以来,开设数据结构课程的专业有计算机科学与技术、信息与计算科学等6个专业。数据结构课程的教学改革一直在有计划、有步骤地进行,其教学改革紧紧围绕提高学生的程序设计能力、创新能力的目标,多维度地进行展开,逐渐形成了一套比较成熟的多维一体的实践教学体系。

3.1 数据结构实践教学与理论教学地位平等化

为了强化数据结构实践教学,避免师生在实践教学环节上“偷工减料”,蒙混过关,我们将其单独开设成一门课程,而不再是理论教学的附属。该课程周课时2学时,共36课时,有统一的教学大纲、考试大纲、实验大纲和课程设计大纲。教师必须跟理论教学一样有备课、上课、辅导答疑、作业与实验报告批改等环节,考试也同样分为笔试、机试和课程设计3个部分。笔试部分集中考查各种数据的逻辑结构、存储结构及其算法分析与设计等知识;机试部分集中考查常见算法的程序实现和简单应用;课程设计部分主要考查在给定特定问题的情况下学生综合分析问题与解决问题的能力。

3.2 数据结构实践教学层次化与阶段化

人的认知遵循由简入深的渐进式发展规律,数据结构实践教学也必须遵循人的认知规律。因此,可以将数据结构实践活动划分为验证型实践、设计型实践和综合应用型实践3个层次。同时,针对线性结构、树形结构和图状结构3种逻辑结构和查找与排序两种常用算法,将数据结构实践教学分为5个阶段,每个阶段都进行总结和综合应用训练。最后每个学生都参与课程设计,将所学知识综合应用到实际问题中,进行问题分析、数据结构设计、算法设计与分析及算法的最终实现。

3.2.1 3个实践层次

1)验证型实践。

验证型实践是通过运行教材中已实现的或学生自己编写程序实现的算法对算法及其相应理论进行正确性和运行效果的验证。通过验证型实践可以使学生进一步理解知识的本质与内涵,为知识的应用打下基础。验证型实践最好安排在课堂教学的当天或第二天,这样符合人类记忆活动特点,也能提高课堂教学效果。

2)设计型实践。

设计型实践是指将所学的一个或多个知识点用于解决简单问题。通过设计型实践,学生可以初步掌握知识的应用场合,清晰地把握知识点之间的联系和融合,为以后解决复杂问题奠定基础。教师应该设计一些需要应用多个知识点来解决的问题,如线性表的逆转问题涉及线性表的创建、遍历、插入等算法;数制转换可以用栈来完成,则涉及栈的建立、人栈、出栈,而栈其实就是线性表,也会深化对线性表的理解。

3)综合应用型实践。

综合应用型实践是指将所学的数据结构的知识、思想和方法用于解决较为复杂的问题。综合应用型实践不可避免地会涉及多个知识点,学生必须对每个知识点及其联系都很熟悉。因此,通过综合应用型实践能有效提高学生的问题分析能力、存储结构的设计和算法的设计与实现能力,并加深学生对数据结构内容的整体把握。

3.2.2 5个实践阶段

根据相对独立的章节内容,数据结构课程可以按章节和教学进度分为5个阶段,即按线性结构(线性表、栈与队列)、树形结构、图状结构、查找与排序5个部分划为5个阶段。每个阶段都会有3个层次的实践,最后都要以综合应用型实践收尾,并提交实践报告。教师评阅后要求1~2个学生上台讲解其实践过程、方法和技巧等,以提高学生的胆量、表达能力和综合应用能力等。

3.2.3 课程设计

课程设计是在课程教学结束后进行的综合实践训练,涉及的知识不仅有数据结构、软件开发内容,还有课外知识。成功的课程设计能实质性地提高学生分析问题、解决问题的能力,能大幅提高学生的算法分析与设计水平及程序设计水平。课程设计的时间可以安排在课程结束后,约1-2周时间。教师可以提供参考题目,如库存管理系统、混合表达式求解、贪吃蛇游戏、压缩软件、管道铺设施工的最佳方案选择、哈希查找算法的应用、大量数据的排序算法的实现与比较等。课程设计部分以竞赛形式组织,成绩优秀的要予以公布和奖励。

3.3 数据结构实践教学形式多样化

教学形式是教学活动中师生相互作用的结构形式,是教学论中的一个重要问题。数据结构实践教学以班级授课为主要组织形式,个别教学和分组教学为辅助形式进行。个别教学主要体现在答疑,即安排充足的答疑时间,这是一种很有效率的形式。因为学生经过学习之后,带着问题或疑问来问教师,经过教师讲解,会产生豁然开朗、茅塞顿开的效果。分组教学主要体现在任务分组、协作完成,以及共同接受检查。

3.4 数据结构实践教学成绩评价多元化

成绩评价多元化机制相比传统的仅以考试定成绩的方式,有着积极的导向作用,能促进学生全面发展、全面提高。多元化评定方式,主要有两个方面,一方面由平时成绩、期中成绩和期末成绩组成;另一方面由教师评价、答辩评价、组内互评和组间互评结合,其中组内互评和组间互评部分,评分者必须有评价依据和结论说明,不能信手拈来随便评分。

3.5 数据结构实践教学制度化

一个科学的体系必有一个完善的科学制度。“不以规矩,不成方圆”,只有制度化,才有管理依据,必须做到有制度可依。数据结构实践教学也应如此,很多院系制定的实践教学制度形同虚设,没有执行,主要是没有把数据结构实践教学当作一门课程来教学,而是当作理论教学的附属物,所以应把数据结构实践教学开设成一门课,因此必然要配有相应的制度,也就能得到实施和监督。教学制度应该包括教学过程制度、教学评价制度和教学监督制度。

4、数据结构实践教学体系的应用实施和改革成果

从课题开展到实施应用,经过课题组多年的努力,取得了较好的成果。第一,逐渐形成了完善科学的数据结构实践教学体系,主要包括“数据结构实践教学大纲”“数据结构实践教学考试大纲”“数据结构实践教学评价机制”和“数据结构实践教学监督机制”;第二,提高了学生的自主学习兴趣、学习能力、程序设计能力和团队合作能力,学生成绩显著提高,并多次在湖南省程序设计大赛中获得好成绩,课程设计质量整体较高。

5、结语

数据结构课程设计总结范文第6篇

【关键词】数据结构;知识体系;教学设计

1 课程的地位与作用

《数据结构》是计算机科学与技术专业的核心专业基础课程,是计算机程序设计的重要理论和实践基础,是计算机理论与技术的重要基石。《数据结构》上承高级语言程序设计,下启算法分析与设计,是计算机科学与技术人才素质框架中的脊梁骨,对学生能力培养至关重要,向来是计算机本科教学的重中之重。调查表明已毕业的学生通过他们的工作实践认为《数据结构》是最有用的课程之一,这也从另一方面说明了该课程的重要性。

计算机科学与技术专业的培养目标之一是掌握计算机科学与技术的基本理论、计算机软/硬件基本知识及应用技术,《数据结构》在培养目标的实现中具有举足轻重的作用,是理解计算机科学与程序开发技术的关键课程。作为一门重要的专业必修课程,《数据结构》课程既是对以往课程的深入和扩展,也是为将来更加深入地学习其他专业课程打下基础。课程中所学习的排序问题的算法,以及基本的树、图等数据结构,是计算机科学的基本功。B+树等高级数据结构,也是数据库、操作系统、编译原理、计算机网络等后续课程的基础。《数据结构》是计算机专业考研的统考课程,也是很多大赛(“蓝桥杯”、ACM等)必涉及的知识。

《数据结构》与其它课程关系如图1所示。

图1 《数据结构》与其它课程关系

《数据结构》在培养目标中的作用如图2所示。

图2 《数据结构》在培养目标中的作用

2 课程的教学目标与主要内容

2.1 课程的教学目标

学习本课程后,应达到下列基本要求:

(1)理解数据结构的基本概念;

(2)熟练掌握线性表、栈、队列、树、图等常用数据结构的基本运算的实现及应用;

(3)熟练掌握排序和查找的常用算法及应用;

(4)能够对算法进行时间复杂度度、空间复杂度的分析;

(5)培养学生分析数据、组织数据的能力,能够根据实际问题来选择合适的数据结构,设计有效的算法。

2.2 教材与主要参考资料

教材

耿国华《数据结构(用C语言描述)》,高等教育出版社,2011年

教材选择的依据:

(1)该教材跟踪技术发展需要,体系科学,是“十一五”国家级规划教材。

(2)该教材理论的阐述由浅入深、通俗易懂。

(3)该教材理论结合实际,配有大量的例题、习题与实习题。

主要参考资料

[1]严蔚敏,吴伟民《数据结构(C语言版)》,清华大学出版社,2006年

[2]张铭,王腾蛟,赵海燕《数据结构与算法》,高等教育出版社,2008年

[3]朱战立《数据结构――使用C语言(第4版)》,电子工业出版社,2009年

[4]王晓东《数据结构(C语言版).》电子工业出版社,2007年

[5]西北大学数据结构精品课程网站

http//:/datastr

[6]北大数据结构与算法课程网站

http:///pkujpk/course/sjjg/

[7]洛阳理工学院数据结构精品课程网站

http//:/sjjg

[8]洛阳理工学院数据结构精品资源共享课程网站

http//:/ds

2.3 知识体系

《数据结构》知识体系可分为分为三大块,如图3所示。

图3 《数据结构》知识体系

数据结构课程的基本知识模块是以数据的逻辑结构为主线,顺序介绍线性结构(线性表、栈、队列、串、数组、广义表)、树形结构、图结构。在介绍每种数据结构时,再讨论其存储结构以及相关的算法。在介绍完基本的数据结构及其存储结构和相关的算法后,介绍了两种常用技术:查找和排序。

3 课程教学内容安排

3.1 课程重点、难点

重点:线性表、栈、队列、二叉树、图典型数据结构的逻辑结构、存储结构和操作的实现方法,各种典型的排序和查找算法思想。

难点:各种数据结构的操作实现和应用

第1章是对数据结构课程的认识,基本概念比较多,概念要讲清楚、准确,第一章要通过丰富的例子讲解如何分析算法时间复杂度,这是贯穿整门课程的内容,也是本课程的一个难点,第2章是整个课程的重要基础,要讲得十分详细,为后面的章节打下良好的基础,第3章的栈与递归的实现是本书的一个难点,要通过例子讲透,并且在第6章还要进一步地讲递归到非递归的转换。第四章内容较简单,而且学生在高级语言程序设计中学习过字符串,因此留给学生自学,也可以培养学生的自学能力。第五章数组和广义表一般讲解即可。第6章的二叉树要详细讲解,第7章的几个关于图的算法较难,要结合例子讲解,第8章中的难点是平衡二叉树的调整和B树,要通过例子把算法的思想讲清楚,使学生能实际操作。第9章要把各种排序的思想、特点讲清楚,特别是较难的希尔排序、快速排序、堆排序、基数排序一定要结合实例讲解。

3.2 课时分配

表1 总课时:72;理论授课:58,实验:14

4 课程实践环节

数据结构是与实践紧密结合的课程,学生学习的理论必须经过大量的实践才能更好的掌握,因此必须强化实践教学。数据结构实践分两部分:一部分是随课程进行的实验,另一部分是课程结束后为期一周的课程设计。通过合理、有效地设计上机题目,改进实验考核方式,调动学生的积极性,启发引导学生掌握基础理论并能创新应用,增强学生综合运用有关知识的能力。

实验内容包括六个实验项目,分别为:线性表的基本操作(2学时),栈的基本操作(2学时),队列的基本操作(2学时),二叉树的建立及遍历(2学时),图的遍历的实现(2学时),宿舍管理查询系统(4学时)。其中宿舍管理查询系统实验为三性实验。

课程设计是课程结束后进行的很重要的实践环节,本课程课程设计给出14个题目,这些题目都是综合性的,学生可任选一题,完成后要写出课程设计报告。通过课程设计,使学生进一步理解和掌握所学各种基本知识,培养学生综合运用所学的理论知识和方法独立分析和解决问题的能力;训练学生用系统的观点和软件开发一般规范进行软件开发,使学生具备软件工作者所应具备的科学的工作方法和作风。

学生完成实验后,不仅要求学生提交高质量的规范的实验报告,还要引导学生互相交流,开阔视野。好的实验作业要放到班级公共邮箱里和所有学生共享。

5 课程的建设情况

5.1 课程资源情况

该课程教学文件完备。通过多年的教学,积累了必要的一些辅助教学资料(包括教学参考书、参考课件、声像、影像等),并且使用效果良好。补充的学习资料有:

(1)教学网站:http:///sjjg/

http:///ds/

(2)搜集了大量探讨数据结构理论与算法、介绍学科前沿动态的中、英文学术论文和硕、博论文,对其分类整理后在课程教学网站上提供下载链接,以供学生深入研究、学习;

(3)自编《数据结构实验指导书》;

(4)多媒体电子教案的纸制版和网络版;

(5)数据结构与课程实验指导书的纸制版和网络版;

(6)自编的算法演示器;

(7)Flash课件和Flash算法演示;

(8)图书馆内,国外优秀的经典教材。

5.2 实验实习条件

所有实验在计算机系机房进行,机房现有的实验平台功能齐全,课程中所涉及的实验项目均可在平台上完成。目前课程实验大纲中所列的实验开出率达到100%,实验教学效果良好。

5.3 课程成果

该课程2010年被评为河南省级精品课程,2012河南省级精品资源课程。

6 教学设计

《数据结构》是一门理论与实践相结合的课程。由于理论的抽象性,学生难以建立起数据结构的相应算法概念,容易产生畏惧和茫然的情绪。因此教学中在积极引导学生、启发学生,激发学生学习的积极性。教学以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学自主学习、巩固课堂所学内容。另外,组织独立习题课,针对学生作业中出现的典型问题进行深入探讨。

在教学中要贯彻“以理论学习为主线,以课程实验、课程设计为补充”的教学思想。

6.1 精心组织教学内容

分析学生的需求和现实,同时紧紧抓住教学目的,参考相关院校的教材和教学计划,取长补短,参考考研大纲、软考大纲,对课程的内容进行严格的筛选,删除一些较深且应用不是很广泛的内容,对于重点的内容要精讲、细讲,而对于有些较简单且与先修课程交叉的内容(如字符串与数组),就粗讲,甚至可以留给学生去自学。这样重点突出,简洁明了。在课程内容的安排上由浅入深,循序渐进。对每种数据结构都按三个层次来组织教学内容,并且把这三个层次的思想贯穿于数据结构教学的各个环节。第一个层次,基本概念、方法,这是最基本的内容,学生必须掌握,在学生很好地掌握了这个层次的内容后,可进入第二个层次,基本概念、知识的简单应用,这一层次是对基本概念、知识加深理解,这个层次学生必须达到。第三个层次就是基本概念、方法的深入应用,把所学的知识、方法串起来灵活运用。要达到这个层次,需经过大量的训练才行。

6.2 实现数据结构课程与其先修和后续课程的无缝衔接

程序设计语言(如C语言)是本课程的一门非常重要的先修课程,数据库原理、编译原理、操作系统是该课程的后续课程,这些课程不能各自为政,而要无缝衔接,教这些课程的老师要互相交流,这样在讲程序设计语言时可以有的放矢的把和数据结构联系紧密的内容预先告知学生,这样学生就会对相关知识印象深刻,到数据结构课中就很容易用的得心应手。在数据结构课中讲到各种后续课程中用到的数据结构时也告诉学生,并且在后续课程中用到相关数据结构时提醒学生这是这种数据结构在本课程中的应用。这样使学生的知识一脉相承,使学生在学习各门课程时把知识融会贯通。

6.3 精讲多练,加强实践环节,培养学生分析问题解决问题的能力

数据结构既有大量的理论又是实践性很强的课程,学生要很好地掌握这门课,必须要有一定的理论知识,又要经过大量的上机实践。因此,针对应用型本科的特点,在教学过程中,即注重理论,又重视实践,加大上机实践的力度。实践由与理论课同时进行的上机实验和理论课讲授完毕后的课程设计两部分组成。对所学的每一部分内容都要要求学生完成相应的实验习题。整个实践过程要结合教学进度与学生的实际情况,制定实践的内容。每部分的实验习题必须精心挑选,和上述三个层次对应,分为基础与验证型实验、设计与综合型实验,开发与创新型实验。既要把基本知识掌握好,又要会灵活运用。基础与验证型实验是基本的、较简单的题目,主要结合课堂理论教学内容展开,学生可以对在课堂上学到的基本算法进行验证;设计与综合型实验是具有挑战性的较难的新颖有趣的题目,让学生充分利用所学的理论知识进行相对较复杂的应用设计,培养学生综合能力;开发与创新型实验培养学生的创新意识,提高综合能力和创新实践能力。

6.4 多样化的教学方法

6.4.1 启发式教学

教师主要起引导的作用,激发学生的学习兴趣,发挥学生的学习积极性,与学生进行互动,鼓励学生对教学内容提出问题,师生共同讨论,提高教学和学习水平。鼓励学生多动脑子进行思考,在学习过程中不拘于以往的解法,对同一个问题可以提出不同的解法,深化对问题的理解。另外还要强调学生自己学会对知识的总结、梳理、推演和挖掘。总结是教学中一个非常重要的环节,不可忽视。通过对所学内容的总结、梳理、推演和挖掘,理清内容的内在联系,使知识条理化、系统化,加强对知识的理解和掌握,培养学生的归纳总结能力和思维创造能力,对所学内容提炼出精华的东西。(下转第260页)

(上接第167页)6.4.2 对比式教学

对同一问题,引导学生从不同的角度去思考,找出多种方法来解决。比如,在解决约瑟夫环问题时,可以采用循环链表作存储结构,或采用线性表的顺序存储结构,也可以采用数组作存储结构。这种对同一问题寻找不同算法实现的教学方式,有效地开阔了学生的思路,同时通过对不同算法的比较,加深了学生对算法的理解和掌握。

6.4.3案例教学

通过实例引入知识点。比如讲最小生成树可以通过城市间建立通信联络网为例引入最小生成树及其求解算法,再比如讲最短路径可以通过去旅游选择最短路径为例引入最短路径及其求解方法。

6.5 把课程与考研、软考、相关竞赛有机的结合起来

数据结构是计算机专业考研和软考的必考科目,在教学过程中有意识地把考研和软考引入教学中,使学生学完本课程后能够从容应对考研和软考中的数据结构题目。组织和鼓励学生参加程序员,高级程序员证书考试,辅导学生参加各种编程竞赛比如ACM大赛。

7 考核方法

要加强平时的学习过程管理,不定时地进行一些随堂的小测试,课堂提问等。考试以学生完成日常作业和实验环节为必要条件,期末考试采用笔试方式。成绩评定由三部分组成:期末考试占总成绩的60%,平时成绩占总成绩的20%,实验占总成绩的20%,综合考核学生该科成绩。

8 结语

《数据结构》对计算机科学与技术专业的学生来说是非常重要的课程,组织好教学,使学生通过该课程的教学,很好地掌握数据结构的相关知识,为今后的学习奠定良好的基础是非常重要的。

【参考文献】

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

数据结构课程设计总结范文第7篇

【关键词】数据结构;基本知识;课程实验;方法;改革

中图分类号:G423.07 文献标志码:A 文章编号:1673-8500(2014)01-0068-01

一、数据结构内涵

数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。目前,对数据结构研究已经成为世界上一些非数值量的信息结构及其处理方法,它被定为计算机科学与技术相关专的重要课程,同时也是应用数学、管理科学等很多专业的一门基础课程。为了更好有成效的使用计算机、让计算机的性能得到充分发挥,数据结构的有关知识的学习和掌握是非常必要的,大量的很难的算法存在于数据结构中,分解与抽象是它的核心技术,要想让学生掌握这门核心技术,就要认真扎实的通过对课程内容的学习与实践,构造性思维训练的特征得到有效的体现,提高学生的操作能力和实际应用水平。

二、数据结构课程设计改革

通过课程设计来让学生进一步掌握数据结构的整体框架和知识层次,课程设计的内容主要是根据三种逻辑结构(线性、树型和图型)把课程分成三部分贯穿下来,对每一部分又采用层次结构,即逻辑结构、存储结构和在该存储结构上的操作及相应的算法。结合讲过的一个和几个典型的算法给学生留一个实际问题,让学生编程序上计算机去处理。如:讲线性问题的插入和删除这部分时,就留一作业题:把学生成绩按学号录入进计算机中,一涉及到实际问题就会用到许多的相关知识,需要查阅大量的书籍和网站。不过,得到的收获也是可观的。

三、数据结构教学手段和教学方法的改革

实现以教师主导下的以学生为主体的教学模式。在具体的教学手法方面,把学生为教学的主体,坚持实行任务驱动的教学手段,诱导学生主动学习,相互协助学习,共同进行探索与研究,这种教学方式学生很容易接受并受到好评,取得成效很显著。研究算法的具体法则是给学生的算法实现的有关程序和算法实现的思路。每一节课上完后,对讨论过的内容作出总结,对本节极容易出错的状况做好归纳,梳理出具体条款。学生对每一种数据结构的特点和实现都能够牢牢地掌握。除此之外,做好与学生沟通协调工作,重视课后辅导。课下辅导除在课堂中以及学生上机进行辅导之外,还有一种办法是和学生取得联系,利用网上交谈的手段,利用这种手段,掌握学生的思想动态、学习状况,迅速回应学生在自主学习及课后学习时遇到的疑难问题。教师在数据结构教学手段上,要精心设计教学内容,对较困难的算法制作以及收集了大量FIASH演示动画方面的材料。把抽象的概念和空间结构加以具体化、形象化,使所教的数据结构内容直观、生动、提高了学生的学习的积极性,同时提高数据结构教学质量和学生的学习效果。

四、数据结构基本知识部分教学的改革

数据结构的基本知识是这门课程的重点,包括数据的逻辑结构,相应逻辑结构的存储结构,以及在此存储结构上的相关操作及算法等,这些内容必须要讲,也很枯燥,教学时可以根据实际情况做一些调整。

教授学生理解数据结构这门课,同时也是提高学生的学习兴趣的实践过程。通过举例分类、总结学生参与进来的办法来帮助学生理解数据的逻辑结构和存储结构等概念。首先从实际情况入手来引出逻辑结构的概念:学生都知道计算机能进行图书管理,能和人对弈,可是学生要明白计算机之所以能干这些事是靠人工编的程序输入到计算机中来支配计算机工作的,程序怎么编,不同的问题有不同的编程思路,那么实际中的问题基本上就是这么三类;线性问题、树型问题和图型问题。接着通过分析上面图书管理问题,下棋问题,以及修路问题来让学生明白什么是线性、树型和图型问题,接着给一定的时间让学生每人想出一个线性、树型和图型关系的例子,在生动活泼的气氛中把实际问题过渡到这门课中来,实际生活活跃了学生的课堂气氛。反过来,学生也把数据结构的理论知识应用到了实际中去,最后总结到实际问题的线性、树型和图型的逻辑关系是人类对实际问题的逻辑思维。在数据结构这门课中把这种逻辑关系叫做逻辑结构。要让计算机处理实际问题必须把从实际问题中抽象出来的数据和它们之间的逻辑结构存储到计算机中,计算机才能够对实际问题进行处理,那么怎么存储呢?逻辑结构在计算机中的存储方式在数据结构中就叫存储结构。逻辑结构和存储结构这两个概念学生就顺其自然地接受下来。

五、数据结构课程实验部分教学的改革

进行实验教学改革,加强实践教学环节。让学生学以致用是教师传授知识的目的,因此明确教学目标,把培养学生的能力放到重要位置,重视数据结构实践性环节。数据结构课程的让学生上机实习,是对学生极有利全面综合训练,它与课堂上听老师的讲解、自主学习和独立训练是相辅相成的,也是教学中不可或缺的一个教学环节。因此为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,制定了实验大纲,实验指导书,实验手册等设计了系统的有效的实验项目,规范实验报告,提高学生编程能力和专业技术水平。

在学生理解了数据结构的逻辑结构和存储结构这两个概念的基础上,接着让学生学习计算机对数据的操作和算法。算法一般都是用C语言来描述的,要想让学生掌握好每个操作的算法,一定要学生自己编出完整的程序,直接上机训练每个算法。在理论课上把每种逻辑机构联系到的操作进行初步归类后,接着讲每种操作的算法。讲算法时主要采用以下方式帮助学生理解和掌握:

1.尽量用自然语言描述清楚,把每句自然语言对应地用C语言写出来,这就是程序。学生感觉在明白了算法的思路后,写程序就像用英语说话一样。

数据结构课程设计总结范文第8篇

关键词: 《数据结构》课程 教学效果 教学改革

1.课程介绍

《数据结构》是计算机专业的一门重要的专业基础必修课程,是计算机专业后续课程的基础,主要用于处理非数值计算问题。学习《数据结构》就是要让学生掌握数据在计算机中的表示、组织和相应结构上的算法设计,以便学生在软件的开发过程中能选择适当的逻辑结构、存储结构,高效设计算法,并初步掌握算法的时间和空间分析技术。

《数据结构》课程主要介绍:线性表、栈、队列、数组、串、树和二叉树、图等基本数据结构及其应用;排序和查找的原理与方法。通过本课程的学习,学生能较熟练地掌握数据结构的基本概念、特性,存储结构及其相关算法;熟悉它们在计算机科学中最基本的应用;培养和训练运用高级程序设计语言编写结构清晰、可读性好的算法及初步评价算法的能力;为《编译原理》、《操作系统》、《数据库系统原理》等后续课程的学习,以及计算机软件的研制和开发打下一定的理论及实践基础。

2.教学效果不佳的成因分析

《数据结构》课程的基础性,以及该课程在计算机专业全国考研统考专业课程中所占的比重,使得大多数学生都能较认真地对待本课程。但在实际的教学过程中,我发现教学效果一直不尽如人意,不仅表现在期末考试补考率居高不下,还表现在课程实验和课程设计两个实践环节中,学生难以将课堂教学内容转化为可实际运行的程序,以及解决实际问题的能力较差。学生普遍反映的问题是:课堂上听老师讲解觉得很好理解,但等到要学生自己选择数据结构,并设计算法来解决实际问题的时候就感觉力不从心了。部分学生觉得数据结构理论性太强,过于抽象,在实际的应用中很难抽象出各种数据类型。另外一个常见的现象就是只知道本课程很重要,但不知道重要在什么地方,与实际生活相脱节,不能用来解决实际问题。教学效果不佳,我认为大致有如下原因。

2.1先修课程基础不扎实

《数据结构》的直接先修课程主要是高级程序设计语言(我校为C语言),但是同时也要求学生具备一定的数学知识。对大多数学生而言,数学课程和高级程序设计语言的学习也是有一定难度的,所以部分学生无法理解课堂上讲的例题和思路,难以进行算法分析、比较算法性能和算法的编程实现。

2.2教学方式单一

现在很多高校在《数据结构》教学过程中都已经采用多媒体的形式进行教学,我院就是这样。我认为,多媒体教学是把双刃剑,即使用不当不但不会带来任何益处,反而会带来弊端。曾有学生向我反映,通过PPT,传授的信息量太多,同学们理解困难,跟不上节奏,严重影响了教学效果。

2.3没抓好课程实验环节

课程实验环节是紧密配合理论教学,通过实验,帮助和加深学生对相应数据结构的物理结构和逻辑结构和编程实现等各个环节的整体理解。但是学生面对程序错误的时候,总是显得手足无措,老师如若不能采取相应的措施,抓好课程实验环节,则会直接影响教学效果。

2.4理论教学与实际应用相脱节

数据结构课程是建立在抽象数据类型的基础上,用于解决非数值计算问题的一门学科,内容相对比较抽象、琐碎、庞杂,并且涉及很多概念和技术。因此,如果单纯地按照课本照本宣科,就不能和实际应用相结合,学生就会很难接受。而即使有相关的实验,但是由于基本上都是一些验证性实验,做完结束,实际上也并没有体会到知识的实质,更别说做到融会贯通了。

3.教学改革探讨

3.1做好课程衔接

数据结构课程的直接先修课程虽然只有高级程序设计语言一门(C语言),但实际上与高等数学和离散数学中的相关知识点也联系甚密,做好课程衔接是数据结构教学改革中必须探讨的问题。例如,算法分析的研究必须以一定的数学理论为基础;非线性结构的分析必须用到树和图的基本知识。另外,数据结构编程实现过程中,高级程序设计语言中的指针和结构体是频繁出现的知识点。因此,针对课程衔接过程中的重要知识点,一定要采取适当的办法加以回顾,我院在实际教学中就已经安排了一到两次的衔接课程。

3.2教学方式的合理运用

在多媒体辅助教学普及的今天,一定要根据数据结构课程的各知识点的特点,将多媒体辅助教学与传统教学有机结合。所以在数据结构的课程教学中利用多媒体技术时,一定要注意扬长避短,并根据该课程概念多、内容抽象、逻辑性强等特点,精心设计、制作多媒体课件,进行一些必要的动态演示,并适时地运用传统教学模式,组织必要的课堂讨论、课堂提问等形式多样的课堂交互环节。

3.3课程实验设计与安排

课程实验是伴随着《数据结构》课程的课堂教学而进行的实践教学环节。与课程设计实践教学环节不同的是,课程实验的时间安排上是松散的;根据实验教学大纲的要求,依据不同的章节内容安排不同的实验项目。课程实验的目的主要在于掌握各种数据结构的物理实现方法和掌握基本算法的设计实现方法。通过实验,强化培养“结构―算法―编程”三者密切相关的意识。所以在课程实验的设计上,一般较偏重于如何编写功能单一的“小”算法的问题;而在实验安排上,一定要充分调动学生的积极性,并严格要求学生做好实验前的准备工作:主要是实验程序的准备和相关知识点的温习。我在实际教学过程中,一般在安排实验的前一次课堂教学中,会安排足够的时间,阐明实验项目要求,并演示实验效果,以便学生根据要求和效果做好实验前的准备工作。

3.4通过课程设计锻炼学生理论与实践相结合的能力

课程设计是《数据结构》课程课堂教学和课程实验的延续,是重要的一环。我院将其列为一门单独的考查课,主要是锻炼学生根据实际问题的要求,正确选择合理的逻辑结构,并采用适当的物理结构,解决实际问题的能力;更深层次的目标则是希望学生能够针对实际问题选择、扩展甚至设计全新的数据结构,然后设计相应的存储结构并加以实现,从而最终完成问题的求解。由此可以看出,课程设计环节是一个融会贯通的过程,是不能通过课程实验完成的,也不可能在课堂教学中就建立完整的意识。所以在具体的课程设计实践教学环节中,一定要让学生充分认识课程设计的重要性;通过给定学生不同的求解问题,让学生培养应用数据结构基本知识来分析问题、解决问题的全局意识;训练学生从系统的、规范的观点来进行计算机问题的分析、设计、编码测试等。总之,课程设计要有利于锻炼学生理论与实践相结合的能力。

4.结语

我针对《数据结构》课程的特点,分析了教学效果不佳的成因;并结合实践,总结了从做好课程衔接、教学方式的合理运用、课程实验设计与安排、通过课程设计锻炼学生理论与实践相结合的能力四个方面,尝试对《数据结构》课程进行教学改革。

参考文献:

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

[2]叶双,吴清江等.提高“数据结构”课程教学效果的方法初探[J].计算机教育,2009,(11).

[3]郝宗波.数据结构课程教学改革探讨[J].计算机教育,2011,(2).

[4]朱小梅,杨先凤等.数据结构课程教学方法探析[J].探索研究,2011,(5).

[5]邱保志.多媒体技术在《数据结构》课程教学中的应用研究[J].廊坊师范学院学报(自然科学版),2010,(2).

[6]李群,赵玉霞等.《数据结构》实验课程设计与探讨[J].中国现代教育装备,2007,(3).

数据结构课程设计总结范文第9篇

关键词:数据结构;数据结构课程设计;评价方式

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)05-1088-02

数据结构课程内容抽象,信息量大;在学习过程中所用到的技术多,而之前所介绍的专业性知识又不多,因而加大了学习难度;隐含在各部分的技术和方法丰富,也是学习的重点和难点。根据数据结构课程本身的技术特性,设置数据结构课程设计环节十分重要。通过实践内容的训练,能达到学生程序思维的训练和动手上机调试程序能力的增强 , 提高学生组织数据及编写大型程序的能力。

1 概述

当前我国工程教育面临的普遍问题是:工程教育与社会和产业的需求脱节,包括,工程教育的培养目标与社会需求不一致;工程教育中的质量评估结果不能真实的反映学生的能力;工程教育环境与职场环境相差甚远。当前工程教育中,很少能体现课程体系,学科之间的关联很少。关于课程评价和反馈,包括师生双方地互评。老师评价学生的手段是在学期结束时,给学生一个或好或差的成绩。学生从这个结果中,无法得知他需要进一步努力的方向。用人单位无法依据这份成绩来判断这个学生是否符合他们的需求。学生评教制度就是让学生在某个时间段(比如第14周到第16周)给老师一份评价。学校根据这份评价来考核老师的教学工作是否合格。而评教的根本目的:促使教师改进教学,服务学生,满足学生学习需求并实现学生学习利益,在很大程度上被忽略。

数据结构课程设计作为工程教育的一个环节,同样存在上述问题。另外总共32学时的课时太少,导致学生没有充分时间去实施系统分析、设计和实施的完整过程。

学生的语言掌握程度较大程度地影响到数据结构课程设计的实施。往往系统实施的思路是正确的,由于语言不熟练,又缺乏正确的调试手段和调试方法,导致程序无法通过调试或者花费大量时间进行调试。由于没有软件工程的思想,系统事先没有经过周密的设计,程序调试通过,验收时发现题目理解错误,与老师的要求相差甚远。需要重新设计,编写代码,造成学生大量时间的浪费。

最后,学生的创新能力、沟通和团队协作能力有待于进一步提高,而这些能力是作为一名工程型和创新型的计算机专业人才所必需具备的。比较显著的就是沟通问题。在验收阶段,一个简单问题无法用恰当的语言回答教师。

2 课程改革的理念和思路

课程改革的理念是充分利用本校本学院已有资源,结合CDIO理念,提高学生整体计算机专业能力,训练良好的思维方式,培养扎实的实践能力,具备创新能力和团队合作精神。

课程改革的思路:课程改革从课时数、教学内容、教学方法和评价与反馈等多方面展开。首先是在教学大纲上增加本门课程的学时数。在教学内容上,把程序语言和软件工程的内容以恰当地形式加入课程设计中。

在教学方法上,加强思维方式的训练,强调产学结合,增加学生工程经验,训练实践能力。思维方式的训练从两方面展开:在布置任务时,提醒学生按照一定的方法进行抽象,尽量避免手工操作(自动化手段);在验收阶段,针对具体的代码和算法设计思路,教师提具体的改进方案,并相应地指出可能存在思维误区。思维方式的形成不是一天就可以完成,希望经过一学期的训练可以有效地改变部分同学的思维方式。工程实践(包括工程开发各个环节的实践)能力提高也是从两方面展开:一是让学生经历工程开发的整个过程;二是提业界真实地案例供学生模仿分析学习。

评价和反馈从师生双方互评入手。教师对学生的评价要真实反映当前的知识和能力,让学生明白自己的优势和不足。学生对教师的评价真实反映这一学期教师的教学能力和教学态度。让教师进一步清楚学生具体的学习需求和自身能力提高的方向。

课程改革的目标包括加深学生数据结构基础知识的理解,拓展知识面,增强学生实践动手能力,激发学生的创新和团队协作能力,训练学生的沟通表达和思维能力,培养学生具备良好的职业素质,使学生成为一名工程型和创新型的优秀计算机专业人才。

3 课程改革的内容

该综合课程设计预计需要32学时。其中6学时用来帮助学生加强程序设计能力,先由老师讲解部分的难点重点(主要是在数据结构实施过程中常用的知识点),然后学生完成一个相对复杂的程序。

数据结构的课程设计占用中间的26学时。一学期的课程设计需要学生完成3到4个不同章节的题目。由于学生能力水平参差不齐,每章教师给出3到4个难度不同的题目供选择。这些题目部分来自配套教材,部分由教师自行设计。学生根据自身能力选择完成其中的一个题目(也可以自主选择题目,经教师审核后去实施),然后提交教师验收。在此过程中,诱导学生按照软件工程的思想去完成各个题目。具体的手段是给学生一个合理的、按照软件工程思想设计的课程设计指导书。(先设计后实现)

充分利用学院已有资源,在ACM网站开辟一个数据结构专区,按照ACM竞赛的模式设计一些题目供有余力的学生选择。对于已完成教师安排任务的学生,建议他们注册登录学院ACM网站去完成额外的题目,以此增强他们的实践动手能力。

课程设计的其中一个重要环节是验收。它不仅起着评定成绩的作用,而且还承担着训练思维,提高算法设计和沟通表达能力的作用。程序测试通过后,教师选择部分感兴趣的代码,要求学生解释。如果得不到满意的解释,教师可以暂停此次验收。这个环节可以考验学生的沟通表达能力,以及对系统的理解程度。在一定程度上的杜绝拷贝这种现象,退一步,就算是拷贝也必须完全理解整个系统,强制学生必须实际参与课程设计。

接着去提高代码的质量和效率。先一起分析具体的代码,研究算法的效率有无进一步提高的空间。若有该如何修改,教师根据学生的具体情况,讨论确定方案后,交由学生完成。效率提高后的系统,可以在下一次课再次要求验收。另外,教师需要明确指出明显不符合计算思维的代码,要求学生当堂修改。

最后根据题目难度、完成的质量以及验收时的表现,给出一个成绩并登录在册,作为最终成绩的一部分。每个验收的系统必须提交一个配套的课程设计报告。课程设计报告能让学生学会正确的测试和事后的分析总结,起到部分的自我评价功能。每份课程设计报告也有成绩,同样登记在册,作为评定最终成绩的一个标准。

在课程设计结束时,老师除了给每位学生的一个成绩以外,再对出现的问题进行分析总结并以文档的形式反馈给学生。内容包括语言的掌握程度以及还存在的问题;数据结构的基本内容掌握情况,提交程序的效率、有无按照软件工程的思想完成,还需重点解决的问题;创新能力、沟通和团队协作能力如何等等。

参考文献:

[1] John Malmqvi st. The Application of CDIO Standards in the Evaluation of Swedish Engineering Degree Programmers[J].World Transaction on Engineering and Technology Education,2006,5(2):361-364.

[2] 查建中. 面向经济全球化的工程教育改革战略[J].计算机教育,2010(11):2-7.

[3] 中国CDIO网站. CDIO简介[EB/OL].http:///vNews.asp?typeID=30&parentID=29. 2011.

[4] 苟喜霞.车载导航系统最优路径规划的研究[D]. 北京:北京交通大学,2009.

[5] 任雪萍,王立波,赵葆华.融入PIC-CDIO理念的“数据结构”课程教学改革[J].计算机教育,2012(7):29-32.

[6] 殷旭,胡景繁,张红.基于CDIO教育模式学生学习评估方法的探索[J].高教论坛,2010(2):24-25.

数据结构课程设计总结范文第10篇

中图分类号:G642

摘要:结合高等教育心理学中的学习迁移理论,对数据结构课程设计的教学进行了思考与教学实践。文章针对数据结构课程设计的教学目标制定、设计题目设计、考核方式等各个环节的特点与问题,阐述了学习迁移理论对数据结构课程设计的指导作用;在此基础上给出了所制定的课程设计题目及一些有代表性的学生作品欣赏;对课程设计与课程实验的区别进行了论述。对今后数据结构课程设计教学具有很好的参考和借鉴价值。

关键词:学习迁移;课程设计;题目设计;作品欣赏

0 引 言

数据结构是北京林业大学信息学院的计算机科学与技术、数字媒体艺术、信息管理与信息系统等专业的一门重要专业基础课,也是必修课。它的总学时为64学时,其中理论授课48学时,实验16学时,课程设计(实习)一周,通常安排在第3学期或者第4学期开课。数据结构也是软件开发与设计、计算机算法研究与实现等课程的基础,其主要内容包括线性表、栈和队列、串、数组和广义表、树、图、查找算法和排序算法等。数据结构课程设计通常是在数据结构的授课环节以及实验环节之后,单独安排学生用大约一周的时间来完成一个较大的作业,以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。

学习迁移一般是指学习者已有的知识经验、技能等对另一种学习的影响。学习迁移是知识学习过程中普遍存在的。由数据结构课程实验到课程设计,是对数据结构基础知识到综合能力的一种自然过渡,这个过渡即为学习迁移。学生在课程学习过程中,如果能够很好地应用学习迁移,将有利于完善知识结构,收到举一反三、触类旁通的良好学习效果。可见,从数据结构基础知识到数据结构课程设计能力培养,是一种学习迁移的过程。因而,在课程设计的教学实施过程中,学习迁移理论对提高教师的授课质量和学生的学习效果起着非常重要的作用。

笔者对学习迁移基本理论进行了分析,并结合其在数据结构课程设计的实际教学实施过程中的体现,阐述了如何有效应用学习迁移理论来提高授课质量和学生的学习效率。

1 学习迁移基本理论

学习迁移是指一种学习中学得的经验对另一种学习的影响。迁移的基本过程是一个概括出新旧学习本质特征的过程。它是学习者运用已有的认知经验和技能,在对新的学习内容进行分析概括的基础上实现的。学习迁移有顺向和逆向两种,先前学习对后来学习的影响称为顺向迁移,反之则为逆向迁移。不论顺向迁移还是逆向迁移,都有正负之分。正迁移指一种学习对另一种学习起促进作用,反之起阻碍作用则为负迁移。按照迁移的方向来划分,可以分为水平迁移和垂直迁移。水平迁移指已习得的概念、规则或解决问题的方法等在同一抽象概括层次的新情境中的运用;垂直迁移指低级概念和规则向高级概念和规则的迁移。学习迁移理论主要包括以下几种。

(1)形式训练理论。该学说以官能心理学为理论依据,认为通过一定的训练,可以发展心的官能,从而将其转移到其他学习上去。

(2)相同要素理论。该理论认为原先的学习能够迁移到新的学习中去的前提条件是两种学习情境有相同的要素。并且相同要素越多,迁移的程度越高。

(3)泛化理论。泛化理论是指将在一种情境中得到的经验进行“泛化”并运用到另一种情境中去。因此在教学过程中,为使学生能够掌握学习迁移,应该让学生学会思考泛化。

(4)转化理论。支持该理论的心理学家认为学习迁移实际上是一个关系转化的问题。产生迁移的原因,是由于两者之间存在着相同的关系。我们平时强调通过理解而不是机械记忆来学习是因为理解可以转化到各种情境中去,减少知识的错误运用。

(5)学习定势理论。该理论指出迁移取决于通过练习而获得的定势或学习能力。通过练习某一种学习问题,可以帮助解决另一种不同的问题。

(6)认知迁移理论。该理论认为迁移的可能性取决于在记忆搜寻过程中遇到相关信息或技能的可能性。所以,如何增加学生在面临实际问题时提取所学知识的可能性尤为重要。提取的可能性与交互联结的数量直接有关,所以任何增加交互联结网络的“丰富性”的教育方法,对增加迁移的可能性均是有利的。

2 基于学习迁移理论指导的数据结构课程设计

依据前面对学习迁移基本理论的分析,以下将结合数据结构课程设计在教学目标、教学内容与基本要求、题目设计、考核方式以及学生作品欣赏等各个环节的特点与问题,阐述学习迁移理论对数据结构课程设计的指导作用。

2.1 课程设计教学目标

2.1.1教学目标

学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。根据形式训练理论的观点,学习技能的掌握是经过反复训练达到的,学生对知识的理解程度和技能的熟练程度越高,正迁移的可能性越大。因此实践教学环节非常重要。通过课程设计,一方面,使学生学会综合分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术;另一方面,通过课程设计中的算法设计和上机实践的训练,培养学生全面的数据抽象能力、综合的程序设汁能力等。通过此次课程设计主要达到如下目的。

(1)了解并掌握数据结构与算法的设计方法,掌握数组、链表、队列、堆栈、树、图、查找、排序等基本数据结构,具备初步的独立分析和设计能力。

(2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

(3)提高独立分析和解决问题的能力。

(4)训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

2.1.2 教学实验中的迁移

教学实验侧重于帮助学生详细理解相应章节的知识点,具有针对性强、目的明确等特点。同时帮助学生树立起动手编程的信心,逐步提高学生对该章节所涉及算法的理解与动手能力。这是由基础理论知识到编程实践的一种迁移,是正迁移。我们以实验1(基于线性表的学生信息管理)为例,该实验要求学生重点掌握线性表的定义与线性表的基本操作,如建立、查找、插入和删除等。其实验内容详细地介绍了需要实现的每一个功能。同时,为了使动手能力差、基础薄弱的学生也能快速地掌握编程技术,教学实验通常会给出一些代码不完整的参考程序供他们参考,只需添加需要实验的线性表功能的代码即可。这样,使学生能够对前面学习过的理论知识的理解更加清晰、深刻,有利于学生扎实地掌握理论知识。可见,这是后面编程实践所获得的经验对前面所学理论知识的一种迁移,是逆迁移。按照泛化理论,我们需要把一种情境中得到的经验进行“泛化”并运用到另一种情境中去,应该让学生学会思考泛化。为此,为了满足编程能力强的学生的需求,实验要求中除了必做题目外,还安排了选作内容供他们选择实现,充分调动不同能力的学生的编程积极性。

与教学实验不同,数据结构课程设计强调的是学生综合运用知识点与基础算法,设计出较为复杂的用来解决实际问题的算法。题目要求往往只是提出对课程设计题目的描述,而非一条一条的具体功能,这就要求学生具有一定的分析问题的能力和学习迁移的能力,综合运用所学知识解决题目中所描述的问题。所以,课程设计强调培养学生综合运用知识来分析问题、解决问题的能力,这也是泛化理论的体现。

总之,课程设计的目标是使学生能将数据结构课程中所学的基本知识融会贯通,综合运用所学的知识解决相关的实际问题,能够把所学知识(包括算法和结构)在计算机上用编程语言加以实现,并且能够根据实际需求创建自己的数据结构和实现自己的算法。而学习迁移是实现这一目标的有效途径。只有在掌握好基础理论知识的基础上学会迁移,才能更好地解决问题、达成目标。

2.2 课程设计的内容及基本要求

合理安排课程设计的内容才能充分发挥其迁移的功效。从学习迁移的角度来说,合理安排课程设计的内容的标准就是使课程设计内容与课堂教学内容具有一定的关联性和一致性,这有助于学生在做课程设计的过程中巩固课堂所学知识,加深对知识的理解,重构教学内容的结构,为知识迁移提供很好的支撑。

课程设计的内容既要遵循基本的授课内容,又要从一定的高度上对基本内容进行抽象与发展,使之能够真实、准确地反映出由基础知识到综合运用能力的迁移过程。因而本文中课程设计的内容主要包括:①设计准备:理解实习任务,明确相关算法,搜集可用资源,熟悉实习环境。②方案设计:完成设计目标、设计路线的确定,并进行模块设计和任务分工。③代码编写:各模块代码编写、模块测试。④代码测试:模块组装、整体测试。⑤设计报告:完成设计文档,制作设计报告。

为了保证综合、灵活运用基础知识的迁移效果,课程设计有如下基本要求:首先,学生应该独立思考、独立完成。在课程设计过程中各任务的设计和调试要求小组独立完成,遇到问题可以讨论,但不可以拷贝。其次,要做好上机准备。每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。再次,按照课程设计的具体要求建立功能模块,每个模块要求按照以下几个内容认真完成,包括需求分析、概要设计、详细设计、调试分析、课程设计总结。最后,课程设计结束后需要对课程设计结果进行检查和演示,并提交程序源代码和文档文件、课程设计报告等内容。

课程设计过程中的编程环节是从程序设计语言课程到数据结构课程的另外一种重要的知识迁移,需要用面向程序或者面向对象的思想来完成数据结构中线性表等基本的结构定义以及操作。本文中课程设计需要重点注意的事项有:①注意备份源文件;②不要轻易删除代码,如需要修改,最好用注释方法来代替删除;③熟悉常用的调试技巧。

2.3 课程设计题目设计

为了促进学生正迁移学习,教师要科学合理地设计课设的题目,要建立在学生主动、适度、适量、适时且形式多样化的基础上,引导学生综合利用所学知识和经验,深入思考分析问题,学以致用。按照形式训练理论,我们需要通过一定的训练进而发展学生心的官能,从而将其前面所学知识转移到其他学习上去。为此,通过教学实验内容的训练,我们已经训练了学生在基础理论与基础编程中的能力,这些经验为先前知识的转移打下了坚实的基础。按照泛化理论,我们将在一种情境中得到的经验进行“泛化”并运用到另一种情境中去,需要让学生学会思考泛化。为此,与教学实验的细化要求不同,我们所设计的课程设计题目主要是给出题目要求的概括性描述,之后是一些要求与提示,还会有一些对题目中个别语句的解释,但不会给出参考的代码,全凭学生自己的知识组成以及算法设计来完成题目要求。我们从泛化理论出发,2011级数字媒体艺术专业的课程设计共8个题目,其中题目1-7具体给出所做题目的描述,同时为了发挥学生的学习积极性,允许学生自拟题目,给学生一定的自由发挥的空间,但是需要教师对自拟题目的难度以及实验小组的组成进行一定的把关。

2.4 课程设计成绩评定体系

课程设计成绩评定体系是对学习迁移理论在课程设计中应用的成果的一个重要体现,因而需要我们更客观、更公平地评价学生的实习成果。为了避免片面的评价,本文中课程设计将综合考虑小组成员各自完成的任务与工作态度情况、机房中源代码系统与PPT的演示与答辩情况、课程设计报告书的质量等,请三位老师分别对上述项目分别打分,最终按照一定的权值进行综合求和。为了体现编程实践、报告在课程设计最终目标中的知识迁移效果,规定源代码演示未通过、末提交报告等情况记为不及格。

3 学习迁移效果展示

学生最终的作品是学习迁移理论应用于课程设计成果的具体体现。课程设计过程中,每个小组对各自的题目进行了深入研究,从基础知识向深度、广度上进行探索与综合,经过团队协作,完成了各自作品。我们选取了3个具有代表性的作品向大家展示。图1展示了某小组学生完成的手机通讯录系统界面,该系统具有大多数其他手机通讯录系统所不具备的动态常用联系人标定功能。图2展示了某小组学生完成的贪吃蛇游戏。该游戏通过MFC设计界面,通过链表组织贪吃蛇的结构,完成了贪吃蛇游戏的功能,但没有处理蛇碰壁的情况。图3展示了某小组学生完成的电梯模拟系统。该题目是学生自选题目,该系统可以自动模拟电梯的不同运行情况,同时考虑了用户请求的优先级问题。自选题目使学生充分发挥自己的主观能动性,更好地将理论知识迁移到综合设计能力上来。

4 课程设计分析

本次课程设计以学习迁移理论为指导,为了调动学生的积极性,并适合不同学生的风格和能力,这次课程设计共出了7个指定题目供学生选择,如果学生有自己的想法,也可以自拟题目,充分发挥学生的主观能动性,同时要求学生以软件工程的要求来实现这次课程设计,从需求分析到概要设计,再到详细设计,最终是调试分析。

从学生最终的作品来看,选择《手机通讯录功能模拟》的学生比较多,其次是《文章编辑系统》,其他题目选择的人数较少,《教学计划编制问题》无人选择。这主要是因为《手机通讯录功能模拟》题目与实验1有很多相似之处,只要对实验1做合理的改动以及扩充,即可完成手机通讯录的功能。从学生课题完成情况看,绝大多数学生完成了课程设计的基本功能要求,一部分学生还综合考虑了用户界面、程序健壮性等因素,课题完成质量较高。数据结构课程设计是在所学基础知识之上,对数据结构的深层次应用,既引导学生深入熟悉编程技巧,又加深对课程知识的理解,这体现了学习迁移的过程。实践证明,这在一定程度上激发了学生的积极性,有效提高了学生的编程能力,使得部分以前不怎么会编程的学生体会到了编程的乐趣。不过,还有一些学生并没有找到自己编程的方法,对数据结构的基本概念不是很清晰。这一方面与学生自身的编程基础较为薄弱有关,另一方面也是需要教师在指导过程中进一步加强基础知识与编程环境之间的联系,引导学生积极主动掌握学习迁移,并且能够针对实验中出现的问题及时进行一些专门讲解。实际情况表明,这次课程设计不但使得学生可以充分了解算法设计,而且能使学生了解软件工程的设计过程,为后续课程的进行提供一个好的开始。同时锻炼了学生的学习迁移能力,对后续学习是非常有利的。

5 结语

上一篇:机械基础课程设计总结范文 下一篇:房屋建筑课程设计总结范文

友情链接