APP下载

“数据结构”课程的课内实验教学探索与实践

2020-06-04张兆维王建华陶曦鸣

计算机时代 2020年5期
关键词:教学探索数据结构创新

张兆维 王建华 陶曦鸣

摘  要: 在“数据结构”课程中,课内实验存在两个问题:一是与课堂理论知识相脱节,起不到“理论联系实际”的作用;二是偏重于代码编写,无法体现课程的精髓。为此,文章探索一种“立足理论、弱化代码、鼓励创新”的方法,把课堂理论知识融汇到实验中,将学生从繁琐的代码编写中解脱出来。对学生的调研结果表明,该方法在课内实验教学上取得了效果。

关键词: 数据结构; 课内实验; 教学探索; 代码编写; 创新

Abstract: In the "Data Structure" course, the in-class experiments exist two problems: one is that it is disconnected from theoretical knowledge, and cannot play the role of "combining theory with practice"; the other is that it emphasizes the code writing, but cannot reflects the essence of course. Therefore, this paper explores a method of "standing on theory, decreasing code, and encouraging innovation", which integrates the theoretical knowledge of the classroom into the experiments and frees the students from the tedious code writing. The results of the investigation on students show that the method is effective in the in class experiment teaching.

Key words: data structure; in-class experiment; teaching exploration; code writing; innovation

0 引言

課内实验教学作为“数据结构”课程[1]教学的重要组成部分,对学生掌握理论知识,灵活运用理论知识解决实际问题的能力具有举足轻重的作用,因此课内实验教学引起了广泛关注。课内实验并没有得到足够的重视,存在着学生敷衍了事、教师不知所措的情况,没有显示出其应有的教学效果。

“数据结构”课程的课内实验教学方法的实施,众多专家和学者对此进行了广泛的反思和讨论[2-6]。沈华[2]分析了课内实验教学的特点,提出了找出关键知识点并利用有限的课内实践,对这些关键知识点进行强化,具体对实验题目、实验内容、考核方式等进行了设计。华泽[3]等探讨了探索创新型实验的设计原则和思路,充分结合科学研究、实验教学与科技开发三个方面,将教师的科研活动融入实验,以促进学生的创新意识。吕亚荣[4]和龚红仿[5]等都是在分析课程实验教学现状的基础上,对实验教学内容、实验教学方法、实验考核方法三个方面进行了改革,激发学生的学习兴趣。针对MOOCs背景下的“数据结构”实验教学改革,于庆梅[6]等 提出一种情境创设、微视频与PTA开放平台相结合的实践教学模式,培养学生自主实验能力,是实验教学的一种有益探索。

因此,如何设计课内实验教学,使之与课堂理论知识紧密地结合起来以体现“数据结构”课程的精髓,就成为了教学中值得思考的问题。

1 面临的问题

在“数据结构”课程中,课内实验教学是让学生对课堂理论知识理解和应用,对学生掌握理论知识具有十分重要的作用。但是,在实际教学过程中,课内实验的教学效果却远远不够,学生也有敷衍了事的心态,甚至存在完全抄袭现象。

当前,“数据结构”课程的课内实验教学具体存在以下两个问题:

⑴ 课内实验与理论知识相偏离,成了相互独立的两个部分。一方面,“数据结构”课程的很多考试都是以理论知识为主,一般不考虑其具体实现代码。很多学生认为课内实验与理论知识无关,也与期末考试无关,甚至与未来考研无关,所以他们的学习积极性不高,也不重视课内实验。另一方面,有些学生的理论学习不扎实,不具备“理论联系实际”的能力,从而在课内实验中无所适从,应付了事。

⑵ 课内实验的内容设计不合理。课内实验的精髓在于数据结构和算法在实际问题中的灵活应用,体现“数据结构”课程的优势。但是,完成一个完整的课内实验,学生既要考虑数据结构理论,又要考虑程序设计。有些时候程序设计反而会喧宾夺主,占据学生大部分的时间,最终使学生彻底沦为代码编码和语法纠错。甚至实验成功与否往往不在于是否掌握核心理论知识,而是在具体的代码编码过程中出错,学生需花费大量的时间来修改代码,从而使得课内实验与程序设计类课程无异,失去了课内实验的意义。

由于以上两个问题,“数据结构”课程的课内实验教学效果不好。有的学校已经在新的教学大纲中将课内实验删除。但是,正所谓“实践出真知”,课内实验对学生理解和掌握课堂理论知识具有不可替代的作用,值得讨论以改进其教学方法。

2 课内实验教学探索

在考虑课内实验教学面临的问题基础上,本文提出一种“立足理论、弱化代码、鼓励创新”的教学方法,一方面将课内实验与理论知识结合起来,另一方面将学生从繁琐的代码编写中解放出来,以鼓励学生集中精力突破关键问题。

2.1 立足理论

“工欲善其事必先利其器”,课内实验完成质量的好坏与所用到的工具(数据结构及其算法)有直接的关系。因此,掌握数据结构与算法的基本理论知识是开展课内实验教学的前提,对课内实验完成的质量具有决定性作用。

从上述代码中可以看出,加粗显示的无向图和有向图的邻接矩阵特点是不相同,即,无向图的邻接矩阵是对称矩阵而有向图的邻接矩阵不是对称矩阵。在课内实验中,学生如果没有掌握无向图的邻接矩阵特点,就会在虚线框内的参数设置中出错。这也说明,课内实验必须立足于理论,否则就是镜中花,水中月。

2.2 弱化代码

“射人先射马,擒贼先擒王”,课内实验要把握住重点,不能舍本逐末。课内实验的精髓就在于利用数据结构的理论知识来解决实际问题,而不能让学生淹没在具体的代码编码中。弱化代码,就是公开部分次要代码而将核心代码留给学生,将学生从程序语法中解脱出来,从而集中精力于数据结构与算法。

上述代码中,加粗显示的代码为核心代码,需要学生独立完成,其余代码为次要代码,可以事先给定。在课内实验中,学生可以集中精力去研究数据结构与算法来完成虚线内代码,而不用花费大量的精力去修改次要代码的语法。

2.3 鼓励创新

“横看成岭侧成峰,远近高低各不同”,每一个人对同一个问题的认识不同,看法不同,故采取的解决方案也可能不同。针对同一问题,学生会考虑数据结构中的各种方法来解决问题。在这一过程中,学生就有可能产生创新性的想法,从而加深对“数据结构”课程的理解和掌握,做到活学活用。

以 “二叉树基本性质-树的高度”实验为例,如下所示。

求:树的高度

在“数据结构”课程中,树的高度都是以递归的形式来求解,而有些同学能够想到利用栈来求解,这就属于创新性想法。

解:根据树的定义,一棵树的高度等于表达式b中括号的最大重数。括号的重数又可以很容易地通过栈来得到:左括号进栈、右括号出栈,记录栈中括号的个数。因此,栈中括号的最大个数就是树的高度。

数据结构课内实验鼓励创新,就能够启发学生从不同角度来看待问题,并得到不同的见解,这对培养学生创造性思维具有重要的作用。

3 教学效果

为分析本文所提方法的实际教学效果,笔者对学生的知识掌握水平和学习状况等进行了面谈和统计,其中,被调查的对象为约300名普通二本独立学院大二学生。

图1统计了学生的实验成绩(转换为百分制),并依次分为了五档,来评估学生课内实验的完成情况。从图中可以看出,与传统教学方法相比,本文方法能够降低低分段人数并提高高分段人数。比如,在传统方法下,学生的成绩大部分集中在60-80分之间(占比达76%),这也说明学生在课内实验中的表现差不多,大部分采取“不求有功,但求无过”的态度。课内实验采用本文教学方法后,学生的高分段成绩有了大幅度的提升,80-90分之间的比例达到37%。这说明,本文方法能够激发优秀学生的学习潜力,促进学生的学习兴趣。

我们调查了学生在课内实验的学习情况,包括学习兴趣、创新性和平均成绩三个方面,如图2所示。相比于传统教学方法,本文方法有明显的进步。比如,学生的学习兴趣由48%上升到72%,学生的创新性从3%上升到18%,所有学生的平均成绩由72分上升到84分。特别是学生有时间也有兴趣从不同角度去思考问题,能够产生一些创新性想法。

4 结束语

为了提高“数据结构”课程的课内实验效果,本文提出一种“立足理论、弱化代码、鼓励创新”的教学方法。该方法以理论知识为基础,将学生从繁琐的代码编写中解放出来,鼓励学生提出创新性想法,能够显著地提高學生的学习成效,提高了课内实验的教学效果。对于如何量化核心代码的范围和程度、采取何种具体措施来激发学生创新思维,仍然值得我们进一步思考。

参考文献(References):

[1] 严蔚敏,吴伟民.数据结构(第二版)[M].清华大学出版社,2008.

[2] 沈华.数据结构课内实践教学方案[J].实验室研究与探索,2013.10:412-416

[3] 华泽,陆悠,班建民.数据结构课程的实验设计研究[J].计算机时代,2009.10:70-71

[4] 吕亚荣,缪相林.数据结构与算法实验教学的改革与探索[J].教育教学论坛,2014.18:28-29

[5] 龚红仿,杨宏杰,程思蔚.数据结构实验课教学改革与实践[J].计算机教育,2007.12:55-57

[6] 于庆梅,毛镠.MOOCs背景下地方院校“数据结构”实践教学模式[J].实验技术与管理,2019.5:190-194

猜你喜欢

教学探索数据结构创新
基于素质教育视角下的民族高校逻辑学教学探索与实践
高中数学课堂中德育溶合的探索
高分子材料与工程专业综合实验的教学探索
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨