吴敏宁 张永恒 刘红霞 杨斐
摘要:结合数据结构教学的实际需求,分析BOPPPS模式中的六个阶段,提出采用BOPPPS教学模式进行数据结构课程教学设计,以数据结构课程中插入类排序这一知识点为例,探讨该模型中每一个阶段的具体设计方案。
关键词:数据结构;教学模式;BOPPPS;插入类排序
0 引言
IEEE-CS/ACM的CS教程已将数据结构课程列为核心课程之首,说明数据结构在信息学科中具有重要地位。数据结构是计算机类专业学科基础课程,是计算机软件理论与技术课程的重要基础,一般开设在大学二年级,是对所学软件技术进行总结提高,为后继专业课程提供基础,同时为考研做准备。课程主要包括数据与数据之间的关系,数据在计算机中的表示、组织、处理和对应数据结构的算法设计与算法性能分析等。通过数据结构课程的学习,可以培养学生的计算机程序设计能力、计算思维能力和分析问题的能力。
数据结构课程教学理论与实践比例一般小于2:1,该课程知识点多、理论性强、内容抽象,要求学生具有一定的逻辑思维和分析问题能力、具备较好的C语言编程功底。在实际教学中,学生存在课堂参与度不够、学习积极性差、动手能力不强、自我学习能力不足等问题,往往整个课程结束后,部分学生都未明白为什么要学该课程?学习该课程有什么用?用到什么地方?
目前该课程教学过程中虽然运用了启发式、对比式、案例式等多种教学方法,但由于缺乏一套完备的理论体系支撑,教学效果并不理想。若在教学过程中将知识点分解为教学目标、教学行为、学习活动、教学评测四个阶段,课堂教学效果会显著提升,而这些正是BOPPPS教学模式的核心内容。在数据结构课程教学过程中合理应用BOPPPS教学模式,是提高教学效果、优化教学过程的有效途径。
1 BOPPPS教学模式概述
BOPPPS教学模式是近年来加拿大多所知名院校采取的一种教学模型,该模式突出强调教学反思和教学互动环节,将教学内容分割为多个小单元,每个教学小单元内都有起承转合,每个单元课堂亦有起承转合。BOPPPS将每一个教学单元划分为六个阶段:导入(bridge-in)、学习目标(objective)、前测(pre-assessment)、参与式学习(participatory learning)、后测(post-assessment)和总结(summary)。
(1)导入是对教学内容的简介,引起学生的学习兴趣。
(2)学习目标是明确学习所要达到的目标,对教学目标进行具体明确的表述。
(3)前测是在具体内容学习之前检验学生对所学内容的认知程度,进而调整教学内容的难易程度,可通过提问、测验、讨论等多种方式进行。
(4)参与式学习强调鼓励学生参与到学习过程中,使学生成为学习的主导者。参与学习交互分为学习者之间的交互和教师与学生之间的交互。
(5)后测可根据不同情况采取习题测试、综合实践、小论文等不同方式。
(6)总结是对教学内容进行总结,如授课内容总结、课堂反馈、学习评价等。
BOPPPS教学模式在传统教学模式的基础上规范课堂教学流程,指出课堂教学的重要环节,突出了参与式学习的重要性。
2 BOPPPS教学模式的应用
数据结构课程一般包括三大部分:数据结构基本概念、基本数据结构和基本技术应用。基本技术章节主要包括查找和排序,排序部分包括多种排序方法。学生在学习过程中容易混淆知识点,学习兴趣低,课堂气氛不活跃,因此整体教学效果不理想。以BOPPPS模式组织教学,生动有趣地引入教学内容,明确学习目标,活跃互动环节,合理设计前后测试,有条理地梳理总结,这样可以充分调动学生的学习积极性。下面以“插入类排序”一节的实践教学为例,阐述BOPPPS模式在教学过程中的具体步骤。
2.1 导入
导人是架设在师生间的第一座桥梁,好的开头是成功的一半,授课过程的导入阶段直接影响整堂课教学的氛围,好的导入可以激发学生的学习兴趣,启发和引导学生的思维,促进教学任务的顺利完成。常用的导人方法有提问启示法、案例分析法、演示实验法、问题设疑法等。
鉴于排序在日常应用中的普遍性,导入法可以应用提问启示法。第一个问题是学习委员收数据结构作业时,要求按照学号从小到大的方式排序,大家会用什么方法进行排序。第二个问题是大家玩扑克牌时是怎样抓牌整牌的。学生讨论第一个问题时,会给出各种排序方法,但大多学生不能将排序方法和实际操作对号入座;讨论第二个问题时,通过抓牌整牌过程的描述可顺其自然地引入直接插入排序的基本概念。引入基本概念后,让学生举插入排序实例,启发学生思维,激发学生学习兴趣。
通过学生所举实例,了解学生对排序的理解程度,对教学内容的难易、详略及时进行调整。
2.2 学习目标
BOPPPS模式强调教学目标要具体明确,教学目标分为学校培养目标、课程目标和课堂目标,这里的学习目标指课堂目标。教学目标在课堂教学中具有导向功能,指引教学过程和指导教学结果的测量与评价。传统教学目标一般使用“了解、理解、掌握”等含义泛泛之词,目标表示不明确,可操作性不强。结合BOPPPS模式思想,将教学目标从四个方面进行描述,①教学对象为计算机相关专业的大二学生;②教学条件为已完成计算机导论、程序设计语言以及数据结构课程的算法性能分析与基本的数据结构的学习;③教学内容包括简单直接插入排序、折半插入排序和希尔排序的算法思想、算法描述、算法分析、算法优化、算法比较;④教学要求掌握三种基本插入类排序的算法思想、算法描述、算法性能,分析出算法最好最坏情况。
2.3 前测
对学生即将学习的内容进行学情评价,检验学生对所学内容的认知程度,了解学生的学习兴趣与能力,然后结合教学目标,根据前测结果调整内容的难易度和进度,为有效而合理的教学设计提供依据。可在课前或课堂中进行前测,具体方法有课堂提问、角色扮演、作业、测试等。
针对插入类排序,给出几组具体数据,如序列{20,18,8722,1,19,77,5,10}、{76,53,44,0,29,44,29,1,89}等,请学生按照抓扑克牌的方式进行排序,给出排序过程,然后增加数据元素个数,让学生思考这种排序方法好不好,是否有更好的方法。给出冒泡排序基本思想,请学生将序列{20,18,87,22,1,19,77,5,10}、{76,53,440,29,44,29,1,89)按照交换排序算法进行排序,感受交换排序和插入类排序的异同,深入了解插入类排序算法思想。
对于程序设计方面的能力,可以对数组部分的知识点进行测试,在数组中查询数据、插入数据、删除数据、修改数据等,如在无序数组a[]={21,17,8,56,77,2}中查找关键字8和删除关键字8,在有序数组{2,8,17,21,56,77}查询关键字8、插入关键字13和删除关键字8,通过查询、插入、删除、修改数据等操作来检查学生的学习基础,回顾程序设计部分知识点,为排序算法的实现奠定基础。通过深入提问,教师既了解了学生对基础知识的掌握程度,又激发了学生学习新知识的兴趣。
2.4 参与式学习
参与式学习是BOPPPS模式最重要的一个阶段,突出教学过程中互动和体验,变单向的信息传导为双向的信息交流,关注学生的反馈信息,引导教学活动的开展。参与式学习是以学生为主体,学生在教学过程中居主导地位,教师在教学过程中扮演指导者、组织者的角色,突出学生在学习过程中的主观能动性,激发学生学习的积极性和主动性,鼓励学生参与到学习过程中,以小班教学方式,尽量使大多学生主动参与讨论,发布意见。根据不同教学内容制定不同参与学习方法,常见的参与式学习方式有游戏、辩论、角色扮演、头脑风暴、案例分析、实践、研讨、团队合作等。
在高等教育出版社的教材《数据结构——C语言描述》(作者耿国华)中,插入类排序是内部排序的第一部分内容,所以第一个参与方式是以讨论方式进行,问题为在实际生活中排序具有哪些特点和基本操作,如按照个子从矮到高进行排队,引导学生总结排序的基本概念,如有序、无序、移动、比较、关键字、记录、递增、递减、主关键字、次关键字、稳定性等。第二个参与方式以游戏方式进行,把两幅扑克牌分为4份,请4位同学进行抓牌排牌游戏,比速度快慢,然后讨论抓扑克牌排序的过程具有哪些特点,引导学生总结插入类排序的基本思想。第三个参与方式是给出几组无序数据序列,如{1,3,5,7,9}、{9,7,5,3,1}、{3,1,9,5,7}、{7,1,3,9,5}4组无序序列,请学生依照插入类排序基本思想进行排序,给出排序步骤并回答出自己所排序序列的优缺点。第四个参与方式是团队合作实践方式,把40位学生分成8个小组,用C语言进行编程,给出直接插入排序算法代码,测试数据为上述4组无序序列,学生完成后,进行评价总结。第五个参与方式是测试方式,测试题目为计算上述4个序列在直接插入排序过程中,进行了多少次比较和移动,需要的辅助空间多大,引导学生从直接插入排序算法的时间复杂度和空间复杂度方面进行性能分析。
直接插入排序知识点讲授完成后,通过第五次参与方式中计算的比较次数和移动次数,提出第六个问题,如何优化直接插入排序算法,如果从比较次数着手,是否可以将折半查找算法和直接插入排序算法相结合,引出折半插入排序基本思想。
分别演示直接插入排序代码和折半查找代码,让学生思考两个程序核心代码如何结合,得出折半插入排序算法描述,并分析其算法性能。
第七个参与方式为角色扮演法,让10个学生随机站成一排,进行按照从小到大排队,先按照直接插入排序算法进行排队,然后按照折半查找方法进行排队,再按照希尔排序基本思想,隔4个进行排序,再隔2个进行排序,再进行直接插入排序,讨论排序效率,引出希尔排序的算法思想,将希尔排序算法描述和算法性能分析留作课后作业,下一次课进行讲授。
在参与式学习过程中,授课教师需具备较强的课堂掌控能力,在半开放的教学过程中,教师需始终围绕教学目标展开,引导教学过程有序进行,避免学生偏离教学目标主线,影响教学计划的完成。此外,在互动过程中,教师可以更多地了解学生的学习兴趣和学习问题,有针对性地加强某些知识点的讲解,并对反馈信息不断总结和反思,改进和优化教学内容。
2.5 后测
该阶段的目的是检验学生的学习效果,检查是否达到教学目标,针对不同的课程内容,采取不同的评估方式。后测方式有测试、案例分析等,后测可在课堂教学内容讲授结束后进行,插人类排序后测内容如下:
题1:分析和比较3种插入类排序算法的算法时间复杂度和辅助空间大小。
题2:举两个实例,分别是直接插入排序最好和最坏的情况。
题3:对序列{12,3,9,11,55,77,98,2,3,9,76}进行插入类排序,使用顺序存储方法。
题4:对序列{12,3,9,11,55,77,98,2,3,9,76}进行插入类排序,使用链式存储方法。
题5:随机生成50个整数,用3种插人类排序算法分别进行排序(实践题)。
题1和题2是对算法复杂度和空间复杂度方面掌握程度的测试,题3和题4是从存储角度进行测试,加强学生对排序和存储方法的理解,题5作为综合性的实践作业,测试学生在掌握理论知识的基础上,实践动手能力如何。
在后测阶段可以检查学生对这一教学单元课堂学习情况,如果部分知识点未达到教学要求,可以根据学生的学习情况,有针对性地布置课后作业和实验内容。在后测阶段,教师既可了解学生对理论知识的掌握程度,还可了解学生实践动手能力。通过后测,学生加深对知识点的掌握,教师可了解本教学单元教学目标的完成情况,进而分析整个教学过程,对各个教学环节进行调整、完善和优化。
2.6 总结
课堂总结可以帮助学生总结重点难点、理清知识脉络、巩固知识、加深记忆。教师对本次教学单元知识点系统地有条理地概括总结。总结方式一般包括内容回顾、学习评价、课堂反馈、概念图等。
本次课堂教学总结用概念图作为工具,使学生在掌握插入类排序知识点的同时理清知识点之间的关系,并对不同排序算法进行比较,如图l所示。
3 教学效果
该教学模式在40人的信管班进行试验,理论教学48课时,课程设计24课时,在教学过程中,课堂氛围活跃,学生在课堂发言、提问、回答、讨论等方面变得积极主动,编程能力明显提高,基础知识掌握扎实,实践动手能力和团队合作能力有所提高。40人考试成绩统计结果见表1。通过对表1成绩统计表分析,表明学生理论知识点掌握较好、综合实践能力较之前有所提高,说明BOPPPS模式在数据结构教学中的应用提高了学生分析和解决问题的能力,教学效果良好。
4 结语
实践证明,BOPPPS教学模式在数据结构课程教学过程中的应用可规范课堂教学流程,提高学生学习兴趣,活跃课堂气氛,提高学习效率,帮助教师分析教学过程、找出教学问题、完善教学方法、提升教学质量。
(编辑:彭远红)