(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.
数据结构课程设计总结篇5
关键词:课程内容;结构剖析;班主任素养;学习能力
随着我国综合实力的不断提高和国际地位的不断提高,学院计算机教育的重要性日渐显现下来,而计算机教育中数据结构课程则是重中之重。步入21世纪,计算机科学与技术及相关的专业一度成为热门专业,而数据结构是该学科的基础课程,要想把握良好的计算机技术就一定要打好基础,学好数据结构课程。但是,数据结构课程内容较为具象、复杂,具有动态性,中学生在学习的过程中觉得无从下手,到实践的过程中更是因为没有理论知识的支持而倍感诧异重重。因而,培养中学生的自信心,迸发中学生的热情便成为当务之急。笔者将在下文中结合自己几年的执教经验对数据结构课程进行探究,不足之处,还请指教。
一、数据课程内容及体系结构剖析
数据结构是计算机科学与应用专业的基础课程,该课程内容主要是介绍了软件设计中最常见的数据结构及其存储结构,本课程的难点是数据组织方面的动态存储结构及递归技术。笔者觉得,可以从以下几个方面进行教学:
1.做到学因而用
在进行数据课程教学的过程中,班主任可以结合实例向中学生展示整个课程的内容及每位章节的重难点知识,最大限度地迸发中学生的学习热情和积极性,这样除了可以使中学生对本课程有个大致的了解,使中学生挺好地把握理论知识,还可以培养中学生运用理论知识解决实际问题的能力,真正做到学因而用。
2.为中学生总结知识框架
班主任要采用科学的方式对教学内容进行整理,为中学生总结知识框架,这样易于中学生自主学习。知识框架要由多个互相关联的模块构成,以便课程中多种知识的组合。
3.进行严格的训练
因为数据课程知识较为具象,对于一些难度较大,较难理解的知识一定要进行及时、严格的训练,这样可以挺好地培养中学生严谨的学习心态,在试卷之中,班主任要适当地考查中学生对知识的深入理解情况,以便把握中学生的学习情况。
4.对疑难点知识的补充教学及总结
针对数据课程中个别重难点知识,班主任一定要进行深入地分析,而且可以依据实际情况对教材之中的原理部份进行转化以便中学生接受,还可以对教材中未提到的简易算法等进行补充,使中学生以便把握、理解。
5.重视对中学生能力的培养
数据课程具有较强的实践性,在理论教学的过程中蕴涵了许多重要的技术知识,但教材中多是一笔带过,使中学生很难理解。针对这些情况,班主任一定要对教材中没有展开讨论的重点技能性知识进行解析,以培养中学生解决问题的能力。
二、解析课程设计对计算机班主任的要求
课程设计主要是针对中学生的学习能力进行的,班主任一定要按照中学生的实际情况及兴趣爱好进行,要注意课题的难度,尽量控制在通过中学生的努力可以完成的范围内,既不要太难,也不要过分简单。须要注意的是,计算机班主任一定要对整个过程进行掌控,假如发觉这个课题较难,中学生耗费了很长的时间也不能解决,班主任就是及时进行指导,帮助中学生度过难关。由于,假如经过长时间的思索还没有解决问题,中学生的兴趣和信心就会在一定程度上减缓,最终会出现悲观心理,这十分不利于中学生的发展;除了这般,还要对数据结构课程的设计进行严格的初验,严谨的对待中学生的成绩评定。在设计完成后,班主任要进行现场评定,要充分地检测各类数据,明晰强调设计之中存在的缺陷,以易于中学生产生良好的治学心态,再者,对于中学生设计中的闪光点,班主任也要及时肯定,不吝惜鼓励、表扬的语言,使中学生感遭到班主任对其的期望感,迸发起中学生的学习动力。
通过对上文的阐述可知,对数据结构课程设计进行探究具有重要的意义,对我国整体院校计算机教育事业的发展是大有益处的。数据结构课程作为计算机技术与应用专业的基础课程,对该专业中学生的未来发展起到很大的作用,我们数据课程班主任任重而道远。虽然在当前的数据结构教育中还存在好多问题,在未来探求的公路上更是制约重重,但我深信,天道酬勤,只要我们广大院校计算机教育工作者恪尽职守,无私奉献,不断对数据结构课程进行探究,一定就能有效减轻我国当前的教育现况,为祖国培养出一批又批的综合素养较高的计算机专业人才,最终为祖国的发展和社会的进步奉献自己的一份力量。
参考文献:
[1]任雪萍,王立波,赵葆华.融入PIC-CDIO理念的“数据结构”课程教学变革[J].计算机教育,2012(12).
[2]查建中.面向经济全球化的工程教育变革战略:再论CDIO工程教育模式施行[J].计算机教育,2010(11).
[3]殷旭,胡景繁,张红.基于CDIO教育模式中学生学习评估方式的探求[J].高教峰会,2010(2).
数据结构课程设计总结篇6
关键词:数据结构;实践;多维;教材
“数据结构”是在20世纪60年代中期才筹建的一门课程。它主要讨论在软件开发过程中的剖析、设计与实现中的若干基本问题[1]:1)问题的建模。怎样把客观世界的问题映射到计算机世界中?怎样在计算机世界中叙述和储存客观世界中的对象?它是算法处理的对象。2)问题的求解方式,即算法。3)算法的评价。评价算法的好坏。算法是数据结构的主要研究内容。算法是计算机科学的核心,也是一种通常性的智能工具。“学习算法有助于人们对其他学科的理解,不管是物理、控制、甚至音乐,虽然非计算机专业的中学生,学习算法的理由也是十分充分的[2]。”因此,数据结构是中级程序设计、编译原理、操作系统、数据库、人工智能等课程的基础,它除了被作为计算机相关专业(如计算机科学与技术、软件工程、网络工程等)的一门核心的专业基础课;也是文科、理科、医科等学科中许多专业的选修或必修专业基础课。
“数据结构”课程具有具象性和实践性。客观世界中的问题在计算机中的表示与算法描述是具象的,但算法的实现是实践的,唯有通过实践能够真正把握课程内容,达到学习目标。一般在有限的课时内,班主任主要讲授的是具象部份,此种情况下假如没有相应的实践,课程的学习将就像在沙漠盖房,未能开馆。
为此,怎么完善才能有效的实践环节,仍然是班主任关注的问题。
笔者结合“数据结构”课程建设c语言程序课程设计题目计划书 简单计算器问题描述,就多维一体的“数据结构”实践教学系统的建立与实现进行总结,以期为“数据结构”实践教学提供一定的参考和借鉴。
1“数据结构”实践活动层次
实践是一切认识活动和知识的前提[3],中学生的认识主要是在实践活动中发展上去的[4]。笔者按照由浅入深、循序渐进和创新能力获得的规律,将课程实践活动按层次由低到高分为验证型实践、设计型实践、综合型实践和创新型实践。
1.1验证型实践
荀子说:“闻之,不若见之;见之,不若知之;知之,不若行之……行之,明也。”验证型实践指通过运行已实现的算法对书本知识及算法进行对错性的验证。验证理论的实践活动使中学生充分感悟知识的内在涵义,加深中学生对基础知识的理解,把握基本实验技能,为后续较高层次的实践活动奠定基础。验证型实践活动从内容上来讲,它屈从于课堂教学,是课堂教学的延展和补充。
1.2设计型实践
设计型实践指用所学的一个或若干个知识点去解决特定的问题。通过对问题的求解,了解知识的应用场景,获取知识的初步应用能力。智慧来始于知识,但知识不会自然而然地达成智慧,须要通过实践活动对知识“内化”和“活化”,起关键作用的是人的实践经验[5]。这儿的知识是局部的,是一个个知识点。大量的设计练习是解决较复杂的问题的基础。
1.3综合型实践
综合型实践是指将所学的数据结构思想与方式,应用到软件开发的剖析、设计与实现等方面。综合型实践要用到课程的许多知识点。能力与智慧的获得,绝不是简单的累积,此处,1+1≠2。学习者可能把握各个知识点及其各自的应用,但不等于具备解决复杂问题的能力,盲人摸象的典故正说明这一点。通过综合实践,引导中学生从全局的观点,认识数据结构课程的真谛和本质;指导中学生怎么综合地将所学的知识应用于软件开发过程中。
1.4创新型实践
创新型实践是指才能迸发和培养中学生创新能力的实践活动。培养具有创新精神和实践能力的有较高综合素养的人才是当代教育的目标,也是中学教学的出发点和归宿。但“人的发展以人在不同经验方法中发展为前提[5]”,创新型实践致力通过实践活动培养中学生的创新能力,由旧知识建构新知识,达到学习的目标。
2数据结构实践活动的施行
实践活动的参与者有班主任和中学生两方。中学生是实践的主体c语言程序课程设计题目计划书 简单计算器问题描述,致力运用所学的知识和理论发觉问题、分析问题、尝试解决问题,目的是增强解决问题的能力。班主任是引导者,为中学生提供必要的实践环境和条件,当中学生遇见困难时,给与指导;对中学生的实践成果给与评定,使她们不断进取。
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.
MultidimensionalPracticeTeachingSystemofDataStructure
XUHui,GUORongxiang,ZHOUJianmei
(SchoolofComputerSci.&Tech.,NantongUniversity,Nantong2260019,China)
Abstract:PracticeinteachingofDataStructureisakeytoaffectlearning.Inthispaper,thepracticeactivesaredividedintofourlevelfromeasytocomplication,theyaretestandverify,design,integrationandinnovation.Thedivisioniscorrespondedtotheaimofthecourselearningandcreativeabilityofstudentsasaprecondition.Theimplementationmethodofthepracticeisdiscussedfromtheroleofteachersandstudentsrespectivelyandauxiliarytextbookandwebsiteisintroduced.ThemultidimensionaloneofDataStructurepracticeteachingsystemisconstructedbasedontheseideasandmaterials.
Keywords:DataStructure;practice;multi-dimension;textbook
数据结构课程设计总结篇7
关键词:数据结构;实践教学体系;教学变革;教学模式
“十一五”期间,教育部计算机科学与技术教学指导委员会发表了《高等中学计算机科学与技术专业发展战略研究报告暨专业规范(试行)》。提出了“专业方向分类”发展的基本思想和三个辅助提议[1],其中建议之一是“加强中学生实践和动手能力的培养”。程序设计能力是计算机科学技术相关专业最为重要的专业技能,它是评价本专业大专生培养质量的首要指标。计算机科学技术专业中开办了中级语言程序设计、数据结构等程序设计类专业基础课程,这种课程的教学质量直接决定了中学生程序设计能力的高低。数据结构是最为重要的程序设计基础课程,是设计和实现各类应用软件的学科基础,课程教学疗效对中学生专业素质的产生具有重要的影响作用。
我校数据结构课程是四川省首批精品课程,为进一步提升课程教学质量,提高计算机专业中学生程序设计综合能力,课程组在安徽省高等中学教学研究立项课题“数据结构综合性课程设计探求与实践”和湖南师院实验教改重点课题“数据结构新型实践教学体系的开发、设计与探求”的支助下,对数据结构实践教学体系进行了优化设计与教学实践。实践表明,该体系对提升中学生程序设计综合能力起到了重要的作用。
1数据结构实践教学变革的必要性
数据结构教学中常年存在一部份老师重理论轻实践的现象,但是因为该课程内容比较具象,有时班主任虽然花了好多的时间打算,也常出现中学生看似明白算法思想,但是却未能真正实现算法的情况。主观上,中学生对这门课程的认识仅逗留在此门课是研究生入学考试的必考课程,晓得这门课程是十分重要的,原本并不能感受到这门课程在专业学习中的作用,对它在软件设计与开发中的作用更是缺少感性认识,中学生学习的兴趣有待于增强。
数据结构作为实践性很强的计算机专业基础课,教学中必然离不开实践。大部份院校采用验证性实验作为课程实践的主要内容,即布置针对课堂教学内容的大型练习题,让中学生去完成程序设计与实现。因为中学生可以采用教材中现成的方式实现这类实验,因而其估算思维并没得到有效的锻练[2]。另外,这类大型的实验通常都是由中学生独立完成,团队协作精神在实践过程中也没有得到有效的锻练。为了在课程实践环节强化团队协作,尽快地让中学生接受软件工程训练,必须对传统的实践环节进行变革。
2数据结构实践教学体系
2.1数据结构实践体系的设计
我校数据结构实践环节的教学变革最早从2000年开始,当时拟定的该课程的教学目标是:“通过实践巩固理论知识,培养中学生的程序设计能力”。具体做法是在教学计划中降低实践考评内容,经过3年实践,尽管中学生程序调试能力有了普遍的增强,但中学生的综合性程序设计能力有待进一步增强。2003年本课程获准山东省首批精品课程后,课程组对课程理论与实践教学进行了一系列的教学变革,到2006年,课程组举办的“基于网路协作模式的教学变革与实践”项目获湖南省教学成果二等奖,精品课程建设初显成效。但怎么进一步提升课程建设质量,提升中学生综合性程序设计能力成为课程组面临的又一新课题。因此,课程组全面变革数据结构实践教学体系,在数据结构课程中引入了综合实验及综合性课程设计,更改后的课程实验体系如图1所示。
其中“基础实验”与课堂讲授同步,目的是加深对某个知识点的理解;综合实验是对多个知识点进行综合训练,加深对课程内容的整体认识,要求中学生递交实验报告;课程设计是在课程结束后进行,要求中学生以项目组的方式合作完成小型程序,以培养中学生的综合程序设计能力及团队合作精神。班主任提供了一些基本选题如表1所示,中学生也可以自拟综合设计题目。课程组确定的综合性课程设计训练目标是:通过小型程序的编程训练,进一步培养中学生程序设计综合能力、增强团队协作意识。课程设计安排在本课程的后期进行,此时中学生已具备一定的程序设计基础,具有完成项目的能力。
2008年教育部高等中学计算机科学与技术教学指导委员会编制出版了《高等中学计算机科学与技术专业公共核心知识体系与课程》和《高等中学计算机科学技术专业实践体系与规范》两个指导性纲要,我们举办的教学变革思路与其指导思想完全吻合。
2.2数据结构实践教学体系的施行
具体施行方式如下:
1)基础实验与课堂教学同步进行,中学生在实验课中完成该部份内容。
2)综合实验与每一章的教学同步,通常要求中学生完成“线性表次序储存及其应用”,“线性表链式储存及其应用”,“栈与队列”,“树与应用”、“图”、“排序与检索”等综合性实验[3-4]。
3)对于综合性课程设计,因为涉及一些课外知识,所以须要向中学生介绍一些基于软件工程的小型程序开发方式,通过解析若干个小型程序范例,引导中学生学习和把握小型程序的设计思想和开发方式;对小型程序的训练题目给出问题的描述以及基本要求和中级要求,使中学生可以依据实际情况进行不同层次要求的训练。项目施行时要注意设计题目的趣味性,鼓励中学生在功能点上创新,并要求中学生递交课程设计报告(如图2所示)。
4)以项目式教学模式指导实践环节中的综合性课程设计[5-6],班主任在数据结构课程中以项目教学模式流程为主线来设计班主任和中学生所从事的各种活动。为帮助中学生选取题目,班主任不仅在日常的课程教学中引导中学生选题外,还举办专题讲堂,目的是引起中学生对某一个或若干专题感兴趣,期间也可以给中学生感兴趣的专题讲授一些概括性的知识。诸如,班主任结合数据结构介绍“互联网搜索引擎原理”等热点问题,极大地迸发了中学生的学习兴趣。
5)采用软件工程思想指导项目教学模式。在项目教学模式中,班主任根据软件工程的思想,要求中学生进行需求剖析、确定时间计划,确定行动方案、确定最终作品的方式、确定小组内的任务分工,班主任负责审定项目计划,并进行必要的更改。项目施行过程中,上一届留下的资源可以给下一届中学生借鉴,上一届中学生中选拔的优秀中学生可以作为我们举办项目教学的“学生助教”,让她们参与项目的审定,一方面节约了任课班主任大量的时间,另一方面也提升了“学生助教”的实际工作能力。项目组在确定题目后,在“助教”和老师的共同参与下拟定项目施行计划,举办项目研究,定期递交项目阶段性的研究成果或文档报告。
6)变革成绩评价机制,充分调动中学生的学习主动性。为了让中学生有激情参与到实验教学中来,课程组变革了传统的教学成绩评定机制,期终理论成绩考试只占总成绩的50%,另外50%成绩来始于中学生的项目实践成绩,图3是中学生集中上机考试现场。大学建有机器人开放实验室、ACM程序设计大赛组等中学生创新实验平台。实验室成员从数据结构与算法方面具有较强动手能力的中学生中选拔,ACM程序设计大赛队的成员也基本上来自其中的优秀中学生。在课程项目中表现突出的中学生有更多的机会参与到大学各种纵向或横向课题的研究梯队。以上激励举措,极大的调动了中学生的学习主观能动性。
3实践教学变革成效
在数据结构实践体系中,综合性课程设计通过问题建模培养中学生将所学知识和实际问题联系上去的能力与意识;数据结构设计彰显数据的组织结构对问题求解的差别;算法设计与实现依据具体问题的要求设计出合理的算法;测试帮助发觉设计中所存在的问题,彰显设计的性能。经过综合性课程设计的训练的中学生,在后续软件开发课程的学习中表现出显著的优势。课程组经过3年的教学变革,主要取得了以下教学变革成效:
1)出版《数据结构C语言版(第二版)》教材一部[3],出版《数据结构实验》教材一部[4];
2)培养了中学生的自主学习能力,培养了中学生团队合作的精神,训练了中学生的组织管理能力,一些中学生的科研能力得到了初期的培养,参与过项目设计的中学生在中学科研立项中获得好成绩,中学生撰写的研究论文多篇发表在核心刊物上。
3)煅炼了中学生小型程序设计的开发能力,中学生成绩明显提高,图4是中学生连续两年考试的试题剖析情况,从中可以看出实践教学变革对中学生成绩提高具有积极的作用;
4)为大学ACM程序设计大赛队和机器人实验室提供了后备力量。本校ACM队是广东院校惟一一支两年内迅速成长起来,每年都有资格和能力参赛,并与国外诸多名校登台竞技的队伍。图5是我院中学生在第33届ACM国际学院程序设计大赛欧洲区现场赛赛事情况。
据悉,课程组将本课程实践教学变革方式在“高级语言程序设计”等课程中推广,2009年课程组主持申报的“程序设计教学变革与创新”项目获准湖南师院第十一批教学成果二等奖。
4结语
通过变革实验教学体系,大学中学生程序设计能力得到了大幅度提升,中学生多次在ACM程序设计大赛与广茂达杯机器人比赛上获得好成绩。其实,因为中学生个体差别性较大,较好地完成小型课程设计的朋友所占比列还不高,课程设计指导班主任的力量还比较薄弱,不能满足中学生的补习需求。实践教学变革的最大的获益者是中学生,实践表明,较好完成实践环节训练的中学生其程序设计能力、后续自主学习能力都得到了很大的提升。图6是中学生自发地通过网路给班主任留言,抒发了学习感受。今后,课程组将进一步总结实践教学变革方式,努力提升中学生软件开发综合能力,为计算机专业人才培养做出更大的贡献。
参考文献:
[1]教育部高等中学计算机科学与技术教学指导委员会.高等中学计算机科学与技术专业实践教学体系与规范[M].复旦学院出版社,2008:7-9.
[2]陈越,何钦铭,冯雁.数据结构综合性课程设计教学探求与实践[J].计算机教育,2008(4):54-55.
[3]李云清,杨庆红,揭安全.数据结构(C语言版)[M].上海:人民邮电出版社,2009(6):130-160.
[4]刘芳,揭安全.数据结构实验[M].上海:东北师范学院出版社,2010(1):1-40.
[5]揭安全,李云清,杨庆红,等.项目教学模式指导的“数据结构与算法”教学变革[J].计算机教育,2008(11):21-23
[6]JieAnquan,GanDengwen,YangQinghong,etal.ResearchandPracticeofthePBLModelforDataStructureCurriculum[C]//Proceedingsof20094thInternationalConferenceoncomputerScience&Education.上海:上海学院出版社,2009:1512-1515.
DesignandImplementofPracticalTeachingSystemforDataStructure
JIEAn-quan,LIYun-qing,YANGQing-hong,HUAZhi-zhang,WANGLan
(CollegeofComputerInformation&Engineering,JiangxiNormalUniversity,Nanchang330022,China)
Abstract:DataStructureisthecurriculumwithstrongtheoreticalandpracticalcharacteristics.TheconstructionofpracticeteachingsystemforDataStructureplaysanimportantroleinthecultivationofpracticalandinnovativeabilityofstudents.BycombiningspecialtycharacteristicsofDataStructure,thecontents,significanceandachievementofbuildingspecializedexperimentalteachingareinvestigated,basedonthereorganizationandreformofexperimentalcontent,teachingmodelandteachingmethods.
数据结构课程设计总结篇8
摘要:“数据结构”课程是计算机学科的专业基础课,是一门实践性比较强的课程。课程中的实验环节变得尤为重要,该环节可以锻练和提升中学生对复杂程序的设计能力。笔者在多年的教学过程中摸索出实验环节的教学模式,与你们共同阐述。
关键词:数据结构;教学内容;组织方式;考评形式
中图分类号:G642
文献标示码:B
借助计算机来解决实际问题的步骤是:给出问题描述,将问题具象成物理模型,依据物理模型写出求解问题的算法,再依照算法写出程序代码,最后上机调试并剖析结果。在上述过程中,非数值的物理模型是数据结构研究的主体,它操作实现主要是通过数据结构的实验教学环节来完成的,在该教学环节中作为教学主体的中学生,首先要具备具象思维能力和语言基础。常常在环节施行过程中,语言基础是薄弱环节,以至于课时用完了,中学生还是写不出满意的算法及代码。鉴于此,我们在教学内容、组织方式、考核方法等教学环节中进行了一些设计,与你们一上去阐述。
1教学内容
我们在教学内容上,围绕课内、课外两条主线进行变革,给中学生较大的自主学习空间,有利于中学生创新精神及实践能力培养。整个实验教学由浅入深,重在基础、提高能力、挖掘潜力、拓展思路。在课时内的教学主要以基础性实验为主,安排一个综合性实验;课时外的教学主要以设计性实验和综合性实验为主。
1.1学时内的教学内容
在我校数据结构课程共64学时,理论课48学时,实验课16学时。安排了5个实验项目,因为多数中学生语言基础不算太好,非常是表针的运用和结构体的定义是薄弱环节,所以在做实验项目时,主要是从教材上的算法出发,致使中学生有章可循:
项目1:次序表的操作
主要训练中学生对次序储存结构的理解,把握次序表的查找、插入和删掉等基本操作;同时引导中学生对于静态参数传递和动态参数传递的使用方式。
项目2:单数组的操作
主要是与次序储存结构进行比较,完成线性表在链式储存结构上的查找、求厚度、插入、删除等基本操作。
项目3:栈和队列的应用―停车场的管理
深入了解栈和队列的特点,便于在实际问题背景下灵活运用;借助两个栈和一个队列模拟停车场管理及相关操作。
项目4:二叉树的遍历
把握二叉树的结构特点,以及二叉数组储存结构的特性;把握二叉树三种(先序、中序和后序)遍历方式;熟悉而且把握递归算法。
项目5:折半查找和快速排序
把握折半查找和快速排序的方式,把握要进行折半查找应当采取的储存结构方式。并进行对其进行时间复杂度的剖析。
对于每位实验项目的实验目的和实验要求,提早2周置于教学平台上。在实验前1周,借助补习课时间,以测试的方式,让中学生写出算法代码,因为每位实验基本上可以在教材中找到源代码痕迹,所以难度不大。
在实验教学过程中,采用任务驱动式的教学模式,首先从总体思路上讲解10分钟左右,边补习边发觉问题,每半个小时总结1次。因为中学生早已在课前作好了打算,在实验室里她们博得了更多的自主时间拿来调试程序,剖析结果。中学生水平良莠不齐,在上课过程中穿插实验初验考评,考评的方式是现场写出主要操作的代码,在规定的时间内进行调试、分析。初验完一个模块,中学生再进行下一个任务。班主任通过授课、辅导、验收促使实验课堂充实上去,因为中学生每位时间段都有活干,所以课堂氛围十分活跃,讨论热烈。
1.2学时外的教学内容
在学时外,以课程设计的方式,借助开放实验室时间,严格依照软件工程的思想进行训练。
在课程设计时,班主任列举多个设计课题,每位课题都有相应的要求或说明。各课题的难易度是有差别的,每位课题后以标准分的方式标出了难易度。诸如:
课题1:设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站下来。下一个人,即原先的第k+1个位置上的人,又从1开始报数,再报数到k的人站下来。依此重复下去,直至全部的人都站下来为止。试设计一个程序求出出列序列(难易度90)。
课题2:用递归算法和非递归算法实现下边问题,并比较其算法优势。把一只老鼠放进一个无盖的大箱内,箱内设置若干搁板,使老鼠走动的方向遭到阻挠,看其怎样找到一条通道,走出大箱(难易度80)。
“难易度90”表示设计中的各项全部达到要求时的最高得分大致为90。因而,出席课程设计的中学生首先要了解设计的任务,仔细阅读各题的设计要求,之后按照自己的基础和能力情况从中选择一题。通常来说,选择课题应以在规定的时间内能完成,并能得到应有的锻练为基本原则。课程设计的总体思路是:数据模型选定构造求解算法选择储存结构编撰程序代码调试测试总结剖析。
在做课程设计时,不再屈从于语言环境的限制和储存结构的限制,主要锻练中学生的开放思维能力和综合知识的应用能力。同时,引导中学生从结构化程序设计到面向对象程序设计的思索。诸如中学生正在学习C#,在做课题1时,不仅传统的设计方式外,可以引导中学生画出类图和次序图,写出C#的代码。
设计结束后要写出课程设计报告,以作为整个课程设计评分的书面根据和存档材料。主要包括:需求剖析、概要设计、详细设计、调试剖析、用户使用说明、测试结果、参考文献等。课时外的训练主要是为结业设计打下基础,同时也培养了中学生的团队协作精神。
2组织方式
2.1中学生的组织
对于中学生进行分组,每组中根据好、中、差的中学生进行搭配。因为中学生水平良莠不齐,早做完的中学生,进行考评初验。初验合格,同时给出相关思索题,可以再对于思索题进行进一步的思索,锻练创新精神。同时,让已完成任务的中学生补习未完成任务的中学生,这样培养了中学生的团队协作精神,课堂氛围十分活跃,迸发了中学生学习的主动性。对于班主任的工作也减少了一些,班主任主要是总体布署,分步考评,可以有充足的时间进行初验,比较清楚地把握总体情况,便于讲评。这样组织中学生,可以解决“优等生吃不饱,差等生吃不了”的局面,实现了“因才施教”。
2.2内容的组织
对于每一个实验项目的实验目的、相关要求等,以实验指导书的方式与中学生碰面,一本好的实验指导书能给中学生的上机实验带来事半功倍的疗效。
首先,让中学生明晰实验目的和要求。每位实验项目都给出了实验目的,但是提出了具体要求。有了实验目的,中学生才有方向性;有了具体要求,中学生实验时才有章可循。对于要求,要按时间分块执行。诸如单数组的操作为2学时,第一个学时完成构建、查找、部分主函数工作;第二学时在第一学时基础上完成插入、删除操作,建立主函数。每一个学时在最后进行初验,若有问题通过小组完成。
其次,让中学生把握实验步骤。每一个实验项目依照软件工程的思想去组织,先需求剖析,具象出数据结构模型,再明晰数据类型,详尽设计,最后给出类C语言的算法描述。要求中学生要严格遵守实验步骤来思索问题,这样,可以培养中学生良好的工作作风和解决问题的方式,而且为后续课程做打算。
3考评形式
市场经济体制下的中学生不如计划经济体制下的中学生好教育,非常目前院校扩招,入学的中学生素养良莠不齐,基础相对薄弱,自学能力不强,不少中学生在学习上存在畏难心理。而对于高等教育也不能增加要求,这样就要求在教学模式上进行革新,我校对教和学提出两个转变,“变中学生管理为学习管理,变管理中学生为服务中学生”。对于课程教学,不能再采取应试教育下的考评方式。鉴于此,在数据结构的教学过程中,非常是实验教学,探求出了新的考评方式。
分数对中学生来说是十分重要的,借此作为课程管理的契机。对于教学计划内的实验项目成绩分成两个部份,一个是个人成绩,一个是小组成绩。个人成绩主要考评中学生个人能力,小组成绩主要是考评中学生的团队协作精神。对于个人成绩考评方式有两个方面,一个方面是中学生的程序代码调试技能的测试,一个方面是书写实验报告,从实验报告上可以考查中学生的逻辑组织能力。笔者把该考评模式称为“实验2+2”模式。每位实验项目结束前进行初验考评,时常进行阶段性考评,主要是迸发中学生的学习兴趣,保证了课堂教学纪律,基本没有出勤的中学生,让中学生找不下来不学习的理由,由于每处都与成绩挂钩,都在拚命的去“挣分”。
对于课程设计部份,实验室开放时间结束时,由中学生递交课程设计源代码和设计总结报告。源代码递交时,要生成可执行文件,对文件进行压缩,压缩文件名为“学号+姓名”形式,发送到指定邮箱地址。课程设计成绩依据中学生设计任务完成情况、设计报告、设计成果的质量以及答辩情况综合评定。完成情况主要包括:功能实现情况和程序设计情况;设计报告包括课程设计报告格式,课程设计思路及设计过程,以及对设计的自我评价,收获和感受等;答辩要求思路清晰,模块关系清楚,回答问题敏捷。
对于中学生的学业成绩采用结构化成绩,把100分不再作为一个整体看待,把它融进教学的全过程中去。中学生的学业成绩由平常成绩、副卷成绩和主卷成绩构成,平常成绩占20%,副卷成绩占20%,主卷成绩占60%。在平常成绩中课程设计10分,作业和平常课堂表现5分,小考5分;副卷成绩中个人成绩15分(其中程序调试10分,实验报告5分),小组成绩5分。
4推论
通过施行验证,疗效是良好的。实验的创新也推动了整个课程的进步,非常是上课缺勤率,基本上是满勤。课堂氛围活跃,问题讨论热烈,中学生的学习主动性大大增强了,网路教学平台登陆次数显著增多。在问题答疑和考评初验方面,尽管降低了班主任的教学工作量,并且提升了班主任的工作热情。真正实现了“教”和“学”的良好互动,提升了教学质量。
参考文献:
[1]周苏.“数据结构与算法”的教学变革和实验创新[J].计算机教育,2007,(15).
[2]严蔚敏,吴伟民.数据结构[M].上海:北大学院出版社,1997.