数据结构实践教学体系与教学设计研究
2017-09-27李东晖申聪戴小鹏王奕
李东晖 申聪 戴小鹏 王奕
【摘要】数据结构是计算机科学与技术专业中的一门核心课程,知识点多,课时少,并且难以理解,本文从数据结构的实践性课程现状出发,结合数据结构知识点的脉络分析,提出实践性教学在课程实验、课程设计和毕业设计的教学模式,构建了数据结构实践教学的教学设计。为数据结构课程的实践性教学体系与教学设计提供了参考方向。
【关键词】数据结构 实践教学 教学设计
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2017)33-0034-03
一、引言
随着教学体系的改革[1],数据结构的教育教学也备受计算机专业的相关教育者关注,数据结构是计算机专业的一门必修课程,学生对于数据结构课程知识的掌握程度直接关系到专业知识的整体学习进度,而数据结构的课程具有难度大,知识点多,实践能力要求高等特点,在教学过程中产生了很多的问题。其中,实践课程教学体系的建设尤为突出,目前数据结构实践教学体系存在诸多问题,学生不能够利用好实践课程,导致实践课程没有发挥其应有的价值,教师也无法给予实践课程准确的定位,实践课程的利用率远不及理论课程,针对这种现状,本文从实践性教学的现状出发,到实践性教学培养模式,提出了一套完整的方案,为实践性教学提供了参考依据。
二、数据结构实践性教学
1.实践性教学的现状分析
数据结构的教育教学本身存在教学难度大的特点[2],其实践教学体系的难度更为突出,其中主要存在的问题有如下几点:
(1)课程知识点多,知识点难度大,教师在规定的时间难以把一个复杂的问题讲解透彻,学生难跟上老师的上课进度,导致课堂效率不高,知识点掌握不牢,实践课程没法开展。
(2)学生自身的个体差异大,因材施教的策略只能适用于小范围的学生群体,对于整个计算机及其相关专业学生群体因材施教比较困难,教师无法根据每一个人的掌握程度来展开教学,因此,这种情况会牺牲少部分学生的上课进度,制约了实践教学计划的开展。
(3)学生普遍存在程序设计类课程掌握不好的问题,学生学习C语言和Windows程序设计的过程中,对于程序设计类的课程容易产生畏惧和抵触的情绪,学习数据结构的设计类的问题时,往往有逃避的心态,不会积极主动的解决数据结构课程设计中遇到的问题。
(4)学生对实验课不够重视,大部分学生的观念还停留在只要考试能够考好就行,其他的都不重要,这种片面性的学习观念在大学的学习过程中严重的制约了学生的动手能力的强化,会导致学生只为读书而读书,没有动手能力,走向社会很难适应。
(5)考核机制不够完善,大部分学校的数据结构的课程设计仅仅通过提交相应项目的计划书和源代码作为评分标准,学生容易钻考核办法的漏洞,用走捷径的办法最后也获得了高分,考核方式的不完善严重制约学生实践性课程的能力的提高。
2.数据结构课程知识点脉络分析
数据结构是计算机专业的一门必修课程,知识点多,难度大是其主要特点[3]。课内时间教学一般作为课堂教学的辅助手段,为加强学生对于知识点的掌握,设计能力的提高以及创新思维的培养,因此,必须要搞清楚数据结构课程知识点的脉络,大部分数据结构的教材上主要把数据结构的知识点分为四大快内容:线性结构,非线性结构,查找算法,排序算法。
线性结构主要是针对线性表、栈、队列、串、数组和广义表等相关知识的学习,其中线性表是贯穿整个线性结构的基础,其具体的关系如下:
由于课时的限制,教学计划中对于线性结构的数组和广义表的实践性课程没有安排,但是线性表的实践性课程有课时保障,这是线性表是整个线性结构基础的原因。
非线性结构主要是树和图的学习,书是图的特殊情况,图是树扩展的形式,非线性的结构的知识脉络图如下:
非线性结构中的树和图都是数据结构中的重点,树当中的内容主要有:二叉树,森林,哈夫曼树等,图的内容有图的遍历、存储和应用,其中的每一个知识点都有对应的实践课程。
查找也称为检索、查询。在日常生活中,经常会有查询的情况出现,在计算机中显得尤为突出,其中,数据结构对于查找算法进行了详细的讲解和分析,其主要查找算法如下:
查找的算法比较多,在实际运用的过程中,往往根据实际需要采取最优的查找算法,实践教学中,大部分教学计划中也只会对部分查找算法要求熟练掌握,部分算法也只做了解。
排序算法在计算机语言中非常常见,如何进行高效的排序,是計算机中研究的重要问题,排序算法主要包括直接插入排序,冒泡排序,选择排序,希尔排序,快速排序,堆排序,归并排序和基数排序等算法。排序算法部分能力的提高很大程度依赖于学生对于线性表的掌握程度,排序算法的熟练掌握是建立在线性表的熟练掌握的基础之上,因此,想要学号排序算法,必须要有线性表的基础。
3.实践性教学的教学模式
(1)课程实验
1)验证性实验
验证性实验是指对研究对象有一定了解,并形成一定认识或提出了某种假说,为验证这种认识或假说是否正确而进行的一种实验[4]。在数据结构的实践性教学过程中,验证性教学占据比较大的比重,学生的学习初期,受专业知识限制不具备较强的实验能力,基于这种情况,数据结构中大部分实验为验证性实验,如约瑟夫环的问题,汉诺塔问题等。
2)设计性实验
设计性实验是采用科学的逻辑思维配合实验方法和技术,对拟定研究的目的(或问题)进行的一种有明确目的的探索性研究[5]。数据结构中的设计性实验对于学生能力的培养起着重要作用,不仅仅是对于理论知识实践化的能力的建立,更重要的是学生知识的综合运用能力的建立和培养。数据结构的实践性课程中有很多设计性实验,比如构造哈夫曼编码,拓扑排序等是常见的设计性实验。
3)综合性实验
综合性实验,就是在实验过程中,要使用到多种实验技术,已完成最终的实验目的[6]。综合性实验对于学生的要求较高,需要在平时的验证性实验和设计性实验的过程中学会融会贯通,得到适用于学生的知识体系,在达到这种要求之后,对于综合性实验,学生才能按时按质完成任务。在数据结构的实践性教学的过程中常见的综合性实验主要有:用哈夫曼码实现文件压缩,编译器的设计与实现等。
(2)课程设计
课程设计是完成一门课程以后,对该课程的知识综合检测的一个常用方法,在数据结构中,课程设计是教学大纲当中的必修环节,数据结构的课程设计属于综合性实验的范畴,学生需要对于数据结构的理论知识达到教学要求以后,才能完成相应的课程设计,课程设计是实践教学中重要的部分,为锻炼学生的实践操作能力具有强大的生命力。
(3)毕业设计
毕业设计是教学过程的最后阶段采用的一种总结性的实践教学环节[7]。通过毕业设计,学生可以综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习。数据结构的相关知识在毕业设计中必不可少,是和其他专业知识的有机结合才能达到教学大纲中需要的毕业设计的要求,毕业设计已经不仅停留在对于数据结构这一门课程的熟练掌握的程度之上,更还要同其他课程知识结合,具有更高的要求。
3、数据结构实践教学的教学设计
1.科学设计实验学时
大部分高校存在对于实验课程课时安排不够的问题,对于数据结构这一门课程,实验课程应该要达到40课时,而大部分高校仅安排30课时,甚至20课时,实验学时的严重缺失在一定程度上导致了数据结构这门课程学生掌握程度不够,诸多问题也会随之显现。同时,实验学时对于每一部分的知识点的分配也不尽合理,笔者建议,数据结构的各知识点的学时分配应该如下表所示。
2.实验题目分层次
实验的题目分层次是数据结构的实践教学的教学设计中的重要组成部分[8],学生的自身的能力和对不同的知识的掌握程度不一样,不能够对于所有的学生是同一套教学模式,同理,不能够在实践教学的过程中对于所有的同学采用同一个题目,因此,实验题目应该根据学生的能力分层次,不同的学生对于实验題目的需求也不一定相同,实验题目分层次对于学生的整体培养和因材施教是具有促进作用的。
3.实验报告规范化
实验报告的规范化一方面在对学生的对于阶段性学习成果的知识点总结,同样可以培养学生文档的整理能力和和规范化的思维,数据结构传达给学生的不只是停留在书本上的知识点的掌握,更是一种思维模式的培养,在学生完成本科学习之后,进行下一阶段的学习或者直接走向工作岗位,思维模式的培养往往比专业知识更加重要,在数据结构这门课程中,就可以通过实验报告规范化来做初步的锻炼。
四、总结
数据结构实践教学体系与教学设计是贯穿于整个数据结构的教学过程中[9],实践性教学的研究会随着计算机技术的发展和数据结构课程的重视达到最佳状态,本文从这种角度,分析了数据结构的实践性教学的教学现状,总结了实践性教学的教学模式,最后提出数据结构实践性教学的教学设计,无论从课程体系的改革层面还是从学生的培养模式层面来说,都具有非常重要的指导意义。
参考文献:
[1]李冬梅, 孟伟. “数据结构”课程的教学改革与教材建设[J]. 计算机教育, 2012(14):38-41.
[2]董丽薇.“数据结构”课程教学方法的改进[J]. 沈阳师范大学学报(自然科学版), 2012, 30(2):307-309.
[3]李东晖,戴小鹏,陈垦.概念图在数据结构教学中的应用研究[J]. 湖南农业大学学报:社会科学版, 2008(2):68-69.
[4] Sirotová M, Fr?dková E. Supervised Practice Teaching in Higher Education of Future Teachers[J]. International Journal on Language Literature & Culture in Education, 2016, 3(2).
[5]刘越畅, 钟秀玉, 钟治初,等. 数据结构课程工程化实验教学的探索和实践[J]. 实验室研究与探索, 2012, v.31;No.198(8):350-352.
[6]沈华. 数据结构课内实践教学方案[J]. 实验室研究与探索, 2013(10):412-416.
[7] Liu Y X, Zhang N Z. The Construction and Practice on Practical Teaching System of Chemical Engineering Specialty in Higher Education[J]. Advanced Materials Research, 2014, 1033-1034(91):1395-1398.
[8]张铭, 耿国华, 陈卫卫,等. 数据结构与算法课程教学实施方案[J]. 中国大学教学, 2011(3):56-60.
[9]刘晓静, 王晓英, 张玉安,等. 以创新人才培养为目标的数据结构实验教学改革[J]. 实验技术与管理, 2014, 31(11):184-187.