应用型高校“数据结构”教学改革探索

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:changaty
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:“数据结构”是计算机专业的一门核心课程,但实际教学效果却往往难以令人满意。结合应用型高校学生的实际情况,在教学过程中进行了多方面探索和改革,对培养和保持学生的学习兴趣、提高学生的分析和解决问题的能力方面起到很好的效果。
  关键词:数据结构;现场编程;联动教学改革;C语言
  作者简介:蔡敏(1975-),男,安徽巢湖人,巢湖学院计算机与信息工程学院,讲师;汪世义(1974-),男,安徽桐城人,巢湖学院计算机与信息工程学院,副教授。(安徽 合肥 238000)
  基金项目:本文系巢湖学院教研项目(项目编号:Jyxm201102)、安徽省省级质量工程项目(项目编号:20100970)的研究成果。
  中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)07-0103-02
  “数据结构”课程对于培养应用型计算机专业人才至关重要。但因其理论抽象、逻辑性强、对程序设计基础要求比较高,学生普遍感觉这门课程难以理解,上机实践也不知从何着手,对该课程缺乏应有的兴趣。王晓东教授指出:学生的学习兴趣受专业基础课程成绩和对课程学习重要性认识的影响,增加实践性教学和以案例为先导的理论课教学方式更有利于提高学生的学习兴趣。[1]本文以此为指导思想,开展了一系列教学改革探索。
  一、与C编程语言联动改革
  学习数据结构离不开编程。所学的理论只有落实到程序实现上,学生才会真正感到“数据结构”课程的用处。以前教师只试图通过一些有趣或实用的例子来激发学生学习兴趣,如猴子选大王、24点游戏等问题,但这种兴趣并不能成为学生尝试编程实现的动力,其根本原因不是学生偷懒,而是他们的编程基础比较差。在这种情形下,要求学生运用理论去解决实际问题是不切实际的。因此,如果只是单纯对“数据结构”教学进行改革,不解决学生编程基础差的问题,改革必定难以取得成功。我校开设的“数据结构”以C语言为描述工具的,因此对“数据结构”与“C语言”两门课程进行了联动教学改革。
  有的教师课堂驾驭能力较好,教学也非常负责,但在C语言教学过程中,有意或无意把公共C语言等级考试的大纲当作计算机专业C语言教学大纲来开展教学。他们在教学中比较注重语法细节的教学,没有将教学重点放在算法上。这种教学对提高非计算机上专业学生等级考试通过率效果非常显著,但对于计算机专业学生却效果不好。
  C语言本身概念复杂、规则繁多、灵活而易错,在教学过程中要“淡化语法规则,注重算法,以练代记”。提高编程能力的唯一途径就是不断编程,只有在反復实践中才能掌握并灵活使用诸多繁杂的规则。把语法知识分为三类,第一类是教师须重点讲解的语法,比如for语句,应重点讲解其结构以及嵌套方法,并辅以足够的练习;第二类是非重点语法,这类语法不应占用课堂时间,比如for语句的各种省略形式,如果实践中遇到需使用这类语法的情况,可引导学生自主学习;第三类是尽量不用的语法,主张在编程时使用简单明了的语句,比如在表达式里要求不用(i++)+(++i)+(i++)形式。
  过度地强调语法一方面偏离了计算机专业教学目标,另一方面占据了过多课时,使得后面的指针、结构体等内容得不到充分学习,而这些内容恰恰是C语言的难点和精华,也是数据结构的重要基础。缺乏这些知识,将很难理解数据结构。
  二、数据结构教学改革
  1.一题多解、一题多变、一题多用
  教师在讲解课本算法时要广开思路,不能就题论题,应适当加以扩展、发散,尽量做到一题多解、一题多变、一题多用。这既有利于学生更透彻地理解课本算法,又能开阔学生思维,激发学生积极思考。实践表明,这种方法课堂气氛热烈,学生参与度高。
  例如课本例题:有两个顺序表LA和LB,其元素均为非递减有序排列,试编写一个算法,将它们合并成一个顺序表LC,要求LC也是非递减有序排列。[2]
  课本算法思路是:首先根据LA和LB中数据元素个数之和,为LC分配空间;其次依次从表头到表尾扫描LA和LB中元素,比较它们当前元素的值,将值较小者插入LC中,直到其中一个顺序表扫描完毕;最后将另一顺序表中剩余元素逐个插入LC中。
  对此例题准备了两个发散点。发散点一:如果希望LC合并后的结果是非递增有序排列,经讨论得到可得到两种办法,一种是扫描方向不变,而把插入方向反过来,即从表尾往表头方向插入;另一种是插入方向不变,把扫描方向反过来,但每次将值较大者插入到LC。如果把扫描和插入方向都反过来,每次比较时将值较大者插入LC,就可以得到原题另一解法。发散点二:课本算法使用了3个循环,其中后两个循环只会执行其中一个,那么可不可以只要一个循环就能达到目的呢?[3]首先带学生分析为什么课本算法要三个循环。这是因为第一个循环后必有一个顺序表中会有剩余元素。要想在一个循环就能实现,必须在这个循环内让所有元素都能插入到LC中。方法是在两个顺序表尾各加一个无穷大。注意控制循环条件,不要把无穷大也插入到LC中了。
  可以发散的例子很多,比如再讲二分查找时,可以发散到三分查找,也会引发有趣的讨论。再比如折半查找还可以用来迅速找到第k小的元素,等等。
  2. 适当采用现场编程示范
  很多学生反映上课算法思路能听懂,许多问题他们心里知道如何去解决问题,但就是不知道如何用编程语言或算法表达出来。教师可利用多媒体教室,在课堂上可适当采用现场编程方式。[4]这种方法可以让学生见习教师把自己的思路转变成代码的全过程。程序从无到有,到最终运行通过,对学生编写和调试程序起到很好的示范作用。C语言教学中涉及的程序通常较短,最好能让学生主写,而数据结构程序通常比较长,也更复杂一些,可由教师来主写,边写边讲解。教师也可故意制造一些问题,由学生积极献计献策加以解决。现场编序虽然比较耗费课时,但适当示范还是必要的。   例如猴子选大王问题,教师先带着学生先把算法总体思想写出来,这个算法不依赖于具体的存储结构。接下来分别用顺序结构和链式结构加以实现。这对学生深刻理解绪论中“算法的设计只取决于逻辑结构,而算法的实现则依赖于具体的存储结构”这句话很有帮助。也能让学生体会到用类C语言表示的算法与用C语言实现的程序的区别。同时,学生也能认识到,算法并非只是抽象的理论,而是可以运用到实践中的。
  经过这次课的讲解,直接把课本算法照抄到电脑上运行的学生大大减少,不少学生课后按自己的思路,写出了程序,极大地增强了学生编程的自信心。
  3.培养学生编程意志和自信心
  意志与兴趣并不矛盾,有兴趣固然是好,但没有产生兴趣之前,意志就显得特别重要了。当学生能解决很多问题时,往往就有兴趣了,至少不觉得痛苦。学习编程也一样不可能一帆风顺,虽然教师布置任务时总希望由易到难,循序渐进,但实践中总会遇到一些相对复杂的问题,需要花费较多时间和精力。如果学生没有坚强的编程意志,知难而退,最终也难以成为高质量的应用型人才。比如24点游戏,因为担心学生意志力不够会中途放弃,所以采用逐次增加任务的方法。首先让学生实现课本表达式求值算法,然后要求他们修改程序和结构,随机产生1至13的整数,当输入一个表达式后,能判断是否正确,最后再要求如果用户输入“?”应能给出一种解,或提示无解。等全部实现完之后,学生发现已经写了几百行程序,特别有成就感。学生在完成该课程设计题的过程中,经历了反复认真的思考,耐心的调试,对培养学生编程意志和编程自信心起到很好的效果。
  三、其他辅助措施
  1.及时给学生提供帮助
  由于每次上机实验的学生数较多,有些学生的问题不能得到及时解决,如果学生问题积压多了,也会逐渐失去兴趣。教师可通过电子邮件、QQ等方式给他们提供及时帮助,还可以开展编程兴趣小组,让编程能力强的同学帮助编程基础差的同学,也为他们相互交流编程心得提供了方便。
  2.严格考核方式
  在教学过程中发现,一些学生不愿独立思考,把同学做好的作业直接拷贝过来。因为学生数较多,难以逐个甄别,为此教师采取了随机抽查答辩的方式。每次抽取一半学生当面给教师解释所提交的程序的部分代码,如果不能正确解答,则本次作业被视为不合格。这种方式至少能鞭策学生设法弄懂拷贝来的程序,这也是一种收获,而大部分学生都能独立地或经过与同学讨论完成作业。
  四、结束语
  兴趣是学习的内在动力。只有让学生对编程产生兴趣,学生才有可能主动把理论应用于实践,主动去提高自己解决问题的能力,以后的教学才能事半功倍,应用型计算机专业人才培养目标才能最终得以实现。好的编程基础是学习兴趣的前提条件,如何使学生产生和保持编程兴趣,值得进一步深入研究。
  参考文献:
  [1].王晓东,吴英杰,等.算法与数据结构学习兴趣影响因素分析[J].计算机教育,2010,(12):73-76.
  [2]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2007,
  4:26.
  [3]T.Cormen,C.Leiserson,R.Rivest,等.算法导论[M].潘金贵,等,译.
  北京:机械工业出版社,2006.
  [4] 董洪伟.数据结构课程的教学改革初探[J].無锡教育学院学报,
  2005,(1):56.
  (责任编辑:宋秀丽)
其他文献
摘要:为培养研究应用型高级人才,对河北联合大学电子科学与技术专业的培养体系进行改革。改革以“增强光电子特色,优化专业课程体系改革”为建设思路,“夯实专业基础、拓宽专业知识、加强实践技能、突出光电子应用”为培养主线,改善学生的知识结构、加强理论基础,最终提高学生的实践及创新能力,培养适应社会现代化建设需要的高技术人才。  关键词:电子科学与技术;光电子技术;教学改革;实践创新  作者简介:邸志刚(1
期刊
摘要:针对在核原料开采、纯化和核废物处置循环全过程、核能利用、核与辐射安全、运行管理等领域对具有核环境保护知识的专门人才的需求,依据南华大学的学科特色和环境工程专业本科教学的要求,探索了建立特色课程体系、整合资源、加强学科融合、强化工程实践的教学体系。  关键词:整合资源;环境工程;培养;核特色  作者简介:张晓文(1967-),男,湖南石门人,南华大学环境保护与安全工程学院,教授;吕俊文(197
期刊
摘要:讲授法作为历史最悠久、应用得最广的一种教学方法,在今天受到了广泛的质疑。许多人将讲授法与课堂灌输联系在一起,这是不正确的。通过对讲授法进行历史溯源、分析讲授法长盛不衰的原因以及优缺点等,以期人们全面、正确地理解讲授法,更好地为教学服务。  关键词:讲授法;历史溯源;合理性;地位  作者简介:张树媛(1986-),女,云南大理人,厦门大学教育研究院硕士研究生。(福建 厦门 361005)  中
期刊
摘要:“信息系统集成技术”课程是信息管理与信息系统专业的重要专业课程之一。结合信管专业的特点,描述了“信息系统集成技术”课程在教学目标、教学内容、教学实践以及考核方式等方面的探索和实践。  关键词:信息系统集成技术;课程建设;层次案例教学  作者简介:王艳娥(1978-),女,河北唐山人,北京联合大学管理学院,讲师;周立(1953-),男,北京人,北京联合大学管理学院,副教授,高级工程师。(北京
期刊
摘要:“单片机原理及应用”是机械类等专业必须掌握的一门重要专业基础课,其教学效果直接影响单片机系统设计开发人才的培养质量。针对“单片机原理及应用”课程自身的特点及传统教学模式存在的弊端,从课程人才培养目标、课程体系、教学内容、教学方法和手段等环节进行了改革与探索并运用在教学实践活动中,取得了明显的效果。  关键词:单片机原理及应用;教学改革;CDIO工程教育理念  作者简介:王金波(1976-),
期刊
摘要:作为本科教学阶段的专业基础课程之一,“电力电子技术”课程难、内容多、课时少,所以上好这门课程对于大学新进教师是一件具有挑战性的工作。主要介绍了如何通过做好整体性备课工作、每一次课的课前备课工作,重视第一堂课,以及掌握并运用好教学基本原则,来上好“电力电子技术”课程,希望能起到抛砖引玉的作用。  关键词:电力電子技术;教学研究;备课;教学原则  作者简介:汤赐(1978-),男,湖南湘潭人,长
期刊
摘要:“电路”是电气信息类专业非常重要的专业基础课,因此该课程教学在学生创新能力培养和素质培养中发挥着至关重要的作用,其教学质量的高低直接影响电类专业学生整体素质的培养和提高。为满足日益发展的现代社会需求,对“电路”课程的理论教学和实验教学等方面进行了改革,特別是教学方法和教学手段进行了大胆尝试和实践。实践证明这有效地改善了教学效果和教学质量。  关键词:电路;仿真实验;引导式教学法  作者简介:
期刊
摘要:探讨了自主学习的内涵,针对自主学习特性,以培养学生自觉性、能动性、自主性以及提高教学成效为目的,研究了基于项目实例为主线的任务驱动型教学方式,以分组学习为主导的学习方法,以过程监控、教学评价为核心的教学管理模式,构建了适合于VB程序设计的以教师为引导、学生为主体的自主学习教学模式。  关键词:自主学习;教学模式;VB程序设计;项目任务驱动  作者简介:金宝根(1980-),男,浙江绍兴人,绍
期刊
摘要:从基于行动导向的任务驱动式教学理念出发,介绍了“PLC应用技术”课程项目化教学内容的构建,并从“资讯、计划、决策、实施、检查、评估”六个步骤阐述了“交通信号灯的PLC控制”项目的具体实施过程,对其他课程的教学改革具有一定的指导意义。  关键词:行动导向;PLC应用技术;任务驱动教学  作者简介:黄秋姬(1963-),女,湖南攸县人,湖南化工职业技术学院,高级讲师;汤光华(1957-),男,湖
期刊
摘要:针对非计算机专业的“大学计算机基础”教学的现状及存在的问题,结合“大学计算机基础”课程特点,将开放式、互动式的案例教学法应用于课程教学中。教学实践证明教学效果明显,得到了成都理工大学教学督导专家及学生的一致好评,具有一定的借鉴价值。  关键词:大学计算机基础;案例教学法;开放式;互动式  作者简介:鲁红英(1974-),女,重庆人,成都理工大学信息科学与技术学院,副教授;肖思和(1970-)
期刊