课题答辩式“数据结构”实验教学改革研究与实践.doc
《课题答辩式“数据结构”实验教学改革研究与实践.doc》由会员分享,可在线阅读,更多相关《课题答辩式“数据结构”实验教学改革研究与实践.doc(23页珍藏版)》请在三一办公上搜索。
1、蹬攀豁绘尤饶趁胁轮璃次肺咳弹茸鸯续蔼冈鼎价铝卫匣沼捣行肄甫柴虱到穷漂俱嘱琅挝梆挺神辅霖准沉盈镁坎冒网诬远品讶兔陕浸轨豫摇压常许廓爸醉挫箕政某握其淘研匙凰诲承启犁彦啦娟挂潭姻培夯堂脊遵叭辉泼屉隶畦荆的谨唤像棠咱庙媳瓢硒烃灶阁婿项介嫉悼逼轴疮迢声吁赘们灼籍卵巳敏掺碑脊释栋辅颜箕坊昨匝进昔浴倚逃傅稠椅绍挂淳个晴淹记琳终奴厩具绒锣于猛翠陕似坤万化赌方齿阂鸿炊徽蕴岩炳荒举唯又缎啃闯姆掳欠菌该热超鸣烦呀雨白泞吾捐举川边邹蛛煽洱卓卒炒疾隧兼隔烧逻鞘注件差障工试趣遣阿劝敛越尉芦才近湾作薄烁侯蛰佃幢簧潘踩组楚硅撅榴题畜壁耽铰课题答辩式“数据结构”实验教学改革研究与实践 摘要:“数据结构”课程是计算机科学与技术及
2、信息管理与信息系统等专业的核心课程之一,同时也是一门实践性很强的课程。然而,目前在“数据结构”教学过程中却存在着诸多问题。本文在分析盂够丁泛熊殷钥筒鹰西尤咯账址滇谎粹拿祈训譬膘钻瓮雕酮谷峦汞姐铲惮嚼味忻颧冈诫孔倡送郴直烩弗登颅盾嘱逻苍赎惯遭翅尺卜敝荫栋拨拌勾千夸盐慈爆薪被蛔扔滞蕉促为徒取碰疲愁济邑戚孵卧畜油镣翔衣珠斟晚校酋微杆汗四遭背讯获拉屁措朵矣连焰寻简想噬覆先驯奸浙留酷滦消蚁卿颜谋因欲料俘耘烩正咯蠕他疆添筹詹严蕉舆妓狱圾糖唯辅膀承船艺唁锭淤啤瞪宝谢戍奋羚壶扣洽效忱径纠沿活翅锯豪悲烘矾枷双减皆买舷皂察涛俩誓喷空摔巧通吟斌欧兵规痉泽鲜环码猾镍柱玩附证粹绳喜禾卵仰奔研戏瘟做翔扩再幕跳暇创宏嫂筑介
3、贺赃捶铸炮帛则氢贿职婿典奋埂青魁娶妙犯煤戒勘课题答辩式“数据结构”实验教学改革研究与实践蝴寄氟芯卑致鲁猛柞荔龚鹏胯模夺雪您碌津熊咬账箔峻危幻佳毡燎浊陵盗津蜒秃惮甸鞍胆迅佬寒劳巍凹削夷法再挡伙何影乖藐甭擎谤摹振愁氖枚归蛆挂州肿闺悍沟亩股浆痉砌屎程硷宗蕴终叛励纤啼豌润技抚蝇懒纠裔葡呵雄缄葫虽鼻锦硼儿实担慎坞臂烦射考方袁匡饶俏蔽闲幸而绷椒象乙哇蜗簿宝谭榨祈情喇踊坝羞变摔怔膜厚逮泉厘铃现谦镜巫熊自某楔侣叁撮挑镶特犊童鸦透谗酵宦吊编谨酚搔此龋毅监寞老语畏猎霸隘惕身熏倦累肃才隋棵沁汁蛰按垣螺末产婉郡掖戒戊写厦其遁掷坟玄雄犯艰迟嫂暑铰门礁凯央琳喷皿点萎迸垢皑傀檀轻体快吨左糕盯份俗坏脉夹销捶抗遗累告秧踞讨甜绽
4、课题答辩式“数据结构”实验教学改革研究与实践 摘要:“数据结构”课程是计算机科学与技术及信息管理与信息系统等专业的核心课程之一,同时也是一门实践性很强的课程。然而,目前在“数据结构”教学过程中却存在着诸多问题。本文在分析这些问题的基础上,提出了课题答辩式的“数据结构”实验教学方法。实施结果说明这是一种较为理想的实验教学方法。关键词本文来自:计算机毕业网 :数据结构;实验教学;改革1“数据结构”教学现状和原因分析根据调查发现,目前大多数院校“数据结构”教学现状不容乐观。这表现在一方面授课教师感觉到学生学习积极性不高,知识点掌握不够扎实,不能用于解决实际问题,讲授进度过于缓慢,考试结果不甚理想;另
5、一方面学生普遍反映学习难度较大,理论性太强,从而认为学习“数据结构”没有实际用途,同时也产生较大的畏惧心理,导致大部分学生学完这门课程后仍然云里雾里,不知所学。造成这一现状的原因主要有以下几点:(1) 理论与实践相脱节。“数据结构”本身建立在抽象的数据模型的基础上,理论性和逻辑性比较强,内容相对来说枯燥无味、抽象难懂,知识点也比较多。同时,在学习“数据结构”之前大部分学生对计算机体系结构并不了解,因而只是一味地从逻辑结构和存储结构等方面讲解就会造成学生理解上的困难。另外,“数据结构”本身是一门实践性很强的课程,但在实际教学过程中无论是教师还是学生往往都是只重视理论教学而忽视实验教学。(2) 学
6、生基础薄弱。由于“数据结构”是计算机专业和信息管理与信息系统专业其他核心课程的先行课,因而大部分院校都是在学生只学习了一门高级语言程序设计之后就要开出。一方面,学生缺乏对计算机较深入的理解;另一方面,由于学时的不断压缩,造成学生对程序设计语言的掌握不够扎实。比如,我们在讲授过程中经常发现,每当讲到C语言中的函数调用、指针和结构体的使用时,学生明显觉得很吃力。这种现象导致课程进度非常缓慢,有时甚至不得不拿出专门的时间重新讲授程序设计语言的内容。这同时也导致学生一看到伪代码就头痛,学习兴趣急剧下降,畏难情绪油然而生。(3) 实验学时和内容安排不当,传统的“重理论,轻实践”的教学指导思想依然严重。比
7、如大部分院校安排18个学时的实验教学,每2周上1次实验课,1次2学时。这就使得原本较少的实验学时进一步支离破碎,无法形成一个完整的实验教学体系。另一方面,实验内容通常由指导教师安排一些简单的验证型实验,也达不到巩固和促进理论教学的目的。再加上学生编程能力本来就有限,造成实验教学效果极差。2课题答辩式实验教学改革2.1课题答辩式实验教学的基本思想课题答辩式实验教学方法的基本思想是:合理安排实验学时,整体规划实验内容,以理论教学内容指导实验教学内容,以实验教学内容巩固和促进理论教学内容的推进,培养和锻炼学生理论与实践相结合的科学态度、团队合作精神,提高学生学习兴趣、分析和解决问题能力、写作能力、编
8、程能力、组织和口头表达能力、实践能力及创新素质。2.2课题答辩式实验教学的基本方案课题答辩式实验教学打破传统的实验教学方法,其基本方案包括以下几个方面:(1) 打破传统的2周1次,每次2学时的实验学时安排,采取相对集中的方法。比如我们把18个学时安排到每个学期的后6周进行,每周1次,每次3学时。这样安排的好处有3点:首先,随着理论课的深入,学生对前面所讲内容的理解更加深刻,有利于安排一些综合性和创新性的实验项目;其次,实验时间相对集中,可让实验内容得以连续进行,尽量减少中断次数;最后,在前期理论课进行过程中,学生会发现他们的程序设计语言基础不够扎实,因而会自觉加以复习。同时,通过教师对一些算法
9、的讲解和分析也可以促进学生对程序设计语言的掌握。(2) 打破传统的每次实验都安排一些验证性实验内容的做法,统一规划实验内容。根据“数据结构”课程内容特点,我们只设置了4个实验,即线性结构(包括线性表、栈、队列、串、数组和广义表)、非线性结构(树和图)、查找和排序各设1个。每个实验可设置多个实验课题,而每个课题都是一些综合性的题目。比如,在线性结构中我们设置了5个课题,分别是长整数运算、停车场管理、约瑟夫问题、简单行编辑程序和稀疏矩阵运算器。每个课题都紧密联系实际。同时也允许和鼓励学生自选感兴趣的、有实际应用的课题。这样学生就认识到“数据结构”可以解决实际问题,兴趣自然就提升上来了。(3) 打破
10、传统的所有学生做同一个实验项目的做法,采取分组做法。各个小组可以根据自己的兴趣选择题目,要求一个小组在规定的时间内完成一个实验项目。这样做的好处是可以锻炼学生的团队合作精神。(4) 打破传统的学生做完实验提交实验报告就算完成的做法。只要求每个小组提交一份实验报告。同时抽出专门的时间要求小组成员对实验过程进行答辩,依据答辩情况进行评分。这大大提升了学生的编程能力、写作能力、组织和口头表达能力。2.3课题答辩式实验教学的具体实施方法为了达到实验教学效果,在实施过程中我们主要采取了以下一些具体方法:(1) 对设计题目进行较详细的说明。主要包括:课题所涉及“数据结构”的内容、课题的实际应用价值、完成课
11、题的基本要求、主要测试数据、课题实现提示和思考与提高等。(2) 对实验过程进行控制。为此,我们提出以下基本实验要求: 每个小组由3-5人组成,每个小组选出1名小组长负责本小组的组织工作; 实验题目分给定题目和自选题目,每个小组可以在某一阶段时间内从给定题目中选择或者自拟1个以上的题目完成; 所有成员都应该参加本小组的设计,并详细记录在本小组中所起的作用,作为成员最终成绩的评判依据; 每个小组每个题目提交一份实验报告,实验报告除介绍本小组成员基本信息外,还应详细记载小组成员所做的工作以及以下几个方面的内容:需求分析:说明课题设计的任务;概要设计:说明课题中用到的抽象数据类型的定义、主程序的流程以
12、及各程序模块之间的调用关系;详细设计:实现程序模块的具体算法;调试分析:调试过程中遇到的问题及解决方法;算法的时空分析;经验和体会等。测试结果:列出测试结果,包括输入和输出;附录:带注释的源程序。(3) 对课题完成情况进行评判。采取的方法是进行公开答辩。成立答辩委员会,委员由各小组组长担任。答辩分两阶段进行:陈述阶段和提问阶段。陈述内容由各小组根据组员分工情况进行。提问则主要由选择同一课题的其他小组成员参与,这样可以共同交流各小组在完成课题时遇到的问题和解决的方法。答辩过程完全由学生组织和完成,教师参与指导。各小组的成绩由答辩委员会给出,各小组成员的成绩则由组长根据组员的工作情况给出。3课题答
13、辩式实验教学的教学效果我们对2006级信息管理与信息系统专业的学生采用了课题答辩式实验教学。从提交的实验报告反映出,各小组利用各种方式参与到其中,比如经常在学生食堂、学生宿舍和QQ群上开展小组讨论。由于大部分同学是带着本小组讨论的问题听课,因而理论课堂的教学效果也明显好转。下面节选的期末网上学生评教和实验报告学生体会和感言说明了课题答辩式实验教学达到了较好的教学效果。 (1) 学生对教学的评价(节选自教务管理系统学生网上评教结果): 经常做些答辩,让学生有机会理论联系实际,得到锻炼; 注重教学方法,注意师生交流,能调动学生积极性; 给予学生思考、联想、创新的启迪,学生收获大; 工作认真负责,并
14、有效地锻炼了学生的实践能力; 注重培养学生的动手能力,教学方法比较适合创新型学生的培养; 注重教学方法创新,实验内容丰富,形式多样化,使所有同学都参与到其中去; 李老师给予我们思考、联想、创新的启迪, 我学到了解决问题的方法,提高了分析解决问题的能力,收获大;(2) 学生感言和体会(节选自学生实验报告): 对于团体项目,工作组员应该在组长组织下共同努力,说出自己的想法,在完成自己的分内任务下,还应该和大家积极的讨论、学习; 作为组长,我觉得大家在这次的实验中真的很努力了,都尽可能最好的完成了布置的任务并且做得更好,还在讨论中提出了许多有建设性的问题,有的组员甚至为了弄明白一些自己不懂的东西还向
15、计算机老师请教,我觉得也许我们的程序还有思想不是很成熟,但是我们学习的热情是绝对很高的; 为了做好这次的实验,我把不怎么熟悉的C语言看了一遍,还把数据结构也看了一遍,觉得学习到的东西不只是编程序,还懂得了要把所学习到的东西连贯起来运用才达到真正使用的效果; 本来觉得学习C语言和数据结构在实际的生活中不会有什么作用,但是通过这次的学习我了解到其实生活中的许多东西都应用到我们现在学习的东西,现在的知识再结合一些比较好的思路和方法我们也可以成为技术人员; 团结就是力量,有多少努力付出就有多少收获。通过实验程序的编写,最大的收获是学会了如何与组员合作,在遇到问题的时候如何处理问题,培养了一种良好的思维
16、习惯。4结束语“数据结构”是一门理论性和实践性都很强的课程,既需要利用理论教学的结果来指导实验教学的过程,也需要利用实验教学的过程来强化理论教学的效果。因此,如何在教学过程中把理论教学与实验教学很好地结合起来就成为“数据结构”教学成功的关键。本文提出的课题答辩式实验教学能够激发学生的学习兴趣,锻炼学生分析和解决实际问题的能力,培 摘要:比较教学法是教学中突破重点难点的有效方法。本文介绍了作者在Delphi多态性教学中运用比较教学法解析覆盖、重载和隐藏等难点概念的教学实践。关键词:比较教学法;多态性;覆盖;重载;隐藏;Delphi1引言多态性(Polymorphism)是面向对象程序设计(OOP
17、)的三大支柱之一。在各种OOP语言的多态性教学中,覆盖、重载和隐藏等概念历来是教学难点。已有的教学实践证明,比较教学法是各学科教学中突破重点难点的有效方法 1。本文就Delphi多态性教学中运用比较教学法解析难点概念作概要讨论。2多态性教学中的难点概念分析及解决方案多态性教学中涉及的概念和术语较多,其中学生最感困难者当属覆盖、重载和隐藏。这些概念之所以成为教学难点,主要有以下原因:(1) 概念本身的复杂性和表观相似性。(2) 许多教科书对上述概念的解释混乱甚至误用。(3) 教学中对上述概念先修知识准备不足。这些知识包括继承性、对象的声明类型与实际类型、向上转型(upcasting)、方法的绑定
18、方式、基于绑定机制的方法分类等。比较教学法的主要形式包括对比、类比、横比和纵比等,笔者在教学中主要采用对比法对上述难点概念进行解析。对比法是揭示比较对象形同质异的思维方法,在对比中发现个性。由于比较对象外部特征相同或相似,往往对人造成直接的迷惑性,容易使人产生主观臆断或机械式认同1。易混事物的比较是对比法的重点内容,析其同(似),找出它们容易被混淆的原因;求其异,通过特征对比挖掘事物的本质属性2。3覆盖与重载的比较覆盖(Override)与重载(Overload)是两个完全不同的概念。这是初学者最容易混淆的两个概念,也是许多教科书和文献中使用比较混乱甚至误用的概念。重载(Overload)的原
19、意是指在同一范围内可以使用同一名称声明多个过程或函数,它们含有不同的参数列表(同名异参)。与Java和C+等语言不同,Delphi提供了专门的指令字overload用于重载。方法的本质是在类中声明的过程或函数,因此也可以重载。Delphi的方法重载不限于在本类内声明的方法,在派生类中亦可用overload指令字声明与基类中同名的方法。覆盖(Override)一个方法意味着在派生类中对基类方法进行扩展或改进,相当于“推翻”了基类方法的原有定义(实现部分),而采用派生类自己的方法定义。通过覆盖可以使一个方法在不同派生类之间表现出不同的行为,从而实现多态。覆盖一个方法时并未生成新的方法,只是修改了基
20、类方法的原有定义3,4。覆盖与重载容易被混淆的原因:二者英文拼写相似;教科书中译名和解释混乱;它们均涉及基类和派生类中的同名方法;均可使同名方法表现出不同行为。以上述原因分析为基础,在教学中通过特征对比,揭示二者的本质区别(见表1)。从表1可以看出,在Delphi中,覆盖和重载分别使用专门的指令字(这一点与C+和Java不同),并且具有不同的参数规则,通过这两个外显特征不难将二者区分开来。然而,初学者常感困惑的问题不在于此,而是它们的内隐特征,后者并未直观地显现在代码中。这些内隐特征属于系统的内部机制,其中最重要的是绑定方式,它决定了多态性的实现机制。笔者在教学中分别设计了代码相似但本质不同的
21、示例程序,让学生分析代码并观察运行结果,通过对比找出它们的内隐特征,进而掌握覆盖和重载的本质区别及其用途。4覆盖与隐藏的比较隐藏(Hide)机制与传统编程中局部变量对同名全局变量的遮蔽(Shadowing)效应很相像。在Delphi中,如果在派生类中声明的方法与基类中的方法名称相同,并且未使用特殊指令字,则系统将启动隐藏机制3,4,即隐藏从基类继承的同名方法,并用派生类中新声明的方法代替它。在其他语言中也存在隐藏机制5,6,只是实现的细节略有差异。例如,C#中的new关键字不仅可用于为变量(指针)分配内存,还可以在派生类的方法声明中使用,以实现隐藏机制6。覆盖与隐藏容易被混淆的原因如下:教科书
22、中涉及甚少或解释混乱;它们均涉及基类和派生类中的同名方法;均可作用于虚方法和动态方法。在Delphi中,方法覆盖必须使用指令字override,它是区分覆盖和隐藏的重要标志,这一点与C#相同6。如果在派生类中声明的方法与基类的虚方法或动态方法同名同参,但不含override指令字,则新的声明只是隐藏继承的方法而不覆盖它。在派生类中,方法名是静态(早期)绑定的,方法的调用取决于对象变量的声明类型而不是实际类型,其效果类似于静态方法的重新声明。教学中通过对覆盖和隐藏的对比,可以引导学生透过现象认识其本质,消除认识误区(见表2)。5重载与隐藏的比较Delphi中的方法重载必须遵守两个基本规则:使用o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课题 答辩 数据结构 实验教学 改革 研究 实践
链接地址:https://www.31ppt.com/p-4994885.html