数据结构实验教学改革探讨
2017-10-21段明秀王从银周铁彭胜
段明秀 王从银 周铁 彭胜
摘要:《数据结构》是计算机科学、通信工程等专业的基础课,对培养学生的理论联系实际能力及创新能力起着关键作用。课程学习难度大,内容枯燥,学生缺乏学习兴趣。实验教学是提高教学效果的重要手段。针对实验教学中存在的问题,对实验教学进行一系列的改革,以帮助全面提升课程教学效率及质量,促使学生成为社会发展所需的复合应用型人才。
关键词:数据结构;算法;教学内容;教学方法;实践教学
中图分类号:G64 文献标识码:A 文章编号:1009-3044(2017)18-0129-02
《数据结构》是计算机科学、通信工程等专业的基础课,是介于数学、计算机硬件和计算机软件之间的核心课程.主要研究非数值计算问题,是解决实际问题的重要桥梁,也是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。但由于课程的高度抽象性,以及它需要程序设计语言作为基础,教材仅有伪代码而没有完整代码使得学生对课程的知识难以理解,算法思想难以吃透。实验教学通过将伪代码“翻译”成程序,不仅能够提高学生的计算思维能力,在翻译的过程中加强了对算法思想的理解。实验教学有效提高了学习的效果从而激发学习兴趣。但目前传统的实验教学尚存在以下问题:
1数据结构实验教学存在的问题
1.1内容难度大且抽象
数据结构教学内容多,主要包括线性表,堆栈和队列,串,树,图,查找,排序等章节,特别是图,查找,排序章节,不仅数据结构复杂,算法设计内容较多且难度大。每个章节都使用抽象数据类型,学生难以理解。
1.2学生编程基础参差不齐
数据结构需要程序设计语言做基础,学生由于学习兴趣,理解力等差异导致编程基础不同。而且由于数据结构采用伪码描述算法,部分编程基础差的学生难以将伪码翻译成程序,不仅翻译的程序有很多语法错误,需要很多时间去解决,而且有时需要学生掌握调试技巧,理解算法思想,才能在实验教学时间内完成教学任务,由此导致较多学生对课程的实验教学失去兴趣。
1.3实验内容缺乏创新
由于学生编程基础参差不齐,实验内容大多只能选自教材的算法,传统的数据结构实验教学大部分采用的是验证型实验,即将算法的伪代码翻译成程序。验证型实验不同实验内容互不相关、相互脱节,缺乏系统性和延续性,当遇到类似的、需要知识综合的问题时,学生缺乏从全局的角度分析和解决问题的能力,这不利于学生知识应用能力的培养。
2实验教学改革措施
2.1实行分层教学,提供个性化服务
针对学生编程基础,将学生分成3个层次,即基础扎实,学习主动性强且学习能力强的;基础一般但好学的;基础差且自律性差的。每堂实验课针对三种层次的学生布置相应的实验教学内容。并且对层次提高的学生实行一定的奖励,激励学生上进。
2.2实验内容丰富化
针对学生实行分层教学,必然要对实验内容进行设计。借助pta平台,建立吉首大学数据结构实验教学题库。根据题目难度将题库分成3类:低、中、高难度,每类题库题量充足,以方便实验课时随机抽取题目,防止抄袭,可以有效避免学生偷懒。借助pta平台,不仅可以实现对学生的个性化服务,而且通过自动提交代码,pta平台自动判题,解决了学生对题目的解题方法的正确性验证,即节省学生的时间,也方便教师及时查看学生的学习效果。基础较差的学生基本采用验证型实验,题目从题库中选用低级难度题目。对这部分学生,先提供算法的一部分详细案例代码,学生可以先从读懂代码来体会数据结构的精髓,加深对基础知识的理解,然后将没实现的部分依葫芦画瓢独立完成(完成函数设计)。对中间层次的学生主要采用设计型实验,给定实验目的要求和实验条件,由学生自行设计实验方案并加以实现,题目从题库中选用中级难度题目。中间层次的学生占学生的主体,对这部分实验内容要精心设计,即要考虑实验的难度,又要有一定的应用性和趣味性。由于设计型实验一般难度稍大,要求学生课前进行实验预习,人员组合可以采取3+1的形式,即3个中间层的学生,1个基础扎实的学生,这种组合方式既充分调动同学的学习主动性、积极性和创造性,又培养了团队合作精神。针对基础较好的学生主要采用综合型实验,题目从题库中选用高级难度题目,如迷宫求解问题,哈希表的设计等。综合型实验一般规模比较大,需要学生具备扎实的基础,良好的计算思维模式,缜密的逻辑分析能力。对这部分学生不仅要求其课前预习实验内容,还提供相应的资料,做好知识储备。
2.3实验教学手段多样化
为了更好地实现分层教学,个性化服务,除了实验内容进行了大量的题目准备,在实验教学过程中还要根据学生的实际学习效果,对分组进行动态的调整。在实际操作中,这种方法能有效的激励学生进步。实验教学的初期,需要教师在掌握学生的学习效果、学生编程能力花费较多精力。实验教学的中期,可以采用基础扎实学生帮助基础较差的学生解决在实验过程中出现的语法错误、调试问题等,促进学生的人际交流。在实验教学的后期,选拔学生参加一些小型的软件开发项目,结合实际软件开发项目,让学生学会分析问题,设计数据结构,设计算法,培养学生的理论联系实际能力。
3结论
通過对实验教学进行改革,使学生不仅停留在理论知识的学习,在实验后期参与项目式软件开发,因此在实际的软件开发中学会如何选择合理的数据结构,设计有效的算法,学以致用,达到培养学生的创新能力,解决实际问题能力的目标。同时对学生进行个性化服务,逐步提高学生的学生兴趣,缩减学生的差距,全面提升课程教学效率及质量。endprint