应用型人才培养下的数据结构与算法课程改革
2018-09-13霍清华吴锦华伍祥王德昌刘艳
霍清华 吴锦华 伍祥 王德昌 刘艳
摘要:作为各大高校计算机专业的必修课之一,《数据结构与算法》其重要性不言而喻。由于其课程内容抽象、理论性强,对于普通本科院校学生来说难以理解,学生学习兴趣不高,教学效果不佳。该文根据我校培养应用型人才为目标,阐述了这门课程进行的一系列改革,包括课程内容,授课方式以及实践教学等方面的改进,使其更适合应用型本科院校学生,重在培养学生计算机思维能力、问题抽象能力和综合程序设计实现能力,训练和提升学生的实践技能,更顺应计算机行业的发展。
关键词:数据结构与算法;应用型人才培养;实践教学改革
中图分类号:TP393 文献标识码:A 文章编号:1009-5039(2018)17-0209-02
Abstract:As one of the compulsory courses for computer majors in universities, The importance of "data structure and algorithm" is self-evident. Because of its abstract and theoretical course content, Its difficult to understand for ordinary undergraduate students, students have little interest in learning, teaching is not effective. According to our school to develop applied talents as the goal, this paper expounds a series of reforms in this course, including the improvement of curriculum content, teaching methods and practice teaching, so that it is more suitable for students in Applied Undergraduate Colleges and universities. It is important to train students' ability of computer thinking, problem abstract and comprehensive program design, and to train and enhance the students' practical skills. More conforms to the development of the computer industry.
Key words: data Structure and algorithm; applied personnel training; practice teaching reform
《數据结构与算法》是计算机类专业的一门非常重要的专业基础课,对应于计算机学科中问题求解的理论、抽象和设计的方法论,在计算机软件类课程体系有着承上启下的核心地位。它一方面扩展和深化在离散数学、程序设计语言等课程学到的基本技术和方法,另一方面为进一步学习其他专业课,如操作系统、数据库系统、软件工程等奠定坚实的理论与实践基础。本课程重在培养基本数据结构分析能力和综合程序设计实现能力,是计算机类专业人才素质框架中的脊梁骨。它承上启下,贯通始终,对学生能力培养至关重要,受益终身。但从长久的教学实践中看,这门课程的教学效果一般,不能达到教学目标。因此,必须结合实际情况,采取有效改革措施优化课程教学,旨在提升学生应用能力水平。
安徽信息工程学院是经教育部批准独立设置的民办普通本科高校,根据我校“应用型”的办学定位,坚持我校长期以来所确立的“培养应用型人才”的办学目标,《数据结构与算法》作为计算机系三个专业的必修课以及其他非计算机类专业选修课,课程的建设需要从用人单位对毕业生的岗位能力需求着眼,训练和提升学生的实践技能,更需要顺应计算机行业的发展,为毕业生的未来发展做好铺垫。
1 数据结构课程教学存在的问题
数据结构是一门理论性很强的课程、要求学生具备良好抽象的思维能力和分析能力,该课程的理论性以及抽象性,不容易提起学生学习兴趣,以致于达不到良好的教学效果。导致这种情况的原因是多方面的。
1.1 学生基础不牢,未能充分掌握先导课程
数据结构课程的学习是基于编程能力和编程习惯的,如果在前期学生不能熟练掌握好程序设计语言,没有养成良好的编程习惯,将直接导致数据结构课程进展慢,久而久之也会渐渐失去对这门课程的学习兴趣[1]。数据结构的前驱课程是程序设计语言,和大多数的本科院校相同,本校在第一学年开设C语言程序设计和面向对象程序设计C++实现两门课程。由于学生都是刚刚步入大学,对大学的教学方式不适应,自学能力较差。并且,计算机专业中绝大部分学生在进入大学之前完全没有接触过计算机编程,很难形成计算机程序设计思维。因此,学生对函数的应用、指针、构造数据类型等,程序设计语言中较难但举足轻重的内容理解不深,不能熟练掌握并应用,从而影响后面数据结构的学习。
1.2 课程难度大内容多,学习兴趣不高
数据结构课程通常是构建于数据模型基础之上的,其教学目标是使学生了解各种数据对象的特性,学会数据的组织方式,以及使用计算机思维,表示现实世界中的关系,解决实际问题的,培养学生算法设计和分析能力。该课程具有较强的逻辑性以及抽象性,相较于其他类型的计算机课程来说,对学生的逻辑推理能力、抽象能力和空间想象力要求较高。对于本身基础不牢的普通高校学生而言,高难度的教学内容使学生学习积极性不高。
同时,数据结构与算法课程内容多而广,除了要掌握线性表、栈、队列、树、图这些基本的逻辑结构,还要了解这些数据结构在计算机内的存储结构,不同的存储结构会直接影响对其数据的各种操作方式。对于刚刚学习这门课的学生而言,很难完全理解同一种逻辑结构,在不同的存储结构下的各种数据操作。
1.3 实验教学效果差
目前大多数的课程实验都是验证性的,将教师讲解的算法用程序实现。缺乏使用学到的算法解决实际问题的实验内容,学生在实验后,仍旧不知道所学的数据结构在实际应用时能对编程有什么指导意义,使得实验课流于形式,而不能锻炼学生分析解决问题,设计算法的能力[2]。同时,由于学生数量较多,老师不可能逐个去验证每位学生实验代码的正确性,难免会存在浑水摸鱼的情况,实验效果无法保证。
2 基于应用型人才培养的数据结构课程改革措施
2.1 调整教学计划和教学内容
根据我院自身实际情况,以培养应用型人才为教学目标,修改教学大纲,调整教学内容。
首先,将数据额结构和算法课程和C++课程同学期开设,在教学安排上,将C++课程作为前驱课程,在类的概念学习完之后,开始数据结构与算法课程。学生学习完C语言之后,由于缺乏自觉性,疏于练习,很多内容已经遗忘。开学前几周的C++课程,刚好可以让学生巩固程序设计语言的内容,为学生夯实基础。本固枝荣,对数据结构的学习大有裨益。
其次,全面调整教学内容,减少理论性过于深奥、实践应用少的内容或者与其他课程重复的内容,如广义表、串、外部排序等章节。对于我们的学生而言,基础比较薄弱,数学功底可能不是特别强,加上数据结构与算法内容本身就比较枯燥,所以在新知识的导入时,结合学生身边的生活,通过分析、引导、总结的方式导出要讲解的内容,对于特别难以理解的知识点,可分多次讲解,不求一节课就让学生彻底理解,同时给予相关的参考链接,供学生参考学习。
2.2 多层次教学方式
授课模式采用理论讲授+学习平台(预习、复习、题库训练)+上机实践训练的模式。此课程理论性较强,重点采用启发式教学思路,培养学生的自学能力和组织能力以及创造力。对于数据结构与算法理论原理推导部分,采用老师讲解为主,用伪代码实现该数据结构与算法,具体的代码实现由学生借助学习平台完成。
学习平台是一个在线自学平台,上面的内容由老师按照课程进度事先编辑好,包括课程导入,重难点视频讲解,要点总结以及课程题库等。该课程的大部分作业都在学习平台中完成,学生在学习平台上可以预习、复习以及题库训练。对于学生课下参与度有较高的要求,无论是理論部分的理解与推导还是代码实现部分,都需要学生强化训练。学习平台能够实时批改,并且还有题库推送,针对学生掌握程度推送相关习题强化练习。平台的使用不仅减少老师批改作业的负担,同时平台上的学习数据可以反应学生对知识点的掌握情况。老师可以随时查看每个学生的学习情况、班级的整体学习情况等,根据学习平台的数据,适当调整教学内容,对于错误率较高的题目重点讲解,针对性教学。
本课程专门安排了上机实践训练,结合C++程序设计语言和数据结构与算法两门课程,完成几个实际案例。注重理论讲解和实际编程的紧密结合,提高学生学以致用的能力、养成编程思想和编程技巧。针对每个章节精心设计一个实验案例,学生4人一组团队合作,通过分析问题,分解问题,选择合适的存储结构,编程实现完成实验内容,并通过学习平台的测试用例得到相应的实验分数。
2.3 个人阶段小项目
通过前面几个实践训练课程,学生基本具备分析问题解决问题的能力,在学期末开始个人阶段项目。项目为程序开发综合练习,可以锻炼学生逻辑思维、C++开发能力和数据结构与算法的分析能力。项目题目可以自选或者在平台提供的项目库中选择,例如:通讯录管理系统、音乐播放器、课堂小助手、校园地图导航等等。项目分为三个阶段:系统分析阶段、系统实现阶段和系统评审阶段。本课程只考核系统分析阶段,老师根据每个学生的选题,下达项目任务书,指明项目的基本要求。学生再对项目要求分析之后写出可行性方案,包括各个功能模块的设计思想和解决方法。教师根据可行性方案给出一个项目考核分数。至于项目第二阶段和第三阶段,都放在夏季小学期实行,不属于本门课程考核内容,这里就不作展开。
3 结语
为充分顺应时代发展需求,努力培养应用型人才,必须认真做好计算机专业课程教学改革,尤其是实践教学的改革[3]。无论是在教学内容、教学方法还是教学资源平台等都进行了变革,教学内容注重贴合实际;教学方法重在启发、合作,以学生为主体,教师为主导;教学资源平台也不断完善,培养学生自主学习能力,为教师提供教学辅助,减轻负担。
参考文献:
[1] 王宁. 独立学院基于应用型人才培养的数据结构课程教学改革与实践[J]. 开封教育学院学报, 2016, 36(5):147-148.
[2] 周艳秋. 基于应用型人才培养的数据结构课程教学改革[J]. 科技资讯, 2015, 13(6):171-171.
[3] 方陆明, 唐丽华, 徐爱俊,等. 计算机应用型人才培养[J]. 计算机教育, 2011(9):54-57.