数据结构实验报告通用12篇

开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇数据结构实验报告,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。

1实验教学在“数据结构”教学中的地位

2“数据结构”实验教学的改革和实践

要推进实验教学的改革,首先要改革现有教材,应重视学生实验能力的培养,体现以学科为基础的学科特色。在“数据结构”教学中,重点是让学生通过实验环节学习数据结构,让学生明白哪些知识是基本点,哪些是难点和重点,明确学习目的和作用。在这样的指导思想下,我们在2005年组织课题组成员,按照CC2001的要求,结合我国计算机的发展和2009年考研大纲,编写了C++描述的《数据结构与算法》教材,于2008年秋季开始使用,效果良好。每过一学期,我们都根据当前情况和学生意见及时更新实验报告。比如最初的实验报告有一道字符串的实验题,随着计算机的发展,不论是C++语言还是Java语言,已经有现成的字符串库函数,学生只要会使用库函数即可,不需自己编写,而且考研大纲也不作要求,所以我们及时更新了教学内容和实验内容,并在实验题目中增加了ACM大赛的实验题,为学生参加程序设计大赛打下良好的基础。

2.2设计合理的实验题目

我们还鼓励学生对教材中的遗留问题进行自行设计,也鼓励学生根据自己的爱好做一些小的系统实验。这不但使学生的基本知识和实验技能得到巩固,还可以提高学生的创新能力。实验报告的每道实验题都有明确的“对问题的描述”、“实验目的”、“实验内容及要求”、“测试数据”和“思考”,学生每做一道题,都明白实验的目的和要求,完成后,教师还要根据“思考”题目及时向学生提出问题,学生可以自行设计实验方法来解决,教师也可以引导学生设计疑问,主动将教材上的验证性实验转变为设计性实验,教会他们举一反三,促进学生的思维向新和深的层次发展,加深他们对所学知识的理解。

2.3建立“以老带新,青年为主”的教学梯队

我们的教学梯队平均年龄35岁,教授、副教授占40%,讲师占40%,助教占20%。青年教师中有硕士和博士研究生,他们接受新鲜事物快,精力充沛且动手能力强,但缺乏教学经验,所以我们要求青年教师至少带两年的实验辅导和习题课,在第一次主讲之前至少要听有经验教师一学期的课,而有经验的教师还要不断试听青年教师的课,指出不足之处,帮助他们尽快提高教学水平。经过几年的锻炼,青年教师陆续登上讲台,共有3人在内蒙古大学“青年教学技艺大赛”中获得了1个一等奖和2个二等奖,其中1人获得高等院校第四届青年教师课题教学技能大赛理科组一等奖,成为这门课的骨干教师。

2.4加强上机辅导和课后辅导

每做一道实验题前,教师都会大致解释题目的含义、用到的知识模块,有的还要引导学生查阅一些参考资料。每当一个模块结束后(以一个逻辑结构为一个模块),我们都要把几个班的学生组织在一起(平时上课是小班),对已经验收过的较好程序和普遍存在的问题进行统一讲解和总结。通过总结,学生加深对实验的理解,知其然,也知其所以然。通过融会贯通已完成的各部分实验,自然引出下一模块的实验。

由于现在学生都没有固定教室,教师没有辅导的固定地点,我们每周一至周四下午安排一名教师在办公室答疑,哪个班的学生都可以到指定办公室问问题,值班教师在办公室的机器上修改学生的程序,这样比在教室里单纯讲解理论的效果要好得多。

2.5加大对实验环节的考核力度

实践证明,这样教学改革不仅能激发学生学习的积极性,还能锻炼他们的团队精神,让他们学会软件开发的整个过程,为他们编程能力的提高、毕业论文设计和走向工作岗位打下良好基础。

3结束语

从2009年开始,计算机硕士研究生入学考试采取全国统考的方式,“数据结构”是必考科目,而且占分值最大,这更能说明这门课在计算机专业中的重要性。这些年来,我们一直致力于这门课的建设,从教材选用、课程体系建设、师资队伍、课程教学、实验教学等各个环节进行了不断的实践和探索[5]。我们相信,通过加大对“数据结构”教学,特别是实验环节的改革和实践,一定能进一步调动起学生学习这门课的积极性,激励他们热爱计算机,热爱科学,成为IT业的优秀人才。

参考文献:

[1]殷人昆.数据结构[M].北京:清华大学出版社,2007.

[2]王昭荣,曾卫东,鲁兴萌.改革实验教学及管理模式,培养创新型本科人才[J].高等理科教育,2007(1):63-65.

[3]汪沁.基于“数据结构”实验的探讨和研究[J].中国教育信息化,2007(4):17-19.

[4]徐大华.程序设计语言教学方法探讨[J].高等理科教育,2007(1):36-38.

[5]赵艳红,邵定宏.“数据结构”教学的探索与研究[J].计算机教育,2008(9):131-132.

ReformandPracticeinDataStructureCourse’sExperimentalAspects

ZHAOYu-lan

(CollegeofComputerScience,NeimongolUniversity,Hohhot010021,China)

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

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

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

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

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

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

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

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

2建构式数据结构教学

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

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

2.1理论教学措施

1)组织小型讨论。

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

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

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

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

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.

摘要:“数据结构”课程是计算机学科的专业基础课,是一门实践性比较强的课程。课程中的实验环节显得尤为重要,该环节可以锻炼和提高学生对复杂程序的设计能力。笔者在多年的教学过程中摸索出实验环节的教学模式,与大家共同探讨。

关键词:数据结构;教学内容;组织形式;考核方式

中图分类号:G642

文献标识码:B

利用计算机来解决实际问题的步骤是:给出问题描述,将问题抽象成数学模型,根据数学模型写出求解问题的算法,再根据算法写出程序代码,最后上机调试并分析结果。在上述过程中,非数值的数学模型是数据结构研究的主体,它操作实现主要是通过数据结构的实验教学环节来完成的,在该教学环节中作为教学主体的学生,首先要具备抽象思维能力和语言基础。往往在环节实施过程中,语言基础是薄弱环节,以至于课时用完了,学生还是写不出满意的算法及代码。鉴于此,我们在教学内容、组织形式、考核方式等教学环节中进行了一些设计,与大家一起来探讨。

1教学内容

我们在教学内容上,围绕课内、课外两条主线进行改革,给学生较大的自主学习空间,有利于学生创新精神及实践能力培养。整个实验教学由浅入深,重在基础、提高能力、挖掘潜力、拓展思路。在课时内的教学主要以基础性实验为主,安排一个综合性实验;课时外的教学主要以设计性实验和综合性实验为主。

1.1学时内的教学内容

在我校数据结构课程共64学时,理论课48学时,实验课16学时。安排了5个实验项目,由于多数学生语言基础不算太好,特别是指针的运用和结构体的定义是薄弱环节,所以在做实验项目时,主要是从教材上的算法出发,使得学生有章可循:

项目1:顺序表的操作

主要训练学生对顺序存储结构的理解,掌握顺序表的查找、插入和删除等基本操作;同时引导学生对于静态参数传递和动态参数传递的使用方法。

项目2:单链表的操作

主要是与顺序存储结构进行比较,完成线性表在链式存储结构上的查找、求长度、插入、删除等基本操作。

项目3:栈和队列的应用―停车场的管理

项目4:二叉树的遍历

掌握二叉树的结构特征,以及二叉链表存储结构的特点;掌握二叉树三种(先序、中序和后序)遍历方法;熟悉并且掌握递归算法。

项目5:折半查找和快速排序

1.2学时外的教学内容

在课程设计时,教师列出多个设计课题,每个课题都有相应的要求或说明。各课题的难易度是有差异的,每个课题后以标准分的形式标出了难易度。例如:

课题1:设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。依此重复下去,直到全部的人都站出来为止。试设计一个程序求出出列序列(难易度90)。

课题2:用递归算法和非递归算法实现下面问题,并比较其算法优势。把一只老鼠放进一个无盖的大箱内,箱内设置若干隔板,使老鼠走动的方向受到阻碍,看其如何找到一条通道,走出大箱(难易度80)。

在做课程设计时,不再拘泥于语言环境的限制和存储结构的限制,主要锻炼学生的开放思维能力和综合知识的应用能力。同时,引导学生从结构化程序设计到面向对象程序设计的思考。例如学生正在学习C#,在做课题1时,除了传统的设计方法外,可以引导学生画出类图和顺序图,写出C#的代码。

设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。主要包括:需求分析、概要设计、详细设计、调试分析、用户使用说明、测试结果、参考文献等。课时外的训练主要是为毕业设计打下基础,同时也培养了学生的团队协作精神。

2组织形式

2.1学生的组织

2.2内容的组织

其次,让学生掌握实验步骤。每一个实验项目按照软件工程的思想去组织,先需求分析,抽象出数据结构模型,再明确数据类型,详细设计,最后给出类C语言的算法描述。要求学生要严格遵循实验步骤来思考问题,这样,可以培养学生良好的工作作风和解决问题的方法,并且为后续课程做准备。

3考核方式

市场经济体制下的学生不如计划经济体制下的学生好教育,特别目前高校扩招,入学的学生素质参差不齐,基础相对薄弱,自学能力不强,不少学生在学习上存在畏难心理。而对于高等教育也不能降低要求,这样就要求在教学模式上进行革新,我校对教和学提出两个转变,“变学生管理为学习管理,变管理学生为服务学生”。对于课程教学,不能再采取应试教育下的考核形式。鉴于此,在数据结构的教学过程中,特别是实验教学,探索出了新的考核形式。

分数对学生来说是非常重要的,以此作为课程管理的抓手。对于教学计划内的实验项目成绩分成两个部分,一个是个人成绩,一个是小组成绩。个人成绩主要考核学生个人能力,小组成绩主要是考核学生的团队协作精神。对于个人成绩考核形式有两个方面,一个方面是学生的程序代码调试技能的测试,一个方面是书写实验报告,从实验报告上可以考查学生的逻辑组织能力。笔者把该考核模式称为“实验2+2”模式。每个实验项目结束前进行验收考核,经常进行阶段性考核,主要是激发学生的学习兴趣,保证了课堂教学纪律,基本没有缺勤的学生,让学生找不出来不学习的理由,因为每处都与成绩挂钩,都在拼命的去“挣分”。

对于学生的学业成绩采用结构化成绩,把100分不再作为一个整体看待,把它融进教学的全过程中去。学生的学业成绩由平时成绩、副卷成绩和主卷成绩构成,平时成绩占20%,副卷成绩占20%,主卷成绩占60%。在平时成绩中课程设计10分,作业和平时课堂表现5分,小考5分;副卷成绩中个人成绩15分(其中程序调试10分,实验报告5分),小组成绩5分。

4结论

[1]周苏.“数据结构与算法”的教学改革和实验创新[J].计算机教育,2007,(15).

关键词:建构主义;重点课程建设;弹性内容体系;网络化协作学习;基于兴趣的学习

近年来,随着军队信息化建设步伐的加快,各军校都致力于信息类专业的建设[1]。作为信息类专业基础课程和专业课程的结合点,“数据结构”的重要性不言而喻,我院也于2009年确定了“数据结构”重点课程建设,教学对象主要是生长军官学历教育指挥类学员。以建构主义教学理念[2]为指导,将“教员引导下的学员自主学习”教学思想贯彻于课程建设的全过程,把握合理的课程教学体系建设,是本重点课程建设的主要特色。下面,我们将就体现该特色的具体实践过程及其所包含的教学内容体系建设、教学方法改革以及教学团队建设等组成环节进行阐述。

1教学内容体系建设

在课程教学体系中,教学内容是基础,不同的教学内容决定着不同的教学形式与方法,对于学员的知识能力建构的效率和效果也有着不同的影响。目前,各高校普遍压缩了专业基础课教学课时,因此,为了让学员在有限的学时内进行有效的学习,我们必须首先考虑课程教学内容体系建设问题。

一般讲,“数据结构”课程包括线性结构、树型结构、图状结构、查找与排序等内容,并以抽象数据类型、算法度量与评价贯穿其中[3]。各类院校根据其人才培养方案及学员特点,在课程内容组织上也有明显区别:有突出数据逻辑结构的,有侧重算法实现及度量的;有用C语言描述的,有用C++或Java描述的。结合我院信息类专业课程体系设置以及学员特点,根据ACM/IEEECC2005[4]和教育部CCC2006[5]学科规范,我们在课程内容体系建设方面主要实施了以下几点措施。

1.1采用弹性课程内容体系

由于“数据结构”课程课时有限,本院数据结构课程仅为50学时,课程内容设置不可能面面俱到,必须结合建构主义思想及学员的具体特点确定教学内容。在此次课程建设中,我们在课堂讲授和实践教学环节中均采用了弹性内容体系,在课程讲授内容设置上,我们主要采用了“基本模块”+“扩充模块”的体系,其中“基本模块”包括算法度量基础、线性结构、字符串与模式匹配、树、图、排序、检索等7个模块共16个二级知识点,要求教员必须全部讲解完成;“扩充模块”则包括广义表、AVL树、倒排序及一些前沿应用譬如XML的DOM树、OWL的分类树等,由教员根据学员学习情况灵活掌握实施。

1.2采用C++结合STL(StandardTemplateLibrary)框架的描述方法

1.3规范化的教学文档建设

教学是否符合先进的教学理念,是否采用了合理的教学方法,我们从教学文档中就可以看出来,教学文档的形式十分重要,而更重要是教学文档的内容。在本次课程建设中,我们采用了规范化的模板,对课程标准、课程设计、教学计划、教学大纲、教案等进行了统一的设计与规范。譬如,在教案设计中,哪些内容易于CAI展现,哪些内容适合传统板书,我们都进行了仔细研究。譬如概念定义、背景知识、计算结论等,可以拟制要点并进行文本展示;公式定理推导过程如二叉树的性质推导,必须进行板书;原理与过程展示如递归过程分析、树的遍历、排序过程等,推荐使用动画。同时,我们要求教员授课时必须将教材、课件、教案、教学实施表(包括课程标准、大纲、计划)等文档备齐并通过教学组审核。课建组认为:严格规范的教学文档看似传统的要求,实则是课程教学是否成功的前提条件。譬如,课程标准体现了课程的知识体系,即知识建构的基础;教学计划、课程设计与教案则体现了知识的传递体系,即合理地引导学员完成知识的掌握与新知识的建构。通过教学文档建设,提高了课程教学的规范化。

2教学方法改革

在本次“数据结构”重点课程建设中,教学方法改革是研究重点。传统“教员教,学员学”的方法已不能适应“以学员为中心”的学习需要;而照本宣科式的“PPT课件播放朗读”已严重束缚了学员学习过程中的主动性与创造性,与素质教育目标背道而驰。对此,我们在本次课程建设中以建构主义理念为指导,结合“信息化教学”的特点,提出了“网络化协作学习方法”、“基于兴趣的学习模式”两种教学方法并进行了研究尝试。

2.1网络化协作学习方法

“网络化协作学习”是一种以WEB网站和信息资源为依托的新型学习方式[6],在信息资源平台面前,教员和学员、学员和学员之间更加平等,它提高了学员的学习自主性,有利于以学员为中心的学习。在“数据结构”重点课程建设中,我们通过引入“网络化协作学习”,引导学员在课后进行有效的自主学习,从而达到能力培养的要求。在“网络化协同学习”教学方法实施过程中,我们始终把握两个要点:网络课堂的开设与网络化协同学习的实践。

2.1.1信息资源建设与网络课堂开设

2.1.2网络化协同学习方法实践

信息资源的建设是基础,而基于信息资源的“网络化协作学习”实践则是该教学方法改革的重点。“网络化协作学习”方法实质上是一种建构主义理念指导下的信息化教学方法,它即不同于远程教育模式,也有异于绝大多数的自学网站,“网络化协同学习”强调在教员引导下的学员自主学习和协作学习。在该方法学习中,教员是“导演”,是“总指挥”,教员需要完成学习场景组织、学习进度管理、学习效果评价等活动;学员则可扮演“演员”与“分队指挥”双重角色。作为“演员”,学员需要提出学习计划、实施自主学习;作为“分队指挥”,学员需要组织学习小组、分解学习任务、合成工作成果。

2.2基于兴趣的学习模式

在课程引入阶段,我们将“数据结构”与学员所学专业领域问题相结合,让学员认识到学习“数据结构”课程的现实意义,引发学员的学习兴趣。在课程展开阶段,我们采用“循序渐近式教学”与“任务驱动式学习”两种方法增强学员学习兴趣。“循序渐近式教学”主要指重视先导课与当前课程的衔接,让学员“能够学”;而“任务驱动式学习”则通过应用情景创设提高学员学习知识、解决问题的兴趣,让学员“有兴趣学”。“基于兴趣的学习模式”的第三个主要措施即课堂气氛营造,通过多种方法譬如小组竞赛、知识竞答、结对互助活跃课堂学习气氛,使学员“乐于学”。

3教学团队建设

加强教学团队建设是重点课程建设一项重要内容。教学队伍建设的质量,直接关系到课程教学的质量和人才培养的水平。因此,在课程建设初期,我们根据教研室和课建设小组的具体情况制定了“引进

此次“数据结构”重点课程建设以建构主义教学理念为指导,在教学内容、教学方法、考核方式及教学团队等方面进行了改革与实践,特别是一些改革后的、具有通用性的内容和方法,如“数据结构”课程弹性内容体系、基于兴趣的“数据结构”学习模式以及网络化协作学习方法在本次课程建设得到应用,它为下一阶段的软件基础类课程群的建设打下了基础。

[1]候喜贵.军队信息化建设研究[M].北京:出版社,2002:17-19.

[2]张建伟,陈琦.从认知主义到建构主义[J].北京师范大学学报:社会科学版,1996(4):75-82.

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

[4]ACM/AIS/putingCurricula2005[EB/OL].(2007-05-08)[2010-12-20]./education/

curric_vols/CC2005-March06Final.pdf.

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

[6]陈文汉,张建奇.高等教育网络化教学研究综述[J].比较教学研究,2003(9):46-52.

[7]张立,王伟嘉,石岩,等.基于学习兴趣开展数据结构教学[J].计算机教育,2010(13):95-97.

KeyCourseConstructionforDataStructureBaseonInnovativeTeachingIdeology

ZHANGLi,SHIYan,ZHANGHongping,WANGWeijia,YUCongbin

(DepartmentofLogisticalInformationEngineering,LogisticalEngineeringUniversity,Chongqing401311,China)

【关键词】数据结构与算法实验改革平台建设

【中图分类号】G【文献标识码】A

数据结构与算法实验是计算机专业学生必修基础课数据结构与算法的配套实验课程,是培养学生程序设计技能必不可少的重要环节。其目标之一是培养学生能运用理论知识与算法技术分析解决实际问题,能运用高级程序设计语言编程实现算法。从近年实验情况来看,在上机编写程序实现具体算法时遇到的种种问题,效果不容乐观,学生很难按时完成实验所要求的内容。

一、实验教学存在的问题与分析

数据结构与算法实验是一门实践性很强的技术基础课,经过多年实验教学分析,发现普遍存在如下主要问题:

(一)课程抽象,实验难度大

数据结构具有一定的抽象性,学生面对抽象概念在学习过程中常会遇到困难,基本每本理论教材在呈现概念时都会受到多方面限制,比如篇幅的限制,省略了算法细节部分或只给出伪代码,由学生自己补充,学生需要将算法用程序设计方法实现,完成有一定难度和技巧的程序设计并上机调试运行。对编程基础稍微薄弱的学生来说,就会出现不小的困难。

(三)学生程序设计语言课程基础薄弱

数据结构与算法课程是第四学期开设,对于很多先修课程要求高,高级程序设计语言是大学生进校第一、二学期学习,第一学期学习过程序设计思想,第二学期学习面向对象程序设计思想,由于大部分同学高中没接触过计算机语言学习,对过程程序设计思想还没掌握透,第二学期的面向对象程序设计学习又开始,学习非常吃力;导致常用的一些语法结构,如指针和结构体等内容难于理解。而这些语法恰恰是程序设计语言教学时的难点,也正好是学生完成数据结构实验必须掌握的内容,这给部分学生学习带来了一定困难。

(四)编程语言难

数据结构与算法编程语言描述主要用到C++语言,并大量用到了指针、链表和结构体等运算,这部分内容正好是大多数学生掌握知识点薄弱的环节,导致学生很难用高级语言将教材中的算法描述出来,由于问题的堆积、实验的欠账,容易使学生丧失学习兴趣和信心,导致学生间抄袭程序或实验报告的现象。

(五)编程技巧差

普通学生在低年级只编写过功能单一、结构简单的程序;而从功能单一的简单程序向涉及算法和稍复杂程序的数据结构编写过渡学习时,需循序渐进的方式和细致的引导,紧密结合理论教学。学生一下从简单编程直接到复杂的程序设计,不仅不适应,且设计技巧性较差。

二、实验教学改革目标的提出

根据以上学生实验时出现的诸多问题,特提出该课程的实验改革目标:

二是因材施教,让原本不同水平和能力起点的学生通过数据结构实验,能力和水平都有所提高,并且有兴趣有信心学好数据结构课程。

三是培养学生多方面能力,比如团队精神,口头表达能力,对学生全方面发展起到较好的推动作用。

三、调整实验项目内容,使其更加符合学生的认知规律

数据结构与算法实验内容主要是编程实验,提高学生的实践编程能力,巩固和强化理论课的教学效果。为了保证和提高实验教学质量,加深对课堂知识的理解,培养学生动手能力和思维能力,尝试对数据结构与算法实验项目进行重新设计,主要内容有:

四、实验教学方法探究

开发数据结构与算法实验网络教学平台系统,该平台主要包含有课程介绍、在线课程、互动学习、下载资料等模块。有针对性地对每一个实验项目进行详细讲解和实验原理分析的动画演示,将抽象的数据结构问题制作为教学动画,借助形象的案例理解抽象的概念。教学内容利用Web页面为基本元素出现在站点中,学生通过访问站点来进行交互式学习。以辅助学生自主学习为主要目的,解决学生实验时无从下手的局面,启发学生思维,促进学生程序设计能力的提高。平台系统流程图如图1所示。

在线课程是教学平台核心部分,也是学生对数据结构与算法实验加深理解的重要环节,该平台从实验预习,到实验原理算法的演示,再通过在线课堂的视频教学、在线测试题训练及各种原理进行拓展教学。为了方便学生学习较抽象的数据结构与算法,能顺利进行程序编写,该教学平台还包含有18个flas用于原理算法演示,主要包括栈和队列、线性表、递归、查找与排序、树、图等内容,每个flas都有实验原理及主要代码实现过程,能更加形象展示数据结构的原理。例如:栈是一种先进后出的数据结构,在对栈原理进行动画设计时,根据用数组实现栈的特点,采取对栈先进行初始化的代码模块来对栈进行初始化,之后运行相应代码模块观察压栈出栈过程,同时还能观察到栈中数据的变化。在大部分flas演示过程中,flash页面左侧是代码部分,能体现当前执行的代码,并与右侧的动画演示及讲解分析一一对应。演示过程中如用户需要重新开始,还可点击“重新开始”按钮。这些flas演示将代码与动画有机的结合在一起,将抽象的代码转换为有形的动画,大大方便学生学习和对实验内容的理解。

如对栈原理进行动画演示的flash点击界面中压栈代码动画效果,该动画效果包括等待入栈的数字入栈的动画效果和位于等待区域的数字前移的动画效果。等待入栈的数字、入栈的动画效果和位于等待区域的数字前移的动画效果如图3所示。

图3压栈的动画效果图

该平台互动学习是一个教师和学生互动的场所,实现动态交互的功能,教师能添加、更改、删除各种资源,学生、教师可以查看各种资源库里的资源。同时,学生可从平台上下载练习题和测试练习题资料,练习题有主要算法描述,可帮助学生进一步理解每个章节的算法原理,测试练习题有自动报错功能。

五、改革数据结构实验考核方式

让学生对以前所做实验作一个分析和总结。具体操作方案如下:首先将学生自由分组,小组成员共同从以前做过的实验项目选做题中选择一个进行程序的分析设计和编码实现,要求考虑程序的编写规范,程序的执行效率等方面。考核时,由实验教师从该小组随机抽取学生到讲台进行讲解和演示,根据程序完成情况和学生演示情况,决定该小组成员的平均得分,而每位学生的具体得分由小组成员内部根据该学生在该程序实现中的工作情况决定。通过这种方式,能培养学生的团队意识,达到互学互助的效果,同时也锻炼了学生的表达能力。

数据结构与算法实验环节教学改革的创新之处在于依托一门编程语言以及所开发的实验教学平台,因材施教,根据不同专业实际情况,综合考虑进行实验项目、实验内容和实验准备的合理设置,帮助学生在实验课上找到自己的最好学习方式,提高实验教学质量。

【参考文献】

[1]吴兵.高校计算机文化基础课程网络学习题库的研发[J].实验技术与管理,2011(2)

[2]朱洪浩.数据结构课程“工程化”实践教学模式研究[J].赤峰学院学报(自然科学),2013(15)

[3]马晓波,王翠茹.《数据结构》实践教学改革探讨[J].内蒙古农业大学学报(社会科学版),2010(02)

一、完善的实验课计划和提纲

二、计算机实验课程的准备工作

计算机实验课程的准备工作是非常繁琐同样也是非常重要的,通常包括以下几个方面的工作:

1、硬件环境。实验室内学生上机所需的计算机及有关外部设备都要能正常运行,功能完好,适合学生上机实验;学生所用的磁盘要合理分配,集中管理,一些辅助教学设备(如投影仪、无尘黑板等)都要能满足上机实验的要求。

2、软件环境。实验室管理人员要根据实验计划,选择好所需的操作系统软件、高级语言环境、应用系统和辅助教学软件,预先把这些软件装入计算机内并调试好,随时可供调用。若有网络环境,管理员要为每一个上机的班级设置各自的账号,根据实验计划分配所需的软件和必要的权限。另外,版本新、功能强的杀毒软件也是必不可少的,管理人员要随时用它来清除计算机系统内的病毒。

3、组织和管理。计算机的使用要严格管理,要保持良好的秩序,严令学生遵守实验室各项规章制度,有条件的实验室要实行学生上机自动管理(学生上机之前用上机证划卡,系统自动为学生分配一个机号,该生即可在这台计算机上上机,否则该生不能上机)。

4、教师和学生。教师要对实验课的全过程进行周密的思考,要避免出现漏洞和疏忽;而学生要按实验提纲作好实验课前的准备工作,特别是要学生自己编程上机时,学生一定要在上机前准备好程序,实验时主要是编辑输入程序和调试程序。

三、实验课的实施

计算机实验课是计算机课堂教学的继续,也是教学效果的初步体现。为了上好计算机实验课还必须做好以下工作:

实验课开始时,老师要重申本次实验课的目的和要求,指明实验要点和要注意的事项,对实验中的疑难之处和可能出现的问题要给予必要的提示和说明。在实验过程中学生初次使用的应用软件或生疏命令,教师要首先进行演示和讲解。

在实验中要尽可能发挥计算机的优势,充分利用计算机辅助教学软件和多媒体教学手段。特别是学生进行程序设计的实验时,教师可以先演示和讲解自己在科研工作中开发的一些应用软件,将一些程序设计的经验传授给学生,使学生有了一些感性认识以后能尽快动手进行程序设计。另外,教师要根据教学内容选择一些效果比较好的辅助教学软件。例如,《数据结构》课程的实验课,可选择集编辑、编译、调试为一体的Pascal可视集成环境VP1和算法与数据结构的作业系统AD1,Pascal源程序可以在VP1上可视执行,能同步演示程序和数据的动态视图,为学生理解算法、学习编程、调试程序提供了便利的环境,AD1可对数据结构的程序设计作业进行测试评分,可以大大提高软件基础课的教学效果和质量。

四、实验课的总结

关键词:数据结构;课堂教学;实验教学;教学策略

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

1引言

近年来,随着计算机技术应用领域的不断拓展,各高校也都致力于计算机交叉学科专业的建设,信息管理、信息与计算科学以及地理信息系统等信息类新专业蓬勃发展。“数据结构”是计算机专业的一门核心基础课程,由于各信息类专业与计算机技术有着密不可分的关系,因此在这些专业的本科培养计划中,“数据结构”仍是十分重要的专业必修课。

非计算机信息类专业的培养目标、课时安排、学生基础等具有自身的特点,这也使“数据结构”教学面临着新的问题。针对问题,笔者在近几年信息类专业的“数据结构”实际教学中,认真研究了课堂策略并积极应用到了具体的实践中,取得了一定的效果。

2存在的问题

2.1课堂教学中的问题

(1)学生有畏难心理

“数据结构”主要研究非数值计算的程序设计问题中计算机的操作对象及其之间的关系,课程要采用高级语言作为算法描述和实现的工具。非计算机专业学生在大学一年级开设了程序设计基础课程,近两年我院开设的是“C++”。对大部分学生而言这是第一次接触高级语言,加之这门公共基础课课时分配较少,学生总体的掌握程度较差。“C++”中的函数、指针、类与对象等内容更是学习中的薄弱环节,而这部分知识却是数据结构中要频繁用到的。因此,在以“C++”为工具的“数据结构”教学中,学生打开课本看到大量用“C++”描述的算法,觉得十分繁琐和复杂,必然会产生畏难情绪。

(2)个别学生产生漠视情绪

“数据结构”课程理论性较强,在学习中部分学生会产生“纸上谈兵”的感觉,觉得学习这门课程没有什么实用性。同时,个别非计算机专业学生还会觉得该课程和本专业关系不大,所以更容易对课程的学习提不起兴趣,即产生漠视的情绪。

(3)多媒体教学方式的利弊

“数据结构”教学采用多媒体方式,具有生动形象,图文并茂等优点,但多媒体课件放映过程中信息量大、速度快,而学生的反应能力和接受能力有限,这就很容易走入“填鸭式”教学的误区。

2.2实验教学中的问题

“数据结构”的实验教学是整个课程中十分重要的环节。目前数据结构实验教学中主要存在的问题有:

(1)实验课时不足

(2)编程能力两极分化

在实验教学中学生的表现呈现出两极分化的现象。通过观察和了解,程序设计基础较好或对编程兴趣浓厚的同学,能够完成实验项目,写出合格的实验报告;而编程基础较差的同学,缺乏信心,上机时坐在计算机面前茫然无措,随着课程学习的深入,形成了恶性循环,进而影响到班级整体实验教学的顺利开展。

3改革措施

在“数据结构”的第一讲课中,不应操之过急地直接进入课程第一章的讲解,而应对程序设计基础中的指针、函数及类与对象等内容进行归纳和复习。由于课程中基本的数据结构都是用类模板来描述,因此对于类和对象这一部分更是要作为重点。同时,要求学生课后必须完成程序设计基础课本中指定内容的复习巩固。第一次实验的作业要求学生编写两个简单的基于面向对象的小程序,目的在于复习如何定义类、如何用构造和析构等各种成员函数实现对数据成员的操作以及如何使用对象等。

实践证明,学生通过对前导课程的学与练,通过上机成功调试面向对象的程序后,在心理上首先放下了包袱,不再觉得类与对象等概念高不可攀。这也十分有助于教师对后期教学的深入展开。

3.2转变教学模式,重视激发学生兴趣

教学应该是一个“教”与“学”同步进行的过程,在这个过程中学生才是主体。授课中如果教师只是满足于自顾自地把内容交代清楚,而不注意学生的接受程度,不营造生动的课堂氛围,那么学生的学习行为只能是被动行为,更不可能成为课堂的主体,也就不可能达到理想的教学效果。

首先,在课堂教学中要精心组织课件。多媒体课件决不能是课本内容的堆积,应该将文本、图片、声音、动画等合理地组织起来。例如在讲解算法时,用动画来演示算法的动态执行过程,以增加课程的生动性,降低课程的难度。

其次,课堂讲授应符合学生的认知规律。范例教学模式在“数据结构”授课中就能发挥很大的优势:即用特例具体直观地阐明“个体”的具体特征,根据范例“个体”的知识推论特点,分析掌握整个“类别”事物的特征,使对“个体”的认识上升为对“类别”的认识,从而掌握其规律和范畴。数据结构中的主要算法和一些抽象的概念,可以尽量先从直观意义或具体实例解释着手,让学生更容易理解。因此在教学过程中宜多画图、多举例、多解释。这种从特殊到一般,从具体到抽象的方法,适用于数据结构中的很多内容。例如:讲解队列的概念时,可通过日常生活中的购物排队的过程来反映队列中插入、删除的原则,再结合计算机中的操作队列、打印队列的应用来说明;对二叉树的遍历算法可通过一个特定的二叉树的例子说明其遍历思想,再推广到一般的二叉树。

再次,在课堂上要鼓励学生大胆想象,勇于实践。例如在讲解起泡排序时,可以启发学生思考:如果在排序中奇数趟排序从前向后、偶数趟排序从后向前两两比较相邻记录,算法的效率会如何变化先让学生进行几分钟的讨论,然后可以总结分析:从两端两两比较的起泡算法可称为双向起泡排序,它是对起泡排序的改进。然后,请学生编写双向起泡算法,并上机编程以和传统起泡排序算法的效率进行比较。这样,可以培养学生大胆想象、勇于实践的创新精神,还可以调节课堂气氛,利于师生交互,同时还能激发学生上机编程的热情。

3.3循序渐进,精心设计组织实验内容

“数据结构”课程中的实验可分为三大类:验证实验、设计实验和综合实验。验证实验是将教材中的重要数据结构上机实现;设计实验是针对具体问题来应用某个知识点,需要自己设计简单的方案;综合实验是针对具体问题应用某几个知识点,需要设计总体方案。这三类实验由易到难,由浅入深,构成了完整的实验教学体系。实验的开展应该以此为主线,循序渐进地进行。

关键词:数据结构;教学现状;教学改革;学习兴趣

ResearchEducationalReformabout"DataStructure"Course

ZHAOXiao,SUNLian-shan,WANGXiao-xia

(ElectricalandInformationEngineeringCollege,ShaanxiuniversityofScience&Technology,Xi'an710021,China)

Abstract:Dependingonteachingpractice,andonthebaseofanalysisthepresentteachingconstructionofdatastructurecourse,stimulatingthestudent'sinterest,webringupeducationalreformaboutcontentsandmethods.Theachievementofthispaperstudieshasagoodshowsinpracticeteaching,andObtainedmanystudent'scommendation.Thisarticlestudiestheachievementthroughinthelong-termteachingpractice'sapplication,makesthegoodprogressinthepracticeteaching,obtainsstudent'shighpraise.

Keywords:datastructure;teachingpresentsituation;educationalreform;studyinterest

数据结构是计算机科学与技术专业的重要专业基础课,在整个课程体系中处于承上启下的核心地位,它一方面扩展和深化在离散数学、程序设计语言等课程学到的基本理论和技术,另一方面为进一步学习操作系统、编译原理、数据库等专业课奠定理论与技术基础。

1课程教学研究的现状

数据结构课程的学习非常重要,但目前本课程在教学和学习中存在很多需要解决的问题。我们在教学过程中发现,学生在刚刚接触这门课的时候不知道怎么去学,对学过的知识也不知道怎么应用,而教师也在如何将抽象的概念和枯燥的算法如何准确、生动、高效地传达给学生的问题上,通常是绞尽脑汁、费劲口舌、反复讲解但效果却并不理想。

通过实践教学观察、与学生谈话交流以及理论分析等手段,我们发现造成这种现状的原因大致来自三个方面:

1)课程本身的特点。

在长期的教学过程,我们总结出如下的特点:①内容抽象且繁多。课程内容的抽象程度较高,主要体现在基本概念很多,而且比较抽象难以理解,抽象数据类型以及算法本身并不特定于某一个程序设计语言,且数据结构常常以数学符号表述,这都给学生理解和学习造成了障碍;②课程内容的逻辑性强,各种数据结构之间存在许多内在的联系,但又自成体系、较为独立,如一方面树、图等以线性表、栈和队列为基础,又广泛用于查找和排序之中;③综合性强、技巧性强,数据结构课程综合了计算机硬件、数学、以及计算机软件的知识,各种算法中凝结了近半个世纪的大量杰出计算机科学家的智慧,综合性和技巧性非常强,学生常常因为不能很快入门而丧失学习的信心。

2)学生的知识和技能储备不足。

主要体现在学生对前导课程的掌握不到位,目前大部分高校的数据结构的算法描述工具是C语言,所以前导课程一般为C程序设计,高等数学、离散数学等,尤以C程序设计为重,但在教学中发现每一届学生都存在同样的问题:C语言基础薄弱。因此我们在教学过程中所面临的现实挑战是:一方面要在数据结构的教学过程中逐步培养和巩固学生使用C语言动手编程、调试、阅读程序的能力,另一方面,又要使得大部分学生在缺乏必要的C语言的基础知识的前提下,理解数据结构的理论和神髓。

3)教学手段单一、师生沟通渠道有限、教学工具和素材欠缺。

首先,传统的教学方式以“一言堂”为主,教师讲授是整个课堂教学活动的主线,虽然也有课堂练习、提问、鼓励学生提问等形式活动的穿插,但由于课程内容有一定的难度,同学往往不能正确回答问题、或不能恰当地提出问题。其次,师生之间沟通的渠道非常有限,常常是课上学生不会提问、课下学生找不到教师提问。第三,教学工具只是简单的黑板和粉笔以及少量幻灯片,缺少算法的动态演示和网络学习等多媒体手段,教学素材仰赖于各个教师多年教学活动的积累,教师之间的经验和素材的交流较少,教学素材的数量以及难度分级都非常随意。

上述内容是《数据结构》课程教学中存在的一些现实问题,我们通过优化教学内容、改进教学手段、丰富师生沟通渠道、建设教学工具和教学素材库、完善考试考核等方法,达到改善教学效果、提高学生综合应用的能力。

2本项目研究的内容

依据对陕西科技大学计算机科学与技术专业数据结构教学现状的分析,我们从以下几个方面实现对本课程的教学改革:

1)优化教学内容和教学方法,提高面授效果。

针对数据结构基本概念多且抽象的特点,在教学中引入案例教学法,以学生已有知识结构和生活常识出发,形象生动的讲解概念,这样不仅学生容易接受而且开拓学生的思维。让学生的学习做到有的放矢。

通过案例教学法,学生通过讨论和老师的引导,在轻松的教学氛围中快速掌握所学的知识。

对于算法的讲解,根据数据结构在数据类型定义和算法设计中均采用类C形式描述这一特点,又因学生对C程序设计掌握的欠缺,故而对算法的理解和掌握有困难,单一的通过算法讲解算法不如用图形描述更直观。为此引入算法的动态演示系统,增强算法的直观性,提高教学效果。

2)激发学生学习的兴趣,鼓励学生对教学内容提出问题,师生共同讨论,提高教学和学习水平。

兴趣是学习的动力,如果学生对本课程产生极大的兴趣,学生学习的自主性自然就有了。由此可见,学生学习兴趣的培养是至关重要的。培养学生兴趣的方法很多,我们课题组将从以下几个方面实现:①将工程应用融入到教学中,让学生了解到所学的内容在实际工程中的应用,消除学生不知为什么要学的疑虑;②鼓励学生在学习过程中不拘于以往的解法,对同一个问题可以提出不同的解法,深化对问题的理解;③将奖励的方法应用于教学活动中,比如:布置给学生的实验任务或课后思考题,对完成好的同学,在课堂上发一些诸如本子、圆珠笔等小礼品,以此鼓励。对于大实验做的好的同学采用加分的措施激发学生学习的兴趣。对于一些教学任务事先将内容布置给学生,在课堂上以讨论的方式让学生参与到教学中来,相信会很好的调动学生的积极性。

3)精心选择习题和上机实验题,着眼于基本知识的理解和基本编程能力的培养。

4)本着“精讲多练”的原则,改进考核方式。

传统的考试模式是闭卷考试,学生期末的考试成绩=卷面成绩的70%+实验成绩的20%+平时成绩的10%。这种考试模式看似合理但还是存在一些弊端,主要体现在:一份试题很难做到对学生所掌握知识的全面考核,而且试卷内容可能偏重于理论知识的考核,很难反应出学生的实际水平;实验成绩给分仅凭借实验报告显然是不科学,应该加大学生实验过程的考核。对考核方法的改革,我们打破传统的考试模式,除了闭卷考试外,加入实际问题解决能力考核部分;对于实验的考核采用实验考核一对一的方法,教师更注重的是每位学生对实验任务的分析过程,实现方法和结论的考核;同时加大对平时习题完成情况的考核力度,并将其考核的结果加入到最终的考试成绩中,让学生懂得考试仅仅是一种手段而不是学习的目的。

3课程改革的成效

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

[2]顾红生,曲娟.关于数据结构课堂教学模式的研究[J].辽宁广播电视大学学报,2007(4):44-45.

[3]徐金梅,罗刘敏.《数据结构》教学方法研究和探讨[J].现代计算机,2007(8):78-80.

关键词:离散数学;实验教学;实践能力

离散数学课程所涉及的概念、理论和方法,大量地应用在计算机科学体系中,数理逻辑是计算机中的逻辑学、逻辑电路、人工智能的基础课程,集合与关系是数据结构、数据库系统的理论基础,而代数系统则是现实世界的缩影,直接模拟了现实系统,图论知识更是直接应用在计算机网络、数据结构、编译原理等专业课程中。但传统教学中过于注重理论教学而忽略实践,学生普遍认为枯燥难懂,认为是纯粹的数学课程,对计算机编程用处不大。因此教师在授课过程中要注重理论联系实践,培养学生的专业素养,我们将从以下方面循序渐进加强教学理论与实践。

1课程教学注重教学方法与教学实践的改革与创新

加强理论联系实际,从提高计算机编程思想的角度对学生展开教学,教师在讲解理论的同时,要注重其实际应用与算法描述。例如在讲解最短路径时,就要介绍Dijkstra算法,单源最短路径的基本思想如下:设S为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。

①初始化:只有源点s的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为空。

②重复以下工作,按路径长度递增次序产生各顶点最短路径:在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。

我们通过实例给学生模拟算法执行过程,验证算法的正确性,但细心的学生会发现前面加进去的点并不一定是后期考察路径的必经点,例如有三个点A,B,C,AB、BC、AC间权值分别为1,2,4,如果设A为源点,则第一次加进来的点是B,到C的最短路径应该是A-B-C,如果BC权值为4,则到C的最短路径应该是A-C,这里就要注意红点集加入的点不是其他点必经点,这是因为集合元素是无序的,不是联结已有的点作为最后点的路径的。

我们给出求解的动画演示过程,加深学生的认识,实际多应用在交通网络中路径的查询中,两地之间是否有路径以及如果有多条路径时找最短路径等,最后再对算法进行扩展解决单目标最短路径问题、单顶点对间最短路径问题等,扩展学生对算法的理解等。

在讲解逻辑推理时,建议学生使用Prolog语言可以轻松实现命题和联结词表示以及逻辑推理,代数系统则是无处不再,自动售货机、电梯系统、自动取款机等都是一个代数系统,有自己的运算关系,鼓励学生定义一些运算,完成一个具有输入输出的可交互的系统。

2建设完善实验课程体系,加强学生实验实践能力

挖掘课程内容,建设完善的实验课程体系,实验课程的主要目的是,培养学生的数学建模能力、算法设计能力、编写程序能力和应用创新能力,使学生养成良好的数学素质。学生可以有选择地做。

(1)基础实验如表1所示,基础实验设计一些离散数学基本问题,要求学生利用所学基础知识,完成相应的算法设计和程序实现。如在集合论部分,设计有限集基本运算算法设计实验,要求学生利用熟悉的程序设计语言完成有限集合的数据结构、集合间的交、并、差、迪卡尔积、子集判断等基本运算。学生可以在每部分中自由选部分题,完成一定的基础实验。这样的设计使得学生学会基本操作,巩固程序设计基本调试方法的掌握。

(2)综合性实验如表2所示,设计一些比较复杂的离散数学问题,要求学生综合运用各章知识或多学科知识,完成问题的分解与求解、综合和整体实现。例数理逻辑部分的命题真值表计算实验中,要求学生设计实现命题数据结构、五种基本逻辑运算的代数运算转换、表达式求值等;学生需要综合运用命题逻辑、数据结构等知识,完成实验各个环节,实现运算结果的显示。可由几个同学组成一个学习小组完成实验。

(3)设计性实验如表3所示。这一层次要求较高,对那些学有余力、兴趣浓厚的学生,给出一些难度较高的课题,要求他们自行设计问题描述模型和实验方案,开发实现小型应用软件。例如,要求学生针对某景区内景点的分布情况,设计可满足旅游者不同需求(如费用最省、线路最短、重复较少、景点最全等各种要求)的实用小软件。教师检查实验现象和实验结果。学生对实际程序的运行结果应能进行分析并提出改进方法,每完成一个实验,都要求写一份实验报告,挑选出好的作品,做成精品演示系统。

3发现实际应用点,扩大学生知识面

让学生了解离散数学在现实生活中的主要应用,有意识地引导学生运用所学理论去分析问题、解决问题,从而让学生充分感受到离散数学这门课程的魅力和实用价值。部分实际应用如表3所示。鼓励学生按照如下流程操作:发现问题,然后构思一个可能求解该问题的算法过程,再设计算法并将其表达为一道可执行程序,最后精确地评价这个程序,考查其作为一种工具去求解其它问题的潜能,锻炼学生数学建模能力,提高分析问题,解决问题的能力。

4建设开放式教学环境,丰富网络教学资源

充分利用网络学堂、课程学习网站等丰富的教学资源,构建了开放式的教学环境,我们开发了离散数学教学网站,模块包括:实验、实验申请、已审核实验、成果展示、精品展示、在线解答(前台如图1所示,后台如图2所示)、资料下载等模块,实验项目可选或自拟,增强了师生间互动,也为学生个性化学习提供了良好的条件。

总之,鼓励学生吃透书本,挖掘理论的应用领域,鼓励学生改进算法、挖掘应用点,从抽象的理论到实际应用,再扩大应用,抽象到一般情况,让学生感觉到学习离散数学的重要性,理论与实践相结合,互相促进,切实提高大家学习离散数学的兴趣,能够达到学生积极主动为了实现应用而吃透理论,发挥主观能动性。采用项目训练为主的教学理念,切实提高学生的实际动手能力、创新能力和自学能力。

[1]耿素云,屈婉玲.离散数学[M].北京:高等教育出版社.

关键词:编译原理;实验教学;词法分析

中图分类号:G642.41文献标识码:A

词法分析实验主要包括以下几个方面的内容[1]:词法分析器的设计和实现,三个算法(正规式转换为有穷自动机的算法,有穷自动机的确定化,确定的有穷自动机的化简)设计以及词法分析自动生成器。其中,词法分析器的设计和实现是重点内容。通过这个程序的设计,学生可以掌握词法分析器的作用、分析方法、和实现原理,并了解词法分析在整个编译过程中的地位。三个算法的实现有一定难度,通过三个算法的实现,学生可以加深对算法的理解,提高解决问题的和实际编程能力。

2实验前的准备

在进行词法分析实验课之前,应督促学生做好充分的准备工作[2]。首先,应该明白词法分析器的功能,它主要分成输入部分,字符分类识别和识别结果处理输出部分。根据不同的输入,调用不同的识别函数进行识别。进而得到词法分析器的程序框架。再后,进行系统的详细设计,设计出关键的数据结构,将每一个函数实现的算法和关键点,详细的用伪代码表示出来。

实验课前的准备过程非常重要。否则,上来就匆忙动手,很可能写了很多代码之后,才突然发现,最初的数据结构设计竟然不合理,导致不少的工作都得之后重新来做。因此,在实际编程前要求学生编写实验思路及实验流程,根据实验任务,设计程序的模块流程图及算法,并提出编程过程中可能遇到的困难和解决途径,最终形成一个预习性质的实验报告[3]。这样,学生对实验有一个整体思路。思考过程不仅使学生对所学理论有了较深刻理解,而且对理论与实践如何结合进行思考和归纳,提高了实际运用高级语言编程的能力。

3实验课中的指导

编程题目由简到难的进行。一般认为,编译原理中的将正规式转换为NFA,将NFA转换成DFA等算法都比较抽象。实现起来有一定难度。如果一开始就从这些算法下手,很可能有一大部分同学都会出不了结果,从而产生畏难情绪,以至于对这门课程今后的学习都没有信心。所以,建议开始的时候从简单的词法分析器入手,帮助学生产生学习积极性。即使不能完整的做到每种单词都能识别,至少可以写出其中一部分。这样,有了初步的小成果之后,就会有兴趣也有信心来完成后续的实验内容。

4实验之后的总结

实验之后应做好实验总结。每个同学提交实验报告。报告内容包括对词法分析器输出的数据进行分析,关键程序的实现思路,遇到的困难以及解决方法,自己认为自己做的比较好的、不足的地方及其原因,自己的想法等等。教师再从中选取一些比较典型的问题和优秀的例子进行讲解,让同学们能够有所感悟[5]。通过实验总结,不仅让优秀的学生更加开阔了思路,也让比较差的学生看到了自己的不足之处,对他们理论知识的深入理解和实际编程能力的提高都有很好的促进作用。

在近几届的学生实验课程中,通过不断尝试、改进我们的教学方法,包括自己编写学习指导,实验指导书等,使编译原理实验课程逐步完善。同时,教学结果也表明,教学实验取得了一定的成绩,比如:学生从以前一上实验课就手足无措,变成了都可以自己动手编写大部分或者全部程序;在同样水平的要求下,学生的平均实验成绩有所提高;学习方式也由过去的被动学习变成了自己积极主动的学习。但是,仍然存在一些问题,如有小部分同学由于以前的程序设计课程学习不够坚实,导致编程能力有限,在对这部分同学进行单独辅导的时候,既要讲解编译原理的知识,还得给他们补习程序设计的知识,导致学习压力更大,兴趣激发更为困难等。这些问题需要进一步寻找解决的办法,以期达到更好的教学效果。

DiscussonTeachingMethodofComplierPrinciplePractice

Abstract:Takelexicalanalysisasanexample,thispaperdiscussesteachingmethodsofcomplierprinciplepractice,andproposessomeproblemsshouldattentionintheteachingprocess.ItmeetswithunderstandingComplierPrincipletheoryandpromotingcapabilityofapplying.

Keywords:ComplierPrinciple,PracticeTeaching,lexicalanalysis

参考文献

[1]陈火旺等.程序设计语言编译原理(第三版)[M].北京:国防工业出版社,2000.

[2]赵曦.《编译原理》实验教学改革初探[J].实验室科学,2006,8(4).

[3]毛玉萃.编译原理实验课的实践探索[J].大连大学学报,2004,(6).

[4]张晶,杨冬等.编译原理实践课程教学方法研究[C].2005全国计算机程序设计类课程教学研讨会论文集,2005.

【关键词】实验教学;创新能力;实践技能

随着计算机行业的发展和相应的计算机课程建设,实验环境在不断地更新,实验内容也随之在不断地改革与更新。通过实验教学,既巩固了课堂知识,促进了学生对课外知识的获取,又拓宽了知识面,培养了学生创新能力、分析问题和解决问题的能力。

1、加强素质教育,搞好中职实验室建设

实验室建设就显得非常重要。我们在建设实验室时主要抓两方面建设。其一,硬件建设方面;建成了计算机基础、计算机系统、计算机控制和网络技术等实验室,为实验教学改革提供了必要的物质基础。其二、软件建设方面,通过多年的摸索、总结、修改及完善,我们制定出了一套较为完整的管理制度和岗位责任制度。具体包括《机房管理制度》、《指导教师岗位责任制》、《安全管理制度》、《学生上机守则》等。通过这些制度的切实贯彻执行,使每位工作人员都明确自己的职责,并且将实验室繁杂的各项工作,如实验的准备,仪器的维护、维修、管理,实验教学法的研究,硬件设备的改进,软件的开发及实验内容的改革等都与本职工作量挂钩,以充分发挥大家的积极性,因而在实验教学上取得了较好成效。实验室是培养人才的摇篮,一些刚分派来的大学生首先安排到实验室,在得天独厚的用机环境中,通过指导实验,维护、维修仪器设备,相互学习,知识得以拓宽,动手能力可以有很大提高,并且对实验教学环节、学生实验情况有所了解,有助于今后在主讲教师岗位上的教学工作。可见人才的流动,不仅给实验室带来了青春的活力,也带来了新的思想和其他院校好的教学经验、教学方法,从而有益于推动实验教学的改革和建设。

2、改革实验教学内容,注重创新能力培养

作为计算机的专业实验室,承担了计算机专业的专业基础课及专业课的软、硬件实验,以及课程设计、毕业实习、毕业设计的教学任务。随着信息技术的迅猛发展,在知识更新加快,知识愈来愈多元化、专业化和系统化的情况下,改革过去传统的以验证性为主的实验技术手段、方法和落后的实验内容,增加设计性、综合性、开放性和系统性的实验内容,加强学生动手能力的训练,注重全面素质的提高,注重创新精神的培养已势在必行。因此,我们在实验教学内容的改革上,本着“加强基础、拓宽专业、注重实践、提高素质”的方针,把专业基础实验模式分为指令性、指导性和设计性三种。在指令性实验中,注重学生巩固理论课的学习,进一步掌握基本概念和基本技能。在指导性的实验中,注重培养学生灵活运用所学知识去分析问题和解决问题的能力。

例如,有意设计一些有问题的或不完整的程序,让学生去发现错误,改正错误,完善应用程序。在设计性的实验中,注重培养学生的创新意识、设计能力、创造能力和动手能力。在这一类的实验中,只给定实验的课题及达到的目的,中间过程需学生自己去查阅资料和设计方案,直至最后调试完成。

例如,在讲授微机原理实验课中,在有关部门的支持下,尝试将教师参与研究开发的科研成果用于毕业实习中,使学生不出校门就可接触企业工作环境,使科研成果在教学中真正发挥作用。为他们的毕业论文和今后走上工作岗位打下了一定的基础。实验内容的改革,激发了学生对实验的兴趣。

3、改革实验教学方法,规范管理,提高教学水平

对每一个实验都要提交实验报告,在报告中要注重设计思想的描述,注重分析、总结实验中的收获、体会。在实验课程结束时,进行上机考试,最后根据学生实验情况、实验报告情况及上机考试的情况,客观评定学生的实验成绩。通过以上措施,提高了学生对实验课的重视程度,同时对指导教师也提出了更高的要求。

4、提高自身素质,促进实验室建设

计算机技术的发展可以说是日新月异。从事计算机工作的技术人员只有不断地学习,才能适应形势发展的需要。为此,我们通过参加培训、参与项目研究,并将新实验的开发和研究与工作量挂钩等手段,激励大家努力钻研业务,掌握新技术,提高业务水平和实际工作能力。经过我们的努力,建设了计算机网络实验环境,开设了《C语言》、《数据结构》、《操作系统》等软件实验课程。每一门实验课我们都自编了相应的实验教材,并且根据课程建设和计算机行业发展的需要,以及学生对实验内容的反馈情况,更新了实验内容

结语:实验教师队伍自身素质的提高,是推动实验教学内容改革,搞好实验教材建设,提高实验教学水平的关键因素。我们要不断地深化改革,积极探索实验教学的新模式和能力培养的多途径,提高实验教学水平,使实验室成为有助于培养适应新世纪高质量人才需要的基地。

[1]张红娜.中等职业学校计算机实训教学浅议[J].大众科技,2009,(03)

关键词:NTeQ模式教学设计整合教学研究

1.引言

NTeQ的含义是“整合技术促进探究”(iNtegratingTechnologyforinQuiry),是由美国孟菲斯大学的GaryR.Morrison教授和DeborahL.Lowther教授首先提出的。该模式是信息技术与课堂教学整合的实用模式,它真正实现将信息技术作为教师教的工具和学生学的工具。NTeQ模式以学生和课程目标作为出发点,从学习理论、学习目标、课程内容及学习方式等方面入手,选择适当的计算机技术,将信息技术与课程整合的规划过程详细地体现出来,从而能够帮助教师在做教学设计时有一个清晰的设计思路。

2.NTeQ模式的操作步骤

按照NTeQ模式的思路,创建一个将计算机技术整合到课堂教学的单元计划需要10个步骤,如图1所示。

2.1制定目标

教师的每一个课程计划的列出都是从学习目标开始的。一般根据课程大纲要求,结合学生的认知结构及内容特点,制定出学生在不同阶段应达到的目标。

2.2计算机功能

2.3确定问题

问题是在教学目标的基础上提出来的,教师在向学生陈述问题时要讲究艺术性[1],从学生的角度考虑,问题要来自现实世界,具有真实性,也可以围绕教学目标引导学生自己提出问题,教师指导学生制定行动计划,让学生通过自主、探究的学习活动来解决。

2.4处理数据

在处理数据阶段,教师要明确学生将如何解决问题,也就是教学目标将如何成功的实现过程。

2.5显示结果

2.6评估

NTeQ教学模式中替代性评估弥补了传统评估的不足,不仅能让教师掌握学生的学习情况,还能做到因材施教。选择评估内容,如测验、演示报告等,采用任务列表或量规等评价工具,根据教学目标设计评价量规,为行为标准分配分数级别[2]。

2.7支持性活动

2.8准备活动

考虑学生在使用计算机时将开展哪些活动,以什么方式开展活动,是自主学习还是合作学习。教师的活动设计必须紧紧围绕教学目标和中心问题展开。

2.9结束活动

教师对结束活动也需要精心准备,准备好响应的问题以引导学生进行活动反思,从而加深他们的学习过程。

2.10技术整合活动

考虑学生在使用计算机时将开展哪些活动,以什么方式开展活动(是自主学习还是合作学习)。教师的活动设计必须紧紧围绕教学目标和中心问题展开。

3.教案示例

NTeQ教学模式应用方便,教师按照NTeQ教学模式的步骤进行教学设计即可。下面是对计算机本科专业《数据结构》课程排序章节采用NTeQ教学模式进行教学设计的教案。

3.1基本内容

3.2学习目标

学习目标A:掌握每一种排序方法的机理;

学习目标B:深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用;

学习目标D:理解排序方法“稳定”或“不稳定”的含义,清楚在什么情况下要求应用的排序方法必须是稳定的。

3.3资源列表

3.3.1网络资源列表。

A.吉林大学“数据结构”精品课程

B.西北大学“数据结构”精品课程

C.西安石油大学“数据结构”精品课程

D.浙江师范大学“数据结构”精品课程

A.数据结构中典型排序算法性能分析(PDF文件)

B.一个比快速算法更快的算法(PDF文件)

C.摇动排序算法性能的研究(PDF文件)

D.奇偶交换排序算法性能的研究(PDF文件)

3.4技术与工具

A.MicrosoftPowerPoint

B.MicrosoftWord

C.IE浏览器或其他浏览器

D.MacromediaFlashMX

E.MicrosoftVisualC++6.0

3.5多维活动

3.5.1活动1:内容的讲解。

在这个活动里,教师讲解排序方法的基本分类及分类所依据的原则。插入排序、交换排序、选择排序和归并排序的基本思想和各类排序方法中的简单排序法的排序过程通过Flas演示。插入排序类中的直接插入排序、选择排序类中的简单选择排序和堆排序、交换排序类中的快速排序等排序方法的实现、算法即算法分析是本章教学中的难点和重点。

在讲授各种排序方法的同时,提醒学生注意排序方法的稳定性问题。即对于具有同一排序码的多个记录来说,若采用的排序方法使排序后记录的相对次序不变(即前面的仍在前面,后面的仍在后面,当然由远邻变相邻),则称此排序方法是稳定的,否则称为不稳定的。

3.5.2活动2:内部排序方法的比较。

此活动通过上机操作深化学生对各种排序方法的理解和掌握。

上机内容为对6种常用的内部排序算法进行比较:直接插入排序、简单选择排序、堆排序、希尔排序、冒泡排序、快速排序。已知待排序的表长不小于100,其中的数据要用伪随机数产生程序产生,至少要用5组不同的输入数据作比较,比较的指标为有关键字参加的比较次数和关键字的移动次数。最后要求对结果做出简单分析,包括对各组数据得出结果波动大小的解释。

本活动的主要工作是设法在已知算法中的适当位置插入对关键码的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如,正序、逆序和不同程度的乱序。调试的时候可以采用分块调试的方法。

3.6评价

对于学生的评价主要包括以下几个方面:

3.6.1完成上机实验要求,程序调试成功,运行结果正确。

3.6.2能对结果进行合理分析。

3.6.3提出创新思路或对现有程序有所改进。

3.6.4成果展示(作业、实验报告等)内容完整,材料齐全。

4.教学过程中几点需注意的问题

教师在教学过程中要充分发挥NTeQ教学模式的作用,必须注意以下几个问题:

4.1明确教师的主导和引导角色

传统的教学,只要教师带着已经精通的教学内容走进教室,再拿起粉笔和张开嘴就能开始课堂的进行。而现在要求教师作为学习促进者的角色设计教学计划,要求将技术整合到教学活动中,引导学生不仅要掌握教学内容,还能通过其他的手段在加强掌握知识的同时熟练使用计算机的应用软件和开发软件。

4.2教学环境的准备

教师在教学设计时,应根据不同的教学内容准备好教学环境。例如在讲授栈的应用时,可以通过演示小运用程序汉诺塔来阐释栈在递归调用中的使用,如图2所示。

4.3正确使用信息技术

NTeQ教学模式强调以学为主、以计算机为辅来解决问题,并且在解决问题的过程中不断学习。但是应注意到信息技术只是加强教学效果的手段,而更为重要的是教师如何引导学生学会怎样思考,即通过信息技术的使用解决问题而不是单纯地操作计算机。

5.结语

从上面的教学设计中可以看出,采用NTeQ教学模式进行教学,不仅可以提高学生掌握课程基本内容,还可以让学生在掌握学科知识的同时学会思考,提升学习的主动性。

教学有法但无定法。当使用一种新模式时,我们只能在摸索中前进。NTeQ模式是国外教育专家首创的,由于国外教育方式与我国有着很大的区别,因此在运用该模式的时候,要从我国的教学环境出发,根据所在院校的条件,制定出符合教学对象的教学模式。

在信息技术与《数据结构》课程的整合教学研究中,作为教学研究方案的设计者和实施者,笔者在教学实践过程中不仅开拓了视野,而且激发了探索各种教学模式的热情,更认识到教学研究的开展和深入是自身不断发展和完善的过程。

THE END
1.数据结构可视化网站数据动画演示数据结构动画演示网站数据结构可视化:https://visualgo.net/en 国外数据结构与算法可视化:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 注:以下动画为flash实现 数组 插入 删除 链表 插入 删除 栈 入栈 出栈 队列 进队 出队 二分搜索树 插入 删除 https://blog.csdn.net/weixin_44322234/article/details/110186248
2.推荐一个可视化数据结构算法演示网站51CTO博客无意之间找到的这个网站,非常不错,对于大家理解数据结构是一种帮助。 Java版本的下载地址(文附件的jar文件就是) http://www.cs.usfca.edu/~galles/visualization/java/download.html 注:国内,国内的 《数据结构(C语言版)》的 配书光盘 《数据结构(C语言版)》配书光盘.DSDemo 里面也有类似实例http://enetq.blog.51cto.com/479739/910525/
3.数据结构的动画演示天地过客动画演示可以帮助同学更好地学习了解数据结构。下面列出的站点有些提供了交互,初始数据由用户提供,然后再演示。 欢迎同学们提供更好的站点。 http://visualgo.net 旧金山大学David Galles做的各种可视化的数据结构 http://www.cs.usfca.edu/~galles/visualization/Algorithms.html https://www.cnblogs.com/4bytes/p/3664941.html
4.2024-数据结构动画演示软件 -在线课程平台(如慕课资源) -教学PPT -课堂互动软件(如问答系统) 教学过程 一、导入新课 1.各位同学,大家好!今天我们将要学习一个新的内容——数据与数据的组织。请大家回想一下,我们在初中阶段学过哪些基本的数据类型和数据结构? 二、知识回顾 2.很好,同学们提到了数组、列表等。那么,这https://max.book118.com/html/2024/1116/5024124101012000.shtm
5.可视化数据结构算法演示Basics Stack: Array Implementation Stack: Linked List Implementation Queues: Array Implementation Queues: Linked List Implementation Lists: Array Implementation (available injavaversion) Lists: Linked List Implementation (available injavaversion) Recursion https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
6.数据结构B树的生成动画演示数据结构B树的生成动画演示_b树动画Lo**gs 上传41.66 KB 文件格式 swf 动画 简单形象的描述出B树的生成,使人较容易理解其思想。点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 lynnpierre 2020-04-28 11:51:54 评论 生动形象,一看就懂u010040425 2017-07-31 16:44:45 评论 一看就懂,厉害哦,https://www.coder100.com/index/index/content/id/1119644
7.图解数据结构一组动画演示归并排序由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 ---《图解数据结构》,主要使用动画来描述常见的数据结构和算法。本系列包括十大排序、堆、队列、树、并查集、图等等大概几十篇。 归并排序 归并https://www.jianshu.com/p/73bbbe2e3386
8.数据结构和算法Flash动画演示数据结构和算法Flash动画演示 一些算法的 flash动画演示:B树的删除,B树的生长过程,三元组表的转置,中序线索化二叉树,串的顺序存储,二分查找,二叉排序树的删除,二叉排序树的生成,二叉树的建立,克鲁斯卡尔算法构造最小生成树,冒泡排序,分块查找,单链表结点的删除,单链表结点的插入,图的深度优先遍历,基数排序,堆排序https://www.iteye.com/resource/ziqin1984-4949849
9.主干课程本课程以Java语言为描述语言,描述网络编程的体系结构、主要技术以及相应编码。内容包括:Java语言的平台无关性、Java程序的开发过程、小应用程序(Applet);图形用户界面设计(awt和swing);JDBC数据库访问技术;JavaBean开发和MVC设计模式;Servlet编程;输入输出流;Java多线程;访问Internet资源的相关技术;Socket编程:客户端套接字https://xxkx-ybxy.xaut.edu.cn/Undergraduate_Education/zgkc.htm
10.C语言数据结构二叉树先序中序后序及层次四种遍历C语言这篇文章主要介绍了C语言数据结构二叉树先序、中序、后序及层次四种遍历方式,具有一定的知识性参考价值,需要的小伙伴可以先看一下动画演示: 记住小人沿着外围跑一圈(直到跑回根节点),多看几次动图便能理解 (2)中序遍历 中序遍历可以看成,二叉树每个节点,垂直方向投影下来(可以理解为https://www.jb51.net/article/237117.htm
11.visualisingdatastructuresandalgorithmsthroughanimationVisuAlgo was conceptualised in 2011 by Dr Steven Halim as a tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at their own pace. Together with his students from the National http://www.visualgo.net/
12.XHttp2一个功能强悍的网络请求库,使用RxJava2+Retrofit2+OK支持任意数据结构的自动解析。 支持添加动态参数例如timeStamp时间戳、token、签名sign。 支持自定义的扩展API。 支持多个请求合并。 支持Cookie管理。 支持异步、同步请求。 支持Https、自签名网站Https的访问、双向验证。 支持失败重试机制,可以指定重试次数、重试间隔时间。 https://developer.aliyun.com/article/922096
13.《网页设计选修课》课程设计(精选14篇)4.网站要求: 要有主页,有5个以上的链接,页面数量要有6个。其中一个要含有 FLASH、Fireworks的动画、图像效果。 (二)课程设计排版要求: 1.统一封面(上面封面)。 2.要有目录 3.内容 :设计目的,设计特点、设计思想。要有网站整体结构规划,主页,子页的设计规划,网页的详细设计分析,总结。 https://www.360wenmi.com/f/fileut3wjb12.html
14.职业教育12.?熟悉云安全知识、云盾 DDoS 防护功能、云盾安骑士、数据库防护、WEB 应用防护 13.?熟悉命令行工具 CLI 的命令结构和参数、CLI 管理 ECS、RDS 示例以及如何在程序中调用 CLI 14.?可以根据相关资料快速分析故障,定位故障点。 15.?有传统 X86 部署经验,有从传统 X86 迁移有云平台部署经验,有一定的http://www.lcxzf.gov.cn/xxgk/fdzdgknr/zdlyxxgk/jyxx/zyjy/202206/t20220617_2292136.html
15.Hello算法教程内包含500多幅动画图解,这些图解以直观的方式演示算法和数据结构的工作过程,帮助读者理解数据的存储与处理方式。此外,《Hello 算法》支持Python、Java、C++、C、C#、JavaScript、Go、Swift、Rust、Ruby、Kotlin、TypeScript、Dart等14种编程语言,提供丰富的代码示例,适合不同语言背景的用户学习。教程中的源代码可以一https://www.codernav.com/sites/2902.html