《数据结构与算法》的教改问题研究
2017-06-17李婷许鸿儒
李婷+许鸿儒
摘要:目前,地方高等院校的教学目标正逐步转型为以培养应用型人才。我们以信息與计算科学的《数据结构与算法》课程为例,结合多年的教学观察分析传统教学中出现的若干问题,并提出一系列教学改革的研究方向进行探讨,以达到应用型人才培养的目标。
关键词:数据结构与算法;教学改革;应用型人才培养
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)23-0128-02
一、引言
1.地方高等院校应用型人才培养改革。地方高等院校的教学目标正逐步转型为以培养应用型人才为目标,课程教学方法及设置要求学生在学习过程中能学到与社会接轨的知识,从而能提高学生的学习兴趣,且在系统学习后,即毕业后进入社会能较快上手,从而培养出适应社会需求的应用型人才。
2.《数据结构与算法》课程地位。《数据结构与算法》是信息与计算科学专业的核心基础课程。数据结构的研究范围主要涉及数据的逻辑结构、存储结构和操作的实现,内容是程序设计(特别是非数值计算的程序设计)的基础,也是设计和实现编译程序、操作系统、数据系统及其他系统程序和大型应用程序的重要基础,是一门理论性强且实践性强的课程。通过这门课程的学习,学生在程序编写的过程中能够正确、合理地选择数据的存储结构,有效地设计算法,从而提高软件整体质量和效率。
3.本文研究方向。本文着重研究如何针对信息与计算科学专业的特点,地方院校培养应用型人才的教育模式,学生基础相对薄弱的情况,设计合理的教学方法,达到应用型人才培养的目的。
二、传统教学中存在的问题
笔者多年从事数据结构与算法课程的教学,经与学生进行沟通后,总结出传统教学中存在的问题有如下几点:
1.理论性强,知识点多。数据结构与算法课程的知识点多,理论性和实践性均较强,且有高度抽象的特点。故要求学生对程序设计语言和相应的数学知识掌握要足够深入,才能较好地学习。信息计算科学专业的学生数学基础较薄弱,学生反映,理论过于抽象且内容较多,越学后面越不懂,内容枯燥不易理解。
2.上机动手能力差。数据结构与算法课程中一个重要部分是上机编写程序实现算法,学生由于上一门程序设计课程还未理解,难将算法实现,体会不到编程的乐趣、算法的优美,在学习中易失去信心。
在上机实践观察中学生常出现两种情形:一种是理论尚未理解透彻,后续上机实践根本毫无头绪,不能灵活应用推广;一种是理论可以明白,但程序设计的能力跟不上,无法独立完现算法编写实现和调试,甚至无从入手去完成伪代码的书写。这两类学生占绝大多数,只有少部分学生可以较顺利地掌握教学内容并实现完整算法。
3.学生对数据结构的认识不够。外面有些培训机构的速成模式对学生的影响大,它们往往针对某一具体工具软件的使用,工具软件已经将许多知识进行了集成封装,使用者只需调用即可,不用关心具体实现步骤、方法和效率。而这些步骤、方法、算法效率的讨论都是数据结构中要学习的内容。学生认识不到数据结构的重要性,于是觉得这门课程没有应用的前途和学习的动力,不肯多花时间在上面去练习和实践,从而限制了自己后续能力的提高,比如改进算法的效率,优化程序等。
三、改革方法探讨
1.以理论教学为主,案例式教学为辅。针对应用型人才培养的目的和学生普遍反映的课本内容过于抽象的问题,可以选择一本以案例式教学为主的教材作为教学辅助教材。在讲授某个知识点前,布置学生在辅助教材中阅读,了解相关的应用背景。在预习过程中学生往往能发现一些问题,于是在课堂学习中将更有目的性和积极性去学习理论知识,有能力者甚至可以在课外尝试实现案例、发现问题。通过案例学习可以提高学生的学习兴趣,符合应用型人才改革的目标。学生也通过案例学习了解现实中出现的问题有哪些解决方法。当理论具体化后,在工作或后续学习中遇上实际问题将更有解决的方法和思路,而且再进行类比推广应用就比较容易。
但教学中又不能简单的以案例式教学为主。因为案例式教学的一个缺点是案例中涉及到的应用理论未必完全,而是某种模型结构的某些方面的具体应用。如树的教学,一般的课本对树的应用讲了六七方面,采用案例教学法,可能只面对几种应用。故教师在课堂上要将案例抽象出对应的结构,与理论结合在一起,详细讲解理论,即课堂上仍是以理论教学为主。
2.理论教学中知识点的筛选和难易处理。考虑到学院的学生基础问题,学生相应的数学知识掌握不够深入,若面面俱到地将所有理论全部讲完,将知其然而不知其所以然,也不符合应用型人才培养的目标,故课程内容要进行一定的筛选,后续课程中将出现的问题,不妨留到后续课程后再详细讨论。
比如,图的关键路径问题,对于基础掌握好的学生经过课堂学习确实可以掌握,但大部分学生或是不理解,或是理解后不能上机实现,而这一问题在离散数学课程中图论一章后有详细论述,那在数据结构中有限的课时中就不妨先简讲,多花时间在图的存储、遍历算法、最小生成树等算法上,效果会更好。
另外,教师在理论讲解中注意难易的处理。学生要是产生了畏难情绪,就容易造成前面的知识未消化,后面的知识更无从理解的学习障碍。据过往经验,数据结构线性表一章是比较简单的,其难点在于链表,接着的队和栈一章与线性表是一致的,仅操作方法不同。若学生在线性表上卡住了,再学栈和队列会觉得更难。于是教师授课时对一些基础又简单的问题,讲深入、讲透彻,配合传统的黑板结合粉笔效果更好,学生能有效跟着教师进行思考,注意归纳总结,虽然花时间多,但再学习后续知识时会触类旁通,学习自信心能提高,有利于形成良性的促进作用。
3.上机实践的难易处理和互动改革。上机实践主要是将伪代码的算法用具体程序语言实现、运行。应用型人才培养的目的就是要培养学生将理论知识用于实践,即能实现运行具体算法。故培养学生的动手能力是学好这门课程的关键。
在整个学期的实践处理上,实践难度安排由易至难。在前面的章節实践作业中,给出的可运行代码应该较完整,留下关键部分让学生去编写,尤其是学会调试。随着章节的推进,给出的可运行代码逐步减少至不给。这样处理是可以让学生在初学时不至于无从入手,而且可以让程序设计基础不牢的学生有时间通过实践强化巩固,让学生获得编程乐趣。
另外,上机实践时可将学生分成若干小组,每个小组选出一个学习较好的学生为组长,上机中组长可以帮助组员进行程序的调试和讲解,使学生能够阅读程序理解程序所表达的意义。学生对知识点理解的角度和教师的角度可能不同,有时候同学请教比教师更能让他们接受,从现实课堂中反映,学生确实更愿意向同学请教。
组员们在讨论中产生解决不了的问题,再与教师讨论得到解答,这样的互动改革既可以有效解决教师逐一回答时间有限的问题,又可以提高学生的学习热情,学生之间不断相互学习共同提高,真正让大家都能动起手来,锻炼编程能力和举一反三的自学能力,为将来到社会工作打下扎实的基础。
教师在指导中要引导学生学会读懂程序错误提示,自己调试修改程序,提高学生实践水平。加强对学生举一反三能力的培训,让实践教学反哺理论教学,使学生对理论有更深层次的理解。培养学生良好的程序编写习惯和风格,注重程序注解。
4.开展课外讲座。在课外,邀请已学过这门课程的学生和正在学习的学生进行经验交流。尤其是一些已经参加工作的学生,他们可以带来更多的实际案例,这些案例比教材中提供的更新颖、更具体,涉及到更全面知识的融会贯通,而且他们可以提供工作中有关《数据结构与算法》这门课程的经验,可以让学生们了解与社会接轨的知识,提高学生的学习兴趣。
四、总结
近年毕业生就业问题日趋严重,通过上述讨论发现,传统数据结构与算法课程的教学形式已不能满足现阶段实际要求,地方高等院校如何进行应用型人才培养改革,培养出适应社会需求的应用型人才成为研究重点。本文以地方院校信息与计算科学专业的《数据结构与算法》课程为例,探讨一系列的教学改革措施,以达到应用型人才培养的目标。
参考文献:
[1]余腊生.石献.基于创新理念的数据结构教学方法探讨[J].计算机与信息技术,2006,(11):110-114.
[2]李克清.《数据结构》课程中的案例教学初探[J].长江大学学报(自科版),2004,12(1)4:135-136.
[3]严蔚敏.吴敏民.数据结构(C语言版)[M].北京:清华大学出版社,1997.
A Study on "Data Structure and Algorithm" Curriculum Reformation
LI Ting,XU Hong-ru
(School of Mathematics,Jiaying University,Meizhou,Guangdong 514015,China)
Abstract:At present,the purpose of reforming in education for local ordinary colleges and universities is strengthening innovation.On this background,we take "Data Structure and Algorithm" course for example,combined with years of teaching observation analyzes,comprehensively analysed the problems of traditional teaching process,and then propose a number of approaches to explore the practice of application-oriented professional courses.
Key words:"Data Structure and Algorithm";reform in education;cultivation of applied talents