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

时间:2023-04-04 15:02:39

导语:如何才能写好一篇数据结构课程设计总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

数据结构课程设计总结

篇1

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

一、课程的重要性

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

二、教学中存在的问题

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

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

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

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

三、解决方法

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

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

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

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

四、改革成果

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

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

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

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

五、结束语

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

参考文献:

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

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

篇2

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

中图分类号: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.

篇3

Key words:project driven;course design;applied college

1.《数据结构》课程授课现状

《数据结构》课程是计算机及其相关专业的核心基础课程,是一门理论与实践相结合的课程,在整个计算机专业教学体系中处于举足轻重的地位,特别在软件方向的课程体系中处于承上启下的中心地位。长期以来,《数据结构》课程的教学备受相关学院领导高度重视,然而,大部分高校《数据结构》课程的教学效果都不尽如人意,影响教学效果的原因大致如下:

(1)理论教学与实践教学严重脱节。目前对于《数据结构》的理论教学主要是教师首先讲解基本的结构思想,然后再引导学生读懂由类C++语言编写的算法,最后布置作业让学生思考针对这些算法的问题。在实践教学方面,学生通常要做的事是将课本上写的很详细的代码翻译成相应的高级程序语言并调试通过,甚至不会去自己解决一个稍微复杂点儿的综合问题。基于上述两种原因,学生在学习的过程中可以不用费神思考就能将问题解决,但是离开课本遇到一个新的具体的问题就不知所措,体现不出学生独立思考问题的能力,实践教学环节更是流于形式,加之学生程序设计的基本功不扎实,久而久之对学习编程和思考问题失去兴趣。

(2)传统单一的考核形式,不能体现学生的技能水平。现阶段大多数高校对于《数据结构》课程的考试形式总是以笔试为主,考核的内容还是单一的理论知识,尽管最后有编程题目或者分析题,但是均不能体现学生的技能掌握的如何,90%的学生感觉学习了《数据结构》这门课程对自己以后的学习和工作没有用处,进而减弱了学习的信心,导致学生再学习后续的数据库和编程方面的课程的时候,缺乏模型构建的能力。

2.项目驱动教学法在《数据结构》课程中的应用分析

项目驱动教学法是以学生为主体,以项目知识为主线,教师参与引导的教学方法,它不再是“教师讲,学生听”的被动教学模式[1]。该教学方法的主要目的是让学生真正的参与到课堂中来,培养他们主动思考问题和创新的能力,特别适合于像《数据结构》这种内容延伸性强、抽象思维要求特别高的课程。

2.1 项目驱动教学法的特点

项目驱动不同于简单的任务驱动,它更侧重于培养学生解决未遇到的关键问题的能力,在教学过程中表现为以项目为本位、以学生为主体的重要特征,要求教师设计的项目要具有一定的应用价值,并且最好与企业实际生产过程或具体问题有直接的关系。项目教学法的特点如下:

(1)具有实践性:项目的主体与现实世界密切相连,学生的学习内容更加的具有针对性和实用性。

(2)具有自主性:学生自由、自主的分组进行学习,根据自己的理解发挥想象力,从而促进学生创造能力的发展。

(3)具有发展性:长期项目与阶段项目相结合,构成为实现教育目标的认知过程。

(4)具有综合性:项目的设计本身需要综合多个学科,所以培养了学生综合运用知识的能力。

(5)具有开放性:学生需要围绕问题进行探索和解决,所以学生的学习形式不再局限于课堂[2]。

2.2 师生角色的相互转变

项目驱动教学方法要求每位学生均要真正的参与课堂中来,在老师的引导下,发挥想象、参与研究、参与创造。因此,项目驱动教学法较以往的传统教学实现了两个打破:

第一,打破教材章节顺序,以项目为主线完成课程的培养目标。教师须在完全吃透课程培养目标的基础上,熟悉教材知识点,然后根据要传授的知识点结合该专业的就业方向和岗位构建项目,教师的主要精力应放在项目的设计、布置和引导方面,教师设计项目的优劣直接影响学生的学习效果。另外,在教学的初级阶段,教师还应该全面把握项目实施过程中学生可能出现的问题以及如何解决。在项目的实施阶段,教师只是起到引导和督促的作用,而不参与讨论,当各组学生都提出普遍不懂的问题时,可以先引导其查阅相关的资料或略微指导一二,教师在整个的过程中完全成了一名向导和顾问。当然,如何引导学生在项目实践中发现新问题和掌握新知识,这对老师提出了更高的要求。

第二,打破教师在台上泛泛的讲,学生在台下静静的听的局面。项目驱动教学法要求先将学生分组,每一组学生接到教师的项目后就开始自行分配任务,并且在指定的时间内将相关的问题解决,这期间可能会查资料、相互讨论、请教师长等,学生的教材理所当然的当成了查找知识的工具书,或者有些教材甚至可以不用给学生征订,节约了教育成本。这样,我们的教学才真正做到了注重过程、以学生为本。

2.3 项目驱动下的《数据结构》课程划分

以《数据结构》课程的教学为例,在采用了项目驱动教学法后,我们将课程的知识点划分成了10个项目:

表1 《数据结构》课程项目示例表

项目名称 相关知识点 参考课时

通讯录信息管理系统 线性表、查找、排序 6

某高校学生成绩管理系统 线性表、串、查找、排序 6

婚姻的稳定性情况调查 数组、栈 8

理发馆的经营状况分析 线性表、队列 6

十进制四则运算器设计 栈、树结构、浮点数运算 8

汽车零部件的库存模型设计 广义表、查找、排序 8

因特网域名查询系统 树结构、查找 6

小型汽车牌照的快速查找系统 线性表、查找、排序 10

管道铺设施工方案设计和选择 图结构 8

文章系统设计 文件、查找、排序 10

受现阶段高校授课时间的限制,针对不同的学生层次,这10个项目可能不能全部做完。根据学生的特点,教师可以有针对性的选作期中的5-8个,进而分配相关的课时。实践证明:在标准课时之内,只有30%的学生能够完成一个完整的项目,但是90%的学生能够利用课后的时间积极的查阅资料和咨询老师,这种授课方法对学生的主动学习起到了一个积极的推动作用,并且学生愿意牺牲课后休息的时间泡在图书馆。

3.具体项目实施过程

下面以“通讯录信息管理系统”为例,阐述在《数据结构》课程中实施项目驱动教学法的过程。

3.1 项目名称:通讯录管理系统。

3.2 培养目标:第一,使学生掌握线性结构的特点、线性结构的表现形式。第二,使学生领会数据在计算机中存储的概念,并掌握两种重要的存储形式。第三,掌(下转第179页)(上接第171页)握线性表和链表的区别,能够根据实际情况选择不同的存储结构。第四,能够对实施的算法进行性能评价。

3.3 项目预备知识:C语言编程基础、线性表的定义、线性表的存储结构、线性表的创建、线性表中元素的查找、插入、删除、修改等操作。

3.4 项目延伸知识:线性表中元素的排列(按照某种规则进行排序)。

3.5 项目的功能描述:该系统是普通的电话通讯录管理系统,要求实现能够根据姓名或者电话号码查询一个用户,能够实现对新用户的添加操作和删除一个用户,能够统计出该通讯录中的用户总数。比如:用户有一个电话号码,但不知道此电话号码是谁的,则需要输入号码来查询该号码是不是此通讯录中已记录的人的号码,若是可以输出该号码及姓名,若不是可以输出“无记录”。同学们在此基础上发挥想象力,结合实际可以扩展更多的功能。

3.6 项目实施步骤:

(1)根据学生的特长进行团队划分。按照一个班级35人的标准,我们将学生分成5-6个团队,每个团队在5-6人,然后推荐一名队长。

(2)教师开始下发项目书,要求每一个团队根据项目书撰写项目的可行性报告,每个团队以文字的形式上交一份报告,在此期间至少要保证每个团队的队长明白项目的完成目标,然后由队长写出项目过程的具体划分和阶段性成果。

(3)教师要不间断的引导,当完成项目的可行性报告之后,每个团队就开始查找资料和相互讨论,教师在旁边起到一个引导和监督的作用,对于学生普遍问及的问题可以进行统一解答。教师有目的的讲课,学生有目的的听课,所以实现了共赢的局面。

(4)教师总结阶段,每个项目完成之前,教师要对各个团队的成果进行演示和评价,指出每个团队的不足之处。

(5)学生整改阶段,学生根据教师的评价,完善自己的不足,然后形成阶段性课程设计报告。

4.《数据结构》课程的考核形式及评价

《数据结构》课程不同于其他的专业课,该课程中所设计到的算法和思想具有可收缩性,它应强调对于问题求解能力的培养,我们需要在学生的课程设计过程中,鼓励学生对其解决问题的方案进行理论分析和实验分析,鼓励学生积极主动的创新并大胆提出优化设计方案。对于该课程的考核形式是让学生根据自己平时的课程项目,将项目整理成课程设计报告,最终上交纸质的课程设计报告书,然后教师对报告进行评价。

考虑到《数据结构》这类课程一直以来是计算机相关专业学生学历层次提升考试的重要专业课,在进行课程考核的时候,有些学校除了让学生形成最终的课程设计报告书之外,还让学生参加一次笔试考试,以了解学生对于基础知识的掌握水平。

采用了项目驱动+课程设计的教学模式以后,学生普遍反映对数据结构的学习非常感兴趣,老师们则感觉采用这种方式以后,学生的学习积极性提高了,但是同时老师们的教学压力也变得大了,因为增加了老师准备课堂的负担,但是总体感觉是利大于弊的。

5.实施项目教学法的总结与展望

通过《数据结构》教学中实施项目驱动教学法,我体会到项目教学在专业基础课中实施的必要性,当然该教学方法也不是万能的,它不是适合于所有的课程,通常来讲:这种教学方法比较适合实践操作性强,学科比较综合的课程,同时,我有如下几点体会:

(1)项目教学法重要的是项目的设计,它可能直接影响教学的效果。在进行项目设计时,我们需要考虑学生对项目的理解、项目包括的知识点的范围、课程的前驱后继关系等,否则,我们设计的项目将是没有意义的。

(2)教师的有力引导是确保项目顺利完成的重要保障,学生在进行项目设计的过程中遇到棘手的问题需要老师第一时间进行指导。再者教师要事前全面掌握学生的学习层次,进行有目的性的指导,并能给学生留有思考的空间。

篇4

摘要:本文从政策支持、课程规划、教学内容、教学条件和教学方法等各个方面介绍了烟台大学在建设“数据结构”省级精品课程过程中的一些体会。

关键词:数据结构;精品课程;课程规划

中图分类号:G642

文献标识码:B

烟台大学“数据结构”课程组在多年的教学实践中踏踏实实地做了许多有益的工作,取得了一定的成绩。课程组承担的“‘数据结构’课程的教学改革创新与实践”课题,获得了2004年烟台大学优秀教学成果一等奖,并获得2005年山东省优秀教学成果二等奖;“数据结构”课程在2002年被烟台大学评为首批校级优秀课,并于2004年被山东省教育厅评为烟台大学首批三门省级精品课之一;2007年又被烟台大学作为学校唯一一门推荐课程参加国家精品课的评选。在精品课程的建设过程中,我们有如下一些体会。

1学校各级各部门高度重视

各级领导高度重视和支持是精品课程建设的关键。在一系列相关文件的基础上,早在2004年学校又出台了《烟台大学关于开展精品课程建设工作实施意见》。在此基础上,制订了国家、省、校、院(系)四级精品课程十年建设规划,积极组织精品课程建设立项,全面推进精品课程建设工作,以精品课程建设全面带动课程建设,推进教学改革,为本科教学提供高水平的课程教学平台。

根据精品课程建设规划,学校有计划、有目标、分阶段、分层次地开展精品课程建设工作,形成并执行了行之有效的政策和措施。学校对各级精品课程建设项目实行目标管理,定期聘请专家评估。精品课程重点建设项目实行激励滚动机制。学校投入大量的专项经费,支持精品课程建设特别是精品课的网络建设、网络维护与资源共享。此外学校在职称评聘、岗位津贴等各个方面也向精品课教师做出倾斜,学校的这一系列相关政策,充分调动了教师参加精品课建设的积极性。

2抓住切入点及早规划

“数据结构”是计算机科学专业的一门核心课程,在80年代初,“数据结构”课程才逐步在国内高校计算机专业开设,并成为国内计算机专业教学计划中的核心课程。ACM/IEEE CC-2004仍将“数据结构”课程列为核心课程之首,“数据结构”愈显出其在计算机学科中的重要地位。正是在这样的背景下,在学校的支持下计算机系把“数据结构”课程确立为计算机专业的重点课程之一,并有计划、有目的的给予重点扶持。

“数据结构”课程在我校的发展沿革可以分为以下几个阶段:

学习、初创阶段:烟台大学是一所80年代在清华大学、北京大学的支援下新创建的地方性综合大学,1984年开始招生。“数据结构”是烟台大学计算机系成立伊始即开设的课程。当时计算机专业的核心主干课程都由清华大学的骨干教师担任。在此期间,烟台大学计算机系就有目的选择了具有敬业精神、教学效果优良的本系几位年轻教师组成了“数据结构”课程组,全面接受清华老师的帮助,接受他们的教学新理念、好经验和好方法。

初始发展阶段:1990年清华援建老师返回清华后,“数据结构”课的全面教学由烟台大学教师担任。由于学习、初创阶段的良好基础,这一阶段基本上形成了我校“数据结构”的课程体系结构,从教学大纲的制定、教学内容和实验内容的确定等一系列教学环节上都认真严格按照计算机人才培养的高标准要求。

初级提高阶段:1999年学校提出了百门优秀课建设规划,“数据结构”课程进入了一个全面建设和提高的阶段。首先从教师队伍建设着手,一方面派教师出去攻读博士学位,另一方面吸取教学认真、效果好的老师进入到课程组,进一步充实课程组教师队伍。其次从教材建设和实验体系结构等方面做了精心的准备,并把课程建设的目标定位在:2002年达到校优秀。在此阶段,课程组进行了一系列教学内容和教学法的研究,发表了多篇课程教改论文,取得了优异的成绩,实现了2002年达到校优秀课程的目标。

提高阶段:随着“数据结构”的发展,算法在“数据结构”中的重要作用越来越被人们认识。为了把算法与数据结构紧密联系,2004年课程组教师在多年使用的教材和讲义的基础上编写了系列教材(《算法与数据结构》、《算法与数据结构实验与习题》、《算法与数据结构考研试题精析》)3部,2004年9月由机械工业出版社出版。教材把算法放在了“数据结构”教学中的重要位置。该系列教材覆盖了从课堂授课、课后复习和练习到考研复习材料等多个方面,满足了我校“数据结构”课程的各层次学生的需要,因此2005年至今开始采用自编教材。

从1984年至2003年,采用课堂讲授和实习相结合的方式,实习时间为16个机时。从2004年开始,增加了“数据结构”课程设计,学时为24学时。在授课学期结束后采用集中的形式用一周的时间让学生设计一个综合性的数据结构设计题,通过此环节让学生对数据结构的应用有了更为深刻和良好的理解,效果较为显著。从2002年开始,制作电子教案,采用多媒体教学方式教学,并在每一轮授课过程中进行更新,确保在课件中体现新的技术和理论。从2004年开始,使用自编教材配备的多媒体课件。同时在学校多方帮助下建立了“数据结构”教学网站,网址为,将课程的教学大纲、教案、习题、网络课程、网络课件、考研试题等教学资料上网开放,实现优质教学资源共享。同时设立了网上答疑系统,为学生自主学习、个性化学习提供了方便的平台。

2006年,在学校各级单位的支持下,64学时的全程教学录像工作完毕,并且全部都挂到网上,实现了教学资源的全方位共享。

这一阶段又吸收更加年轻的教师进入课程组,使教学队伍进一步壮大和年轻化。

通过各阶段不断的改革和建设努力,课程组取得了显著的成绩。“‘数据结构’课程的教学改革创新与实践”获得2004年烟台大学优秀教学成果一等奖,并获得2005年山东省优秀教学成果二等奖。在此期间,课程负责人被评为“数据结构”课程群首席教师。2004年“数据结构”课程被评为我校首届山东省精品课立项课程,2007年该课程被推荐参评国家级精品课立项。

纵观“数据结构”课程在烟台大学的发展历程,可以明显的看到正是由于首先选好了切入点并及早做好长期规划,课程组有计划地从一开始就得到了名校高水平教师的传、帮、带,课程组基本功扎实,师资队伍力量雄厚,为课程改革和建设的进一步发展和提高奠定了坚实的基础。

3重点抓好课程教学内容的改革

“数据结构”课程一直是计算机科学与技术专业的一门理论性和实践性并重的核心课程。课程的目标是使学生掌握数据的基本的逻辑结构和存储结构、一些典型的数据结构算法及程序设计方法和技巧,要求学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法;要求具备算法分析的基本技术和能力,并培养良好的程序设计风格,掌握开发复杂、高效程序的技能。课程组主要从课程内容体系结构、教学内容组织方式和实践性教学的设计等几个方面进行了重点建设。

根据课程的重点(如线性表、二叉树、排序等)和课程的难点(如图、集合等),课程组提出了相应的解决办法:采用多媒体授课的方法,将算法思想通过CAI课件进行动态的演示,使学生通过直观的认识掌握抽象的理论。坚持理论联系实际,观察分析实例,让学生通过各章的基本实验理解抽象数据类型的概念,在此基础上设计复杂的程序,培养学生的学习兴趣和实践动手能力,从而激发创造力和想象力,从实践中理解并掌握本课程的重点与难点。课程组进一步提出了“以理论学习为主线,以课程实验、项目设计为补充”的数据结构课程体系的构建方案,让学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力。为了便于学生掌握基本知识,实践活动通过两个环节来实现,第一个环节为课程实验(16机时),较偏重于对课程内容的理解,实验题目与章节内容相呼应,随课堂授课内容分散在整个学期进行。第二个环节为课程设计实习,用集中的一周时间(24学时)进行。课程设计是进行软件设计的综合训练的第一门课,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,以至一整套软件工作规范的训练和科学作风的培养。课程设计规定若干难度较大的题目,学生可在这些题目中任选一题或两题完成。

通过实验实践内容的训练,提高了学生组织数据和编写较大型程序的能力;更好地理解和掌握了算法设计所需的技术,为整个专业学习打下了良好的基础。课程设计课从设立以来,受到了学生的普遍欢迎,学生普遍反映通过课程设计才更加真正了解了数据结构,对课程期末考试的算法设计题目也更加胸中有数。

4积极创造良好的教学条件

学校和院系各级部门为本课程提供了大力支持,从教材、配套实验教材、实验设备以及实践性教学环境和网络教学环境等各方面都为课程建设提供了良好的条件。

本课程在教材的选择上,一直选用获国家级优秀教材奖的教材。对于应用型高等学校,教材的应用性和实践性尤为重要。本着有利于培养学生获取知识的能力、运用知识的能力和科学创新能力的原则,课程组根据多年教学经验的总结和教学实际编写了“数据结构”系列教材三部。其中的《算法与数据结构(C语言版)》在每章最后都单独增加一节算法设计举例,这个内容实际上把本章进行了一个高度的概括,使得学生能够从更高层次理解本章的内容。三部教材是课题组多年教学研究结果的结晶,在教材教学的内容安排及顺序以及所选的例子等方面都做了精心的安排,覆盖了从课堂理论授课和学习、课后练习和作业、实验课到考研复习材料等有关教学的各个方面,把理论学习和实践环节融为一体,满足了我校“数据结构”课程各层次学生的需要。通过三年的教学实践和考研成绩的检验,证明我们所编写教材的科学性。通过不断的教学实践,课程组教师对所编教材多次开会进行研究,对教材中出现的疏漏之处进行了修订,到目前为止教材均已重印多次,并于2008年出版了第一部教材的第二版。

实验环节采用自编教材《数据结构实验与习题》,该教材详细列出了具体的实验要求和内容,使学生充分了解每次课的实验目的和步骤,消除了学生实验的盲目性,使学生有预习和编写静态代码的时间,增强了知识的系统性。同时将每次的实验内容上网,在实验结束后将程序代码放到网上供学生参考。经过各学期的教学检验表明教学效果良好。

实践教学一直在我校的实验中心机房进行,做到了人手一台机器,指导实验采取教师加实验员加学生小教员相结合的方法,尽最大程度保证指导的时间和质量。2005年计算机学院创建了本院的开放性实验室,该课程的实验采取了在开放性实验室进行的方法,提高了实验的效果和质量。

网络建设方面,在学校、学院和网络中心的大力支持下,课程的网络建设有了一定的成效。课程网络主页的内容十分丰富,包含了教学文件、教学系统、辅助教学系统、考研辅导、远程教学系统等不同的模块。目前课程的全程教学录像也已经上网,学生可以随时在线或者下载收看学习。该课程网站的访问点击率已经达到近16万人次。经常有不少兄弟院校的教师或学生通过不同的渠道向课程组教师索取相应资料并进行探讨。该课程网络主页在学校服务器无故障的情况下全天24小时对校内外开放。这些网络资源对增加学生学习的主动性和实现个性化学习起到了非常重要的作用。

课程组同时还创造条件让学生进行各种实践活动。计算机学院与大型企业东方电子集团公司合作建立了“东方电子实习基地”,通过在基地的参观和实习,使学生学到了很多在课本上学不到的东西。尽管或许和课程内容看上去没有什么直接的联系,但通过参观学习开拓了他们的视野,丰富了他们的想象,进一步激发了他们的学习兴趣。

5充分应用多种教学方法和教学手段

在教学方法上:从传统的粉笔+黑板模式为主过渡到“计算机+大屏幕”为主的授课模式。授课的电子教案开始时使用以静态文字为主的Powerpoint幻灯片方式提供,现在采用以动态算法演示为主的CAI和多媒体课件;对于一些重点和难点算法用形象的动画在屏幕上展示这些抽象算法的执行过程,辅之以板书交流,大大增加了从教师到学生传递的信息量和信息种类,有助于建立从感性到理性的深入理解与掌握。

在教学手段上:通过研制和引入课程辅助教学软件CAI,融入新的教学理念。通过采用模拟方法、单步显示、自动演示多种方式,突出实质观察算法实现过程。在CAI个性、针对性和交互性的基础上,渗透模块化、抽象和信息隐蔽等新观点、新技术,使教师在讲课中可以对内容进行重新组合,为教师教学的个性化发挥提供基础。课件和CAI教学已在我校5届学生的教学中应用,课件作为远程教育的教学工具,便于学生课后的学习和答疑,使授课过程突出重点,发挥传统教学与多媒体教学的能力优势,提高了教学质量、效率与效果。

此外课程组还开发了计算机辅助教学系统――基于Internet的数据结构试题库系统。根据教学的需要,自主开发和建设了标准化试题库,将多年搜集的各个高校的考试试题和考研试题加入到该系统之中。该系统可以根据教师的需要,进行随机抽题或手工选题,能够生成完整的试卷和试卷答案。

教学辅导方式上:从传统的辅导老师面对面的辅导教学逐步过渡到教师辅导与通过校园网进行实时联网辅导相结合的方式。答疑系统开通后,收到了很好的效果,在同学中的影响也很大,现在许多同学都将自己的疑问提交到网上,教师基本上都能在第一时间给出问题的解答。网上答疑也是精品课建设的一个重点,让同学们将自己在学习过程中遇到的一些疑难问题提交到答疑系统,教师统一作出回答。开通答疑系统有三个好处:消除学生提问时的恐惧心理;避免重复回答;不受时间地点限制。

目前,学校已经投入专项资金建立起了Blackboard教学平台,学校将分期分批地把学校各级各类精品课和优秀课接入到该教学平台上,以实现真正意义上的网络教学和优秀教学资源的共享。”数据结构”课程将被首批接入到网络教学平台,课程组将很快在该平台上创建在线课程,并将使用该平台和学生开展在线讨论。该教学平台的使用必将为课程建设水平的提高提供强有力的支持。

6教学法研究常抓不懈

教学法研究在课程建设中始终不断线。课程组除了在教学过程中定期讨论、交流教学心得,共同探讨某个章节某个内容的教学方法以外,课程组在有关方面的支持下于2005年成功的举办了山东省高校首届“数据结构”课程建设研讨会,来自29所高校的教师代表们热烈的讨论了“数据结构”的教学内容和教学手段的改革、课程的教材建设、课程的课件建设、课程的实验教学改革、课程的考试改革以及建设精品课程的经验。大家普遍反映这次会议开得好,问题讨论得透彻,希望今后能定期召开。课程组也通过此次会议的成功举办在一定程度上扩大了该精品课的影响,同时也为该课程的进一步建设吸取了很多兄弟院校的很多有益的经验。此外,通过课程组积极协调,于2007年11月专门邀请全国“数据结构”课程知名教授、国家《数据结构》教材特等奖获得者、清华大学严蔚敏教授,到我院讲授了6学时的“数据结构”(集合一章)课,课程组全体教师全程聆听了严教授的讲课,课程组还和严教授进行了多次直接的面对面的交流,这对课程组的教学工作是一个巨大的促进。

篇5

该系列教材的作者不仅具有丰富的教学经验,也具有丰富的科研经验,是浙江大学计算机科学与技术学院和软件学院的教学核心力量。这支队伍目前已经获得了四门国家精品课程(C语言程序设计基础及实验、操作系统、嵌入式系统、计算机辅助工业设计)以及六门省部级精品课程,出版了几十部教材。该系列教材涵盖了计算机和软件专业绝大部分专业必修课程和部分选修课程,是一部比较完整的专业课程设计系列教材,也是国内首部由研究型大学计算机学科独立组织编写的专业课程设计系列教材。

系列教材由《C程序设计基础课程设计》、《软件工程课程设计》、《数据结构课程设计》、《数值分析课程设计》、《编译原理课程设计》、《逻辑与计算机设计基础实验教程与课程设计》、《操作系统课程设计》、《数据库课程设计》、《Java程序设计课程设计》、《面向对象程序设计课程设计》、《计算机组成课程设计》、《计算机体系结构课程设计》、《计算机图形学课程设计》等十三门课程的综合实验教材所组成。

下面举例介绍其中几本教材的主要内容及特点。

《C程序设计基础课程设计》:在分析C语言高级编程技术的基础上,通过对“通讯录”、“计算器”、“俄罗斯方块”等3个完整案例的解析,指导读者按照软件工程的生命周期开发过程,从问题分析、设计、编码到测试,循序渐进地完成大型程序的开发。教材还提供了9个大型程序训练的题目及简要分析,供读者练习。本教材还针对教学需要,提供了可参考的实施过程说明、开发文档模版、考核方法和评价标准,特别强调学生团队合作精神的培养。

《数据结构课程设计》:针对堆栈、树、图、排序、哈希查找、算法设计等方面的内容提供了8个课程设计案例,分别从基本知识回顾、设计题目、设计分析、设计实现、测试方法、评分要点等几个方面进行分析。教材还提供了8个课程设计习题,并对实现要点进行了简要的分析。

《计算机组成课程设计》:要求实验者用硬件描述语言(Verilog HDL)设计单元电路、功能部件和指令条数有限而功能较齐全的单时与多时钟CPU。在计算机功能单元仿真模拟正确后, 实验者能把自己设计的结果写入到Spartan-3 Starter Kit Board开发板的FPGA可编程芯片上, 并能直接实验自己的设计(芯片)是否达到预期目标。实验设计由浅入深, 内容丰富。

《数据库课程设计》:以图书管理系统的开发为例,从需求分析开始,到数据库设计、数据库应用和应用开发等过程。其中应用开发的环境和工具包括MySQL数据库和ODBC接口技术,以及SQL Server和JDBC等。本书侧重于介绍“怎么做”和做的过程,而非原理性和全面性的阐述。

篇6

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

0 引言

《数据结构》是计算机专业课程体系的核心课程之一。课程主要讲述各种数据的逻辑结构、物理结构及基本操作的实现算法以及数据查找、排序算法,并对各种算法进行性能分析和比较。

根据调查发现,目前大多数院校《数据结构》课程教学现状不容乐观。学生普遍反映课程学习比较困难,教师也感觉教学效果不理想。实验教学更是因为程序设计语言基础不扎实、课程内容太抽象等原因而较难开展,有些学校因此而缩短学时甚至不开设实验。一些专家和教师就课程实验教学改革已经提出了一些具体的教学方法,如案例驱动、课题答辩等。这些方法都具有比较重要的借鉴价值,但某些文章过于片面的强调某一种教学方法。笔者认为根据学生的实际情况完善教学设计、加强教学管理,通过行之有效的教学手段使学生学有所获才是根本。下面结合自己的实际教学工作,谈谈对数据结构实验教学方法的认识。我校《数据结构》课程理论学时48,实践学时16,教材选用严蔚敏的《数据结构(C语言版)》)。

1 讲好理论第一课,明确课程性质

仅从课程名称来看,《数据结构》就很容易被误解为实践性不强的理论课。讲好第一堂理论课非常重要,应让学生明确课程性质并理解实践学习的重要性。

结合程序设计语言、操作系统等课程内容,笔者设计了一些学生比较熟悉并容易理解的应用实例和学生一起探讨,如:int a[10]和a[i]=5的确切含义;文件簇的链式形态;国际象棋大师与超级计算机的对决;图的着色问题等。在讲解图的着色问题时引导学生思考图的存储中需要关心什么,怎么存以及大致的程序逻辑等。通过对实例的分析,引入课程主要内容,学生也可明确课程的性质和专业地位并思考课程学习目标。

2 制定实验教学计划,设计实验内容

程序设计语言是数据结构的前驱课程之一,多数院校都是以C语言程序设计作为学生程序逻辑训练的课程。数据结构教材中采用类C语言来描述算法,对指针、结构体等内容并未作详细的介绍。对于刚刚学完C语言的学生来说,指针等内容本来就比较模糊,要将类C算法转换为程序实现就更加困难。

在制定实验教学计划时,可以采用由易到难、逐步加深的方式来安排实验内容。结合实验学时数和教学大纲要求,笔者将实验内容作了如下设计和安排:

2.1 第一次上机任务只要求学生运用以前学过的C语言知识来编写一个程序:给定一个整数序列,要求①用冒泡或选择算法进行排序;②输入一个整数X,在此有序序列中进行查找,如成功,则返回其位置;③如查找不成功,将X插入到序列中并使序列仍然有序。此题目运用到数组的定义、排序、查找、数组元素插入算法等相关内容。通过此实验,不仅能了解学生程序语言的熟悉程度,也能了解学生对排序和查找等基础算法的掌握情况,为后面教学内容设计作好铺垫。

2.2 结合教学进度要求学生实现常见数据结构的基本操作,并能作一些验证性的实验。如用数字菜单的形式实现单向链表的基本操作,并完成两个有序链表合并算法的验证。实验要求学生能实现大多数基本操作算法,完成头文件的设计,并能利用已实现的基本操作完成复杂算法的验证。通过此类实验,学生对数据结构的理解更直观,程序逻辑更清晰,C语言的掌握能力逐渐增强,同时也为面向对象课程的学习打下一定的基础。

2.3 设计性实验即课程设计安排。课程设计的目的在于培养学生分析和解决实际问题的能力,训练和提高学生规范的程序设计方法。教师可推出一些典型的并与后续课程有一定联系的题目供学生选择。每个题目规模不能太小,并能反映相关数据结构在程序设计中起的关键作用。如:①实现一个串的基本操作演示程序,提供命令行的输入(仿照COMMAND),并对命令行能进行简单的编译和出错处理,最后根据命令动词的功能来执行命令;②利用哈夫曼编码算法实现简单文本文件的压缩和解压。题目随着理论教学进度推出,有难有易,学生结合自己实际来选择并可提前完成。

3 规范实验过程,加强实验教学管理

为保障计划的有效实施,必须规范实验过程并加强实验教学管理。

3.1 根据计划制定实验指导书。指导书中给出每个实验的目的、学时、内容等。其中设计性实验另给出一些基本的分析思路,每个实验都适当的添加一些选作题。学生通过阅读实验指导书能进一步明确每次实验的具体内容和要求。

3.2 要求学生做好上机前的准备。大二学生的编码速度普遍较慢,如果把实验课时间主要用于输入代码是非常不值得的,应将主要精力放在程序调试上面。这样不仅有充足的提问时间,也便于教师归纳并集中讲解学生调试过程中所遇到的常见问题。

3.3 要求学生实验后完成实验报告。报告中须给出问题分析、数据描述、算法描述、程序描述、测试结果和心得体会等内容。教师对学生提交的实验报告进行分析,总结并指出实验的成功和不足之处。

3.4 加强实验教学管理, 从正面引导学生。随着网络信息技术的发展,网络中提供的各种信息服务和娱乐方式使部分学生的学习积极性逐渐降低,学习目标也越来越不明确。如果管理松懈,有些学生就会把实践学习当成是简单的Ctrl-C和Ctrl-V,不能达到实验教学的预期目标。因此,教师应了解学生的学习动态,加强实践教学管理,并根据实际情况进行相应调整和改进。

4 丰富教学手段,搞好实验指导

在实践教学过程,教师不能只停留于解决学生提出的问题,还应不断摸索教学方法,丰富教学手段。

4.1 演示基本算法实现时可采用互动的方式进行。先按类型定义初始化输入测试数据输出的实现顺序和学生一起得到结果;再让学生逐个实现其余算法,最后完成头文件的设计。学生通过教师演示和实际操作可以更快的掌握类C算法和C程序的转换思路。

4.2 数据结构中的程序规模相比C语言来说更大。由于缺乏经验,很多学生在程序调试中会出现较多的语法和逻辑错误,可利用多媒体网络教学手段在学生机上直接演示并讲解程序调试的方法和技巧。

4.3 学生实验过程中尽力营造一种你追我赶的竞争氛围,通过激励机制提高学生学习积极性。如果有同学较早实现了某些算法,可有选择性的适当的“刺激”部分学生以激发其不服输的心理,从而带动其他学生。

4.4 鼓励学生多实践,要求学生通过实践来找出理论学习中存在的问题,提高自己的抽象思维和逻辑推理能力。对于编程能力较强的学生,鼓励他们多做题,做难题,为今后参加各种资格水平考试和专业竞赛作好准备。

5 总结

《数据结构》是一门理论和实践结合性非常强的课程,其课程性质决定了教学过程的复杂性。作为承担课程教学的老师,不管是理论教学还是实验教学,都应结合学生的特点,从教学设计、教学手段、教学管理等多方面进行深入具体的探讨和研究,并运用到教学实践中。只有这样,才能真正使学生理解《数据结构》课程意义和课程核心地位。

参考文献

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

篇7

关键词:数据结构;网络教学;教学模式;教学方法

创新是教育发展的根本,是社会发展的必然,课堂教学中的创新教育是教育创新的重要组成部分。

2009年及以后,《数据结构》是计算机硕士研究生入学必考科目,也是计算机专业学生专升本的必考专业课。《数据结构》所涉及的内容和方法,无论是对学习计算机领域的其他课程,还是对从事软件项目的开发都有着重要的作用。但该课程具有相当的抽象性和动态性,容易造成教学低效和学时膨胀。如何使学生更好地掌握最常用的数据结构,理解数据结构内在的逻辑关系,数据与关系在计算机中存储表示以及在这些数据结构上的运算和实际的执行算法,培养学生发现问题、分析问题、解决问题的能力,是这一门课程的关键。

一、教学原则

随着科技的的不断发展,多媒体教学已经成为现代教学改革和未来教学手段发展的方向,多媒体教学集讲课、习题课、演示算法为一体,具有生动、形象、直观的特点,有助于学生很好地理解和掌握所学内容。多媒体教学在讲具体的算法实现方面显得特别优越,可以先给学生讲解算法,然后给出数据来执行算法,学生一边对照着语句一边执行观察数据的变化,或用动画演示执行过程。尤其对于递归算法,其执行过程不易理解,采用动画演示递归算法,生动、形象,学生很容易看出何时发生递归调用,何时返回到上一层调用处。

为了使多媒体辅助教学达到最佳教学效果需做到:树立“以学生为主体”的现代教育观,把学生创新能力的培养放在重要的地位;利用指导法教学、“启发”式教学来体现“以教为主导,以学为主体”的教学原则。在教学方法和教学体系上采用现代教学模式,将多种现代教学模式应用于课堂和网络教学中。

二、现代教学模式

教学模式是教学基础理论的具体化,也是教学具体经验的概括化。目前,国内外有影响的现代教学模式主要有:

(1)掌握学习模式。强调个别化教学,利用及时反馈和强化作为控制教学的有效手段,而编写得当的习题是获得反馈的重要途径。

(2)发现学习模式。首先提出问题,带着问题意识观察具体事实,然后再上升到一般的概念。

(3)范例教学模式。教师用特例具体直观地阐明“个体”的具体特征;根据范例“个体”的知识推论特点,分析掌握整个“类别”事物的特征。

(4)最优化教学模式。一个好的最优化教学方案形成的过程是:①分析教学目的与教学任务;②分析学生学习情况与教师自我分析;③学时分析;④选择已知条件下最佳教学任务的综合性手段与方案;⑤对教学质量进行评价。

传统的教学方法和手段,制约了以上教学模式的推广应用,CAI系统的建立和以可视化为特征的多媒体技术的应用,有利于综合这些模式的长处,创建各种现代教学模式。

三、课堂教学设计

1.教学目标分析

根据最优化教学模式,设计一个好的最优化教学方案,首先要对教学对象的情况进行分析,了解学生的基础知识掌握程度、使用计算机的能力等实际情况,做到心中有数。

2.课堂教学方案设计

(1)讲授内容安排。根据教学大纲及指定教材,提炼出该课程每章、每节的框架体系,从逻辑、存储结构和数据的运算三个方面去组织教学内容,要重点突出,简洁明了。

(2)教学策略应用。①积累知识,重视直觉。直觉是建立在丰富的实践经验和宽厚的知识积累之上的。例如,讲到树型结构时,为了了解各个结点之间的关系,我们用“家谱”来学习树形结构。这种方法的调整,极大地提高了教学效果,同时加强了学生直觉思维的培养;②问题驱动。问题驱动是指学生在教师创设的情境下应用已有知识提出新问题、解决新问题的过程,也是学生高度自主学习的过程。教师在讲课时,要体现教学思想,引入3W的教学理念,采用发现学习模式,应用启发式教学。在讲每一种基本的数据结构之前,准备一些实际应用的例子,让学生一边逐步学习理论知识,一边思考如何应用;③范例教学。课堂讲授应符合学生的认知规律,从感性到理性,从理性到实践,从直观到抽象,再从抽象到具体实践,范例教学在《数据结构》的算法思想讲解中能发挥其无法比拟的优势。在教学过程中宜多画图,多举例,多解释。例如:讲解队列的概念时,可通过日常生活中的购物排队的过程来反映队列中插入、删除的原则。

3.实验环节的教学设计

(1)实验目的。《数据结构》是实践性很强的一门课,培养学生的实践能力是教学的首要目的。本门课的实验教学的目的是:通过实验将各门课程学到的知识融会贯通,思考与发现利用《数据结构》解决实际应用问题的有效方法;强化学生“结构一算法一编程”三者密切相关的意识。平时的练习较偏重于编写功能单一的“小”算法,最后一周实训时设计大的具体应用实例研究。

(2)实验选题。依据实验教学的目的,考虑学生的个体差异,将实验设置为必做和选做实验。两类实验都是结合相关的教学需要由授课教师设计,前者目的在于帮助学生掌握基础知识和实验研究方法,后者则培养和鼓励学生的学习兴趣、扩大知识面以及培养学生的应用能力和创新意识。

篇8

关键词:数据结构;建构式教育理论;理论教学;实践教学

近年来,在产业界急需大量软件开发人员的情况下,普通本科院校计算机专业学生的就业率持续走低。网络、报纸等媒体对计算机本科教育现状多有批评,甚至出现了大学不如培训公司的极端观点,严重影响了学生对专业课程的学习兴趣、动力和信心。数据结构是计算机专业的核心基础课程,上承程序设计语言、离散数学,下启操作系统、编译原理等课程,其重要性不言而喻。一方面,数据结构学科具有难度大、抽象层次高、概念繁杂等特点,学生很难掌握,更不要说将抽象理论与就业实践需求相结合。另一方面,国内主流数据结构教材和相应的传统教学模式侧重于培养学生的计算机学科基础理论素养,而将如何通过组织数据结构教学活动积极推动就业的问题留给了任课教师[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.

[4] 郝长胜,贾茹. 运用建构主义理论构建程序设计基础的新型教学结构[J]. 计算机教育,2007(1):24-25.

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

Application of Constructivism Theory in Data Structures

SUN Lianshan, ZHAO Xiao

(College of Electrical and Information Engineering, Shaanxi University of Science & Technology, Xi’an 710021, China)

篇9

关键词:数据结构;案例教学;教学改革

1数据结构课程教学现状及问题

数据结构作为计算机和信息等专业的核心课程,在教学体系中起着举足轻重的作用[1-4]。现阶段国内数据结构课程受主流数据结构教材影响,多以传授知识、利用伪代码描述数据结构及其算法为主,辅以一定的编程实践作为主要的教学模式。在这样的教学模式下,对于当前大众化教育背景下应用型高等工科院校的学生来说,学习掌握数据结构课程,根据实际问题动手设计数据结构算法并能付诸实践成为一个难题,造成这种现象的主要原因有以下几点:

1) 在国内主流的数据结构教材普遍采用伪代码的形式来描述算法,没有源程序,学生在学习过程中,不能“亲眼看见”算法执行流程,从而造成对算法理解的困难。

2) 算法描述过于抽象,不够直观,教师在教学过程中利用“黑板+粉笔”或者PPT都很难形象直观地演示算法,不利于学生理解算法。

3) 传统的教学模式强调理论教学,实践环节不够,造成学生动手能力差,有的学生会考试能做题,却看不懂实现算法的程序,更别说自己动手编程实现算法。“数据结构”在计算机软件开发领域的真正价值无法得到体现。

就以上问题笔者对在数据结构课程教学过程中引入案例驱动的立体化教学改革研究作了初步研究。

2选择设计适当的案例以驱动数据结构课程教学改革

2.1案例的设计与选择

案例选编是数据结构教学改革中的重要环节,选择或设计适合学生、难易得当、繁简相宜的案例,应包含学生已经学过的和即将学到的知识,并以此案例作为驱动进行课程的教学和学习,可以提高学生的学习兴趣和学习效率,达到教学目的。

笔者经过多年教学实践,在教学过程中摸索了一系列案例作为各数据结构教学模块的驱动,主要包括:以“一元多项式的四则运算”作为线性表结构特别是链表结构教学的驱动案例、以“迷宫路径搜索”作为栈结构教学模块的驱动案例、以“井字棋游戏”和“霍夫曼树及霍夫曼编码”作为树结构教学模块的驱动案例、以“校园导游咨询”作为图结构模块的驱动案例,等等,如图1~图3所示。下面以较为简单的链表结构为例阐述“一元多项式四则运算”案例如何驱动教学。

2.2一元多项式四则案例驱动链表结构的教学

一元多项式四则运算是清华大学严蔚敏教授编写的经典教材中有关链表的应用的一个章节,但是在该章节中数据结构及算法由伪代码构成,学生很难真正理解如何利用链表来实现一元多项式的四则运算。

笔者在教学过程中已经积累了可视化的多项式四则运算程序[5],可以利用该应用程序进行课堂、课后的教学与学习。

2.2.1案例驱动链表中结点的教学

“结点”作为链表乃至树和图等各类数据结构来说是一个非常重要的概念,而对于初学数据结构的学生来说,大多数学生只掌握了基本数据类型的运算,“结点”概念过于抽象,往往使学生摸不着头脑,从而影响整个数据结构课程的教学。

通过教师讲解一元多项式中的单项式如何在计算机中表示,即由系数(浮点型)、指数(整型)两种基本数据类型构成一个复杂数据类型;一个单项式就是一个多项式的一个结点,利用这种方式使“链表中结点”这个比较抽象的概念具体化、形象化,进一步引导学生――要描述和实现这样一个非简单类型的“结点”,需要用C++中的类或者结构体来实现。

2.2.2案例驱动链表基本操作的教学

多个单项式“串成一串”便成为多项式,可以用“数组”来串联这些单项式,也可以用“链条”来串联这些单项式,教师可以一起与学生讨论顺序表和链表的各自的特点。这个案例主要体现链表的应用,教师引导学生分组讨论如何实现串联,即链表的初始化操作、结点插入链表以及从链表中删除某个结点等一系列链表操作。

多项式的四则运算特别是加、减法本质上是链表的合并过程,而链表的合并过程也就是结点的插入操作。因此学生们在理解链表基本操作的基础上可以进一步学习其具体的应用。

2.2.3案例驱动下链表实践教学的改革

只有理论学习而没有实践,这样的学习成效是不完整的,不同层次的学生可以利用案例进行不同程度的学习。对于理论理解有困难的学生,他们可以通过上述图形化界面的应用程序“亲眼看到”结点在链表中的变化,该程序是可操作的、互动式的,通过输入数据,可以帮助学生理解一个升序的一元多项式中插入一个任意单项式仍然要保持其升序状态,需要在在链表适当的位置插入结点或者修改结点或者删除结点,等等;对于算法可以理解但是无法读懂源程序的学生,可以通过学习、调试源代码,达到从理论理解到实践应用的过渡;对于可以理解源代码的学生,可以让其尝试编写、添加一些具体的函数,增强学生的动手能力。上述一元多项式四则运算应用程序即为笔者的学生开发完成。

对于这样一个案例驱动的教学方式的改革实践,仅仅有案例是不够的,需要对传统的教学模式和考试模式、课程组织方式等全方位立体化的改革。

3教学模式与考试模式的改革

3.1在教学方式上的改革

传统的教学方式是以教师在课堂上讲解知识点,学生上机实践以及课后做习题作为主要的教学模式,

这样就容易造成前文中提到的学生动手实践能力低,会考试却看不懂程序,不会动手编程这样的局面,达不到应用型高等工科院校对学生的培养目标。只有将教师讲解、课堂讨论、汇报或答辩、教师或学生总结等多种教学方式相结合,才可以发挥案例驱动教学以达到教学目的要求。

3.2在教学手段上要充分利用演示系统、精品课程网站等资源

一些演示系统和国家级精品课程网站的资源可以帮助教学进行课堂教学以及学生课后学习,例如,上海交通大学数据结构为国家级精品课程,在该课程网站(/CourseShare/DataStructure/ Index.aspx )包含了相当丰富的教学资源,如约瑟夫环问题、汉诺塔问题、迷宫问题、火车车厢重排、四皇后问题等算法的动态演示过程、解决思路、算法描述、参考代码等;另外,该网站还提供了一些数据结构中常用算法的动态交互操作实验,如链表的插入和删除、二叉树遍历、霍夫曼树和霍夫曼编码、联通网的最小生成树等。教师和学生可以充分利用这些非传统的、动态交互式的应用程序实现使数据结构的学习不再单一化、抽象化。

3.3在考试模式上改变“一考定输赢”的方式

我们借鉴国外Assignment形式,采用以小组为单位完成期末大作业、撰写课程报告等多种方式相结合进行考核。期末作业的内容应与教学过程中的案例相结合,让学生们模仿完成类似的、难易得当的应用程序的开发。为避免学生们从网上下载源代码等非诚信的方式来完成期末作业,还要求他们撰写课程报告并进行汇报答辩。

由于学生个体的差异性,在组成小组时应保证小组成员的多样化,有的小组成员擅长整体分析,有的小组成员擅长程序辨析,有的小组成员擅长总结报告,等等,学生们通过分工合作来完成期末作业可以增强学生们的团队合作精神,也可以发挥各自的优点和特长。

利用这种开放式的考试方式可以改变学生只在期末前夕用功学习就可以完成学业的现象,改变学生重理论轻实践的思想,增强学生学习主动性,提高学生动手能力、表达能力。

4与其他专业课程结合,真正发挥其核心作用

在计算机专业或信息类学科专业中基本上都开设了C语言(或者C++)、面向对象与可视化程序设计等课程,数据结构课程应与这些课程相结合。

4.1在面向对象程序设计语言课程中体现数据结构思想

而对于数据结构而言,从上世纪90年代起国外已经逐步采用用C++或Java描述的数据结构教材,用C不能很好地描述数据结构中的抽象数据类型,只有使用面向对象程序设计语言中的类才能很自然地实现抽象数据类型的思想[1]。另外,目前软件开发的主流方式仍然是采用面向对象的程序设计,因此笔者建议在计算机等专业中应开设C++课程,并以此作为计算机专业程序开发的主线语言,该课程应先于数据结构课程开设。

在学习面向对象程序设计语言时,“类”和“对象”等概念非常抽象和难以理解,在教学过程中可以以数据结构中的一些简单化的案例作为这些抽象概念的具体化。例如在初学“类”时可以以前文中所提到的多项式为例学习如何构造一个“多项式类”,有了一般的“多项式类”,那么具体的某个特定的参与运算的多项式就是这个类的对象。以此达到抽象概念形象化的目的,使得这样的重要概念变得容易理解。

4.2在数据结构课程中利用C++等语言实现算法,提高学生动手能力

如果在数据结构课程中使用伪代码作为算法描述的代码,学生理解算法困难,难以动手实现。因此在学习了C++等语言的基础上,在数据结构课程中所有数据结构及算法应以C++等语言作为描述语言,并要求学生在此基础上完成各种作业,提高动手能力。

4.3在可视化程序设计、信息论与编码等其他专业课中体现数据结构的应用性

在面向对象与可视化程序设计课程学习的过程中,教师应结合数据结构中学习过程中的各案例,让学生在可视化编程环境中利用面向对象技术开发这些案例的图形化界面应用程序。如前文中提到的各种案例的图形化用户界面的应用程序的开发,信息论中霍夫曼编码的实现,等等;从而提高学生对数据结构的理解以及开发能力,并使课程设计变得言之有物。

5结语

案例教学能使理论与实践更好地结合起来,通过对案例课题的分析、讨论和实践,可以更好地掌握理论及其实际应用[3],以案例驱动整个数据课程的教学模式、考试模式等立体化的教学改革,培养高素养的应用型人才。

参考文献:

[1] 殷人昆,邓俊辉. 清华大学数据结构精品课程建设[J]. 计算机教育,2006(5):20-22.

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

[3] 李克清. “数据结构”案例教学初探[J]. 长江大学学报:自然科学版,2004(12):135-136.

[4] 徐勇,朱张斌,胡艨. “数据结构”辅助教学软件设计与实现[J]. 长春师范学院学报:自然科学版,2010(2):53-56.

[5] 陈晓霞. 图形化用户界面的一元多项式运算[J]. 计算机时代,2008(11):70-71.

Case Teaching in Data Structure

CHEN Xiao-xia

(Science Institute, Zhejiang University of Science and Technology, Hangzhou 310023, China )

篇10

关键词:成果导向;编程算法;多元评量;课程设计

1课程基本情况

高职软件技术专业,《编程算法》课程类型为软件技术专业核心课程,修读方式为必修课,学分/学时为4学分/72学时,上课场所为一体化实训教室。课程的总体设计思想为以“成果导向+行动学习”教学理念为指导,遵循学生认知规律、技能形成规律及技术发展规律,采用成果导向教学模式,并运用五步技能训练法(必备理论、操作准备、引导训练、同步训练、拓展训练)进行学训一体、多元实时评量的课上课下教学活动。在课程设计和实施过程中完成:转———转为现代职业教育教学理念;建———课程体系建设、教师专业建设;改———课程改革、方法改变、课堂改造的成果导向教育教学改革。

2课程描述设计

本课程旨在引领学生运用经典算法处理程序设计问题,掌握C++程序设计技巧,选取合适数据结构、编写有效算法和对算法进行分析和评价(目的)。

3教学活动历程设计

在教学活动历程中按照准备活动、发展活动、整合活动开展教学活动,完成12个教学环节。3.1准备活动:提高沟通整合等能力。教学导航:明确编程算法的教学目标、重点和难点、熟悉教学方法、了解教学环节必备知识:教师根据单元学习成果,对确保改学习成果能够顺利达成的相关理论知识进行讲解。操作准备:提示本单元操作所需的学习资源,分发学习素材、信息单。3.2发展活动:提高问题解决、沟通整合、专业技能、职业素养等能力。引导训练:教师给出操作任务单、算法对应程序的执行结果-即学习成果,学生在教师的引导下进行操作,完成案例,形成操作技能单。引导训练考核评价:对学生操作态度及完成情况进行评价。同步训练:教师给出操作任务单、算法对应程序的执行结果-即学习成果,由学生按照引导训练中所学知识完成算法设计及程序编写,组内成员互相帮助,巩固所学技能。引导训练考核评价:对学生操作态度、小组合作情况及完成情况进行评价。拓展训练:根据本单元学习的内容,学生在网上搜索可用该算法实现的相关案例,并互相研讨,讲解,合作实现。拓展训练考核评价:对学生的任务完成情况、设计创新情况进行评价。代码解读:对单元中所涉及的数据结构或程序代码进行深入解析。问题探究:对编程算法的相关常见问题进行探究。3.3整合活动:提高学习创新能力。单元小结及游戏:对本单元学习内容,学生表现,存在问题等进行总结,完成评量单,并公示单元评量结果。通过游戏进行算法创新思维设计,并放松。单元作业:布置习题,学生课下完成作业单,巩固所学内容。

4教学评量设计

编程算法课程》实施达成性评量体系。采用“五相十维”的的多元化评量方式。在出勤评量、单元评量、期中考核、期末考试、档案评量五个相度开展达成性评量,从学生自评、学生互评、教师点评、出勤表现、课堂表现、互动参与、技能达标、团队协作、语言表达、作业评价十个维度细化评量规准,以纸质评量单为媒介,以电子表格形式在课堂展现,形成评量单结合电子表格的达成性评量。单元学习评量采用多元评量原则,即内容多元、人员多元、形式多元。单元教学设计中的学习评量既可以考察学生知识、能力及素质的变化是否达到预期的教学目标,又可以间接检核教师教学资源和教学手段是否达标,也可以作为今后课程设计改进的参考。