教育目标分类在《数据结构与算法》案例教学中的应用

2020-09-03 11:52:20向燕飞
科技视界 2020年25期
关键词:数据结构案例目标

向燕飞

0 引言

高校的计算机专业为本科生都开设了数据结构课程,它是计算机学科知识结构的核心和技术体系的基石,在研究生考试中也是必考科目。随着科学技术的飞速发展,数据结构的基础性地位不仅没有动摇,反而因近年来算法工程师的高薪形势,而得到了业内空前的重视。计算机在处理数据之前,先要处理的是数据的组织和存储。而数据结构正是计算机存储、组织数据的方式。

按传统的教学模式,在交流学习算法时,很多的学生会反映数据结构晦涩难懂,广东东软学院近几年在专业核心课程和专业基础课程中大力推广“翻转课堂”和“线上线下混合”教学改革,以行为主义和建构主义为指导理论,关注学生的学习行为和学习过程,注重学生的知识获取、建构与生成,《数据结构与算法》课程近几年按照省级一流本科课程的标准来重点建设。在建设过程中运用了多种教育理念和教学方法,布鲁姆教育目标分类法和案例教学是其中之一。

1 教育目标分类运用的背景和思路

布鲁姆教育目标分类法是一种教育的分类方法[1],根据教育目标从低级到高级可以分为6个水平:知道、领会、应用、分析、综合、评价。该教育方法指出,问题有简单和复杂,按照学习目标分层次提出问题,6 种类型的问题中,前三类是属于初级层次的认知问题,它一般有直接的、明确的、无歧义的答案,而后三类问题属于高级认知问题,通常没有唯一的正确答案,从不同的角度有不同的回答。

在这一教育理论指导下,教师在教学设计中,提倡课堂教学不能仅仅局限于初级认知的问题,在适当的时机,高级认知问题更能够激发学生的思维,从而培养学生的思维能力、观念和自我评价体系[2]。按学习目标的要求,遵循循序渐进的学习规律,分层次设计教学内容,同时在设计案例上,从简单逐渐到复杂,设计认知性、理解性和应用性等任务层次递进。

2 基于“教育目标分类法”的教学案例设计

基于“教育目标分类法”的理念,结合数据结构与算法课程的特点,对课程框架进行重组,梳理知识点,并为每一个知识点进行案例设计,这里以《数据的逻辑结构与存储结构》这一知识点为例进行应用说明。

整体的教学策略,通过“问题引入,案例分析,任务驱动”的教学流程来组织整堂课。

首先将目标分解为以下三层,并为各层设计相应的教学活动以及评估的标准,如表1 所示。

2.1 引入问题,创设学习情境,激发兴趣

以“如何在书架上摆放图书”的问题为例:给了你一堆书架,然后又有一堆书进来,你要怎么把它们放到书架上去呢?就如计算机处理数据,给了一堆数据,然后又给了一些存储空间,你要怎么把这些数据存起来呢?通过这样引入计算机处理数据要考虑的两方面,一是数据间的逻辑关系,二是存放的存储结构。在学生各种经验分析之后,教师给出“其实这个问题是不科学的”。为什么呢?因为不确定给的书架是长什么样的。当考虑一个数据怎么组织的时候,其实跟这个数据的规模有关系,也跟放好之后要做什么事情有关,也就是说要考虑对它们的操作。由此引入了知识点的学习,什么是数据结构的逻辑结构和逻辑结构。

表1 教学目标分解和掌握程度评估

2.2 分析案例、构建知识

设计案例,图书编号管理问题(一对一的线性关系),人机对奕中用到的算法(一对多的非线性关系)以及地图着色处理(多对多的非线性关系),让学生在分析过程中理解线性和非线性的逻辑关系。在此案例上,进一步分析“大规模的书,怎么存放?”给出三个方案:

方案1——随便放,看书架哪里有空位就放哪;

方案2——按照之前的编好的号在书架上一本挨一本顺序来放;

方案3——把书架划分成几块区域,每块区域指定摆放某种类别的图书;在每种类别内,按照书名的拼音字母顺序排放。

分析3 个方案的摆放后,查找一本《算法之美》的书,和新增了一批书,需要摆放上去操作的优缺点。第一种方案可能造成查找效率极低!第二种方案造成插入新书很困难!第二种方案可能造成空间的浪费!通过3 个方案的对比,学生能深刻地理解解存储数据的方式影响着对数据的处理和操作,顺其自然地进入到存储结构的学习中。

设计学生活动:

活动1——学生分配座位的游戏,一种是按学号挨个坐,还一种是随意坐,但是每个学生记住下一个学生坐哪里。对于查找一个学生和增加、删除一个学生的操作,让学生分析哪种座位分配方案更便捷。

活动2——例举在生活中的例子,体现的是顺序存储和链式存储;

设计意图在于提高学生积极性,把抽象的理论对比模拟成真实的场景,加深学生理解两种存储结构各有什么优缺点。为之后的线性表在不同存储结构下基本操作的理解和代码实现都打下了基础。

2.3 学生实践,解决问题

在这一环节中,紧扣知识点,设计实践案例,由教师引导,学生为主体完成。

案例描述:某电信部门想开发一个查询企业电话的程序,要求对于给出的一个企业名称,若该企业已注册,则找到其号码,否则指出没有注册。

任务要求:考虑各企业的服务电话直接采用线性还是非线性的逻辑关系?采用顺序还是链式存储?写出详细的算法步骤,画出流程图,完成电话号码查询的编程。

学生完成案例的过程中,讨论分析,给出具体求解步骤,方法不唯一,以下范例:

步骤1.首先构造一张信息表。考虑表中每条记录存放的数据项有哪些?

步骤2.将电话号码表存储到计算机中,可选择二维数组来存储;

步骤3.根据问题需求,确定查找算法,即根据名称,显示号码;步骤4.确定存储结构及算法的实现方法,写出代码。

这样的设计意图在于培养学生将数据结构作为一种思维工具解决处理现实问题的能力。

2.4 应用拓展,交流提升

在这个一环中,设计对应的案例,可以是讨论型的,也可以是编程求解型的。

讨论版块:对中等规模、大规模的图书摆放,你有什么更好的建议,可否结合不同的存储方式来取长补短?

提出这个问题,实际上是想让学生思考,在考虑大规模数据存储的时候会遇到什么问题,以及如何根据功能(也就是关联的算法,最常见的就是插入、查找、删除)需要设计存储方式。

2.5 总结、测评训练和课外综合项目

课堂总结环节先由学生做小结,这样有利于提高学生的归纳总结能力,教师再总结,提炼本次课的重难点,在学习过程中应注意的地方。测评训练通过PTA(程序设计实验辅助教学平台)来针对不同的目标检测学生的掌握程度,题目分为初级、中级和高级。有对应的输出样例,能以得到的信息为准则作出判断,完成学习评价。

设计课外综合项目:项目1:晒一下PrintN 在你的机器上运行的结果?项目2:Maximum Subsequence Sum(2004 年浙江大学计算机专业考研复试真题)最大子列和问题,设计不同算法,分析效率。通过学生组队方式,以“项目分析―项目设计―成果汇报―总结评价”模式为主线,小组依托教学资源,自行查阅资料,成员间互相帮助,教师参与小组研讨,分析设计与实现方案。

3 总结

《数据结构与算法》是理论与实践并重的计算机专业的核心课程,该课程知识体系难度较大,通过运用教学目标分类法来对课程内容进行重构和案例设计,基于任务驱动式的“线上线下混合”教学模式改革[3],更注重对能力的培养。从实践来看,近几年的课程大大改善以往的“难教和难学”的现象,学生懂了算法思想,碰到实际问题却不知道如何着手编程的普遍现象得到了很大改善,PTA 平台统计的学生刷题量和通过率每年也在提高。每次测试和考试都具备自动数据分析功能,作为检验教学的有效证明。

猜你喜欢
数据结构案例目标
案例4 奔跑吧,少年!
少先队活动(2021年2期)2021-03-29 05:40:48
随机变量分布及统计案例拔高卷
发生在你我身边的那些治超案例
中国公路(2017年7期)2017-07-24 13:56:38
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
中国市场(2016年45期)2016-05-17 05:15:48
我们的目标
一个模拟案例引发的多重思考
中国卫生(2015年4期)2015-11-08 11:16:06
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨
河南科技(2014年5期)2014-02-27 14:08:57
新目标七年级(下)Unit 3练习(一)