APP下载

以学生为中心的《数据结构》课程教学改革实践

2019-09-10周原梁鹏

高教学刊 2019年5期
关键词:数据结构教学改革

周原 梁鹏

摘  要:基于学生在自主学习中的个体化差异,文章提出在《数据结构》教学中建立以学生为中心的教学模式改革实践。文章首先分析了《数据结构》课程教学中存在的诸多问题,通过对问题的全面分析后,提出了結合任务驱动型的教学方法。最后,通过对成绩结果的分析表明,该课程教学改革措施有力地提升了学生的学习能力,并提高了学生的学习成绩。

关键词:数据结构;教学改革;任务型驱动

中图分类号:G642 文献标志码:A 文章编号:2096-000X(2019)05-0142-03

Abstract: Based on the difference about the self-monitoring learning ability of the students , this paper introduces a teaching reform which centers on students on the course of Data Structure. This paper first describes some problems in the teaching of "Data Structure" and then points out that task-based teaching approach is a way out in improving students' learning as well as increasing their academic performance.

Keywords: data structure; teaching reform; task-based teaching approach

引言

《数据结构》课程是计算机专业的一门核心基础课程,它的前导课程是《C/C++程序设计》和《离散数学》,该课程与其它课程的独立性不同,它有很强的承上启下的作用。《数据结构》没有学好,导致后面《算法分析与设计》等相关课程很难开展。目前国内很多院校的《数据结构》课程教学重点在于程序设计基础方面,缺少个性化教学和主动任务驱动教学,从而导致无法针对学生的学习能力差异进行区别性教学[1]。本文的主要研究内容在于,面向具有不同程序设计基础的学生群体,在存在差异化程序设计能力的前提下,以《数据结构》课程为案例,研究任务驱动型教学方法,结合学科竞赛和在线微课视频,实现传统学习方式的“被动性、依赖性、统一性、虚拟性、认同性”向现代学习方式的“主动性、独立性、独特性、体验性与问题性”转变过程。

一、《数据结构》在教学中主要存在的问题

经过多年教学一线的实践经验发现,学生学习《数据结构》课程主要存在以下问题:

1. 不同专业的学生程序设计思维存在差异。以计算机科学学院三个专业为例:软件工程专业、物联网工程专业、计算机应用专业。这三个专业的学生在程序发散性思维方面存在明显的差异,软件工程专业学生表现出来在编程方面的逻辑思维最强,而在硬件方面的动手能力相对较弱。物联网工程专业学生却在硬件方面动作能力较强,而在编程能力相对较弱。

2. 学生编程实践能力存在差异。由于不同的专业课程设置,软件工程专业在学习完《C语言程序》,还有《程序设计训练》等课程后,编程能力得到强化。而数学师范专业或电子商务专业在学完《数据结构与算法》后就没有相应的后继算法编程课程,明显对编程重视程度不同,由此也导致编程能力的差异非常大。

3. 课程内容比较抽象,每种数据结构都是由抽象数据类型描述,相对比较难以理解。《数据结构与算法》课程中顺序表,栈,队列,树,图等数据结构都是高度抽象的数据描述,难以用现实事物进行案例说明,学生无法将知识点具体化、形象化,从而导致难以理解课程内容。

二、任务驱动型教学方法的实施[2]

经过多年一线教学,清华大学出版社出版的李春葆教授主编的《数据结构教程》非常适合本校学生。本文将以此教材作为基础,来做为实例进行任务驱动教学[3]。

在教学过程中,根据课堂的教学内容来布置相应的上机实践任务,由此来巩固与加强学生对所授知识的理解。但不管布置什么类型的题目,都有学生会觉得该题容易(处于舒适区),同时也有另外一部分同学觉得很难(处于恐慌区),在这些题目的完成过程中,势必影响到这部分同学学习的积极性。如果能创设难度适中的上机实践任务(处于最佳区域学习区),就能驱使学生在能力范围之内通过努力学习解决此任务,由此也能逐步扩大本人的舒适区,意味着知识与能力的增强。通过课程的进度不断创设任务集,使每一个学生都能找到与之匹配的学习区的任务。学生通过解决任务当中的问题,因而产生的愉悦感能进一步激发学生的学习动力[4]。

(一)简单编程到模块化编程的任务

由于学生都是上个学期刚刚学完C语言,基本上还没有模块化编程的思想,所有代码都喜欢写在主函数里面。导致程序结构紊乱,思路不清晰。通过一个实例,如:实现抽象数据类型复数的加减乘除等基本操作。将复数的每一个操作都用一个具体函数来实现。这样通过一个代表性的任务,让学生建立模块化编程的思想。

(二)改错型任务驱动训练

学生在编程过程中一旦调试或编译时遇到错误,这时最容易出现畏难情绪。调试能力得到不到提高,会严重打击到学生学习《数据结构与算法》的热情。由于长年在教学一线,熟悉学生容易出现的问题,精准设置了三类错误程序进行改错。一类是选择学生自己写的作品,选择比较具有代表性的。这种一般含有大量语法错误,格式错误,命名错误等。二类是针对学生常犯的错误,自己进行设置错误,一般通过编译器的提示与对代码的理解可以进行逐步的修改与完善。三类是设置编译没有任何语法错误,但是运行却得不到正确结果的代码。解决此类问题需要建立在学生对代码进行全篇理解的基础上才能通过调试解决问题。经过改错型任务驱动训练后,学生对语法更加熟悉,解决编译与调试问题思路会更加清晰,明白怎么去解决问题,找到问题的卡壳之处。

(三)基础型任务到拓展型任务驱动

在学习过程中,由于存在学生能力的差异,针对性的布置不同任务就显得尤为重要。所以在每个章节的理论教学结束后,都会根据学生掌握情况进行差异化布置任务,并对每名学生的完成情况进行记录,为以后的学习制定合适的任务[5]。

通过设置丰富任务题集,对不同能力的同学进行针对性布置任务,使任务处于学生能力范围内的学习区。学生通过完成任务后产生的成就感能进一步激发他挑战更加难的任务,从而使他的舒适区逐步扩大。

(四)竞赛型题目任务驱动

为了提高学生综合运用所学知识来解决实际问题的能力,收集了一些海外高校竞赛题。例如管道通讯问题就可以利用数据结构中最小生成树普里姆(Prim)算法得到求解。这些问题的设置拓宽了学生的视野,也提高了学生查阅资料,解决实际问题的能力。

三、实施任务驱动型教方法的保障与激励措施

《数据结构与算法》课程中知识点多,而且量非常大。仅靠课堂上的讲授时间不足以保证学生能完全弄懂弄明白,而对绝大部分学生来说,利用课后的时间通过自学来掌握教材上的知识点,往往要付出巨大的努力。为了让学生听得懂,掌握得住,用得上。通过将《数据结构与算法》上的知识点分三类做成教学小视频。分别是:知识点类,练习类,代码类。视频的好处是可以反复观看,相当于老师在反复讲同一个知识点。这样为学生掌握基础知识点提供了非常有效的保障。

另外,对于学生提交的纸质作业,邮件提交的代码作业,上机实践课提交实践作业。每次都会根据完成质量分等级进行详细记录,分批对部分同学作业进行详细点评,指出其写得好的地方和不足之处,以及努力的方向,最后再写上鼓励和期望的话语。让学生感觉到老师对他的关心与期盼。并且在课堂上提出表扬,既为其他学生树立了榜样,同时是对该生付出的努力进行肯定。对于完成质量不达标的同学就作业内容进行不点名批评,既保护了隐私照顾了自尊同时又对该生进行了鞭策。经过以上措施的实施,能非常明显的感觉到学生在听课的互动投入程度,作业完成质量上,实践作品的用心程度,都有很大的进步。

四、实施效果分析

教改模式实施后,学生对作业的投入程序得到显著提升,各班级学生完成作业的合格率优秀率也得到了提高,例如:计算机应用专业优秀率由14级的15%提高到16级的23%。缺交作业的现象降低了不少,例如:计算机应用专业的缺交作业或都不合格情况由14级的25%下降到16级的10%。各班级情况统计具体如图1所示。

教改模式实施后,各个专业的学生对知识点的掌握更加扎实,在题目难易程序几乎不变的基础上,不同专业各级修完该课程后,期末考试成绩得到了提升。例如:计算机应用专业14级的期末考试平均分为78.23分,到16级时期末考试平均分提高到了83.33分。各班级成绩具体如图2所示。

教改模式实施后,学生的学习方法得到的丰富,学习主观能动性得到提高,学习能力也得到了加強。这样为后继专业课程的学习打下更加扎实的基础,使教师的教学更加容易开展。学生的能力与自信心增加后,参加各类比赛的获奖率大幅提升,如2016年“蓝桥杯”省赛一等奖获奖人数为5人到2018年一等奖获奖人数增加到12人。国赛也有4人获得了二等奖。报考软件工程师的比例由2016年的5.4%增加到2017年16.2%。

五、结束语

通过以学生为中心的《数据结构》课程教学的探索和实践过程中,深刻感受到,老师不仅仅只是教授知识,而且还要在教授知识的方法上,手段上也要与时俱进,同时还要想办法提供各种教学资源,同时激发学生学习动力,培养学生动手能力,使得以后的《数据结构》课程的教学效果越来越好。

参考文献:

[1]郝宗波.数据结构课程教学改革探讨[J].计算机教育,2011,02.

[2]黄博军.任务驱动教学法在“C语言程序设计”课程中的应用[J].襄樊职业技术学院学报,2007,03.

[3]李春葆.数据结构教程(第5版)[M].清华大学出版社,2017,05.

[4]李华群,曾惠芳.提升独立学院“算法与数据结构”课程教学质量的探讨[J].教育与职业,2008,12.

[5]揭安全,李云清,杨庆红,等.数据结构实践教学体系的设计与实施[J].计算机教育,2010,09.

猜你喜欢

数据结构教学改革
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
中职学校“生本课堂”的调查研究与实践
高校三维动画课程教学方法研究
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究
微课时代高等数学教学改革的实践与探索
数据结构与算法课程设计教学模式的探讨
高效学习数据结构