王贺哲
关键词: BOPPPS教学模型;教学设计;算法设计与分析
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2023)20-0167-03
0 引言
算法设计与分析[1]是高等院校计算机科学与技术、物联网工程、软件工程等专业教学中的重要课程之一。算法设计与分析这门课程内容抽象、应用广泛,在专业课程体系中发挥着不可替代的作用。算法设计与分析主要包括算法概述、递归与分治策略、动态规划、贪心算法、回溯法、分支限界法以及随机化算法等众多内容。通过对算法设计与分析这门课程的学习,学生应做到掌握算法设计与分析的主要理论、方法以及技术,能够对可计算问题设计相应的算法,并对算法的计算复杂性做出正确的分析。算法设计与分析在专业课程体系中与C语言程序设计、离散数学、线性代数、高等数学、数据结构以及概率论与数理统计等众多课程紧密相连。因此,学好算法设计与分析这门课程不但能够巩固之前所学过的课程,还能为学生学习后续相关课程打下坚实的基础。
然而,算法设计与分析在传统教学模式下的教学中,通常会存在无法激发学生学习该课程相关知识的兴趣以及学生课堂参与度不够等问题。这些问题都极大地影响了算法设计与分析这门课程的教学质量。因此,如何激发学生学习该课程相关知识的兴趣,增加学生课堂参与度,进一步达到提升算法设计与分析这门课程教学质量的目标,是该门课程在教学活动中迫切需要解决的关键问题之一。为了能够激发学生学习该课程相关知识的兴趣、提升学生课堂参与度,本文以算法设计与分析中的“贪心算法”为例,将BOPPPS教学模型应用到算法设计与分析教学活动中,通过对BOPPPS教学模型所包含的六个环节的应用,达到提高算法设计与分析这门课程教学质量的目标。
1 BOPPPS 教学模型简介
BOPPPS教学模型是一种起源于北美的教学模式,该教学模式的主要优势体现在强调激发学生学习的主动性、增进学生的学习参与度。因此,该教学模式也是目前众多教学模式中比较先进且有效的教学模式之一。BOPPPS教学模型在实施过程中会将一个完整的课堂教学过程分割成六个环节,如图1所示。这六个环节分别为:导言(Bridge-in) 、学习目标(Objective) 、前测(Pre-assessment) 、参与式学习(Participatory Learn?ing) 、后测(Post-assessment) 和总结(Summary) [2-5]。
在这六个环节中,导言的主要作用是在教学过程中激发学生学习课程相关知识的兴趣、让学生能够充分地了解课程所要讲述的主题以及课程相关知识的重要性,在这一环节中,可以通过叙述和课程相关的故事、播放视频、老师提问问题学生回答问题等方式来进行课程的导入;学习目标的主要作用是在教学过程中让学生充分且清晰地了解课程要到达一个什么程度的教学目标,便于学生在学习相关知识过程中掌握重点、难点知识,在这一环节中,可以通过板书或PPT展示等方式来呈现;前测的主要作用是在教学过程中让教师能够充分地了解學生对与课程相关的基础知识的掌握程度,以便能够根据学生的具体掌握程度调整后续教学内容的相关细节,在这一环节中,可以采用一些简单的小测试或教师提问问题学生回答问题等方式进行[6-8]。
参与式学习的主要作用是在教学过程中让学生积极参与教学活动中,并高质量地完成课程学习,在这一环节中,可以采用专题研讨、小组讨论、实际案例分析等方式让学生积极主动地参与学习活动中,这样不仅能够加深学生对所学课程相关知识的理解程度,同时也强化了学生的语言表达能力、沟通能力以及相互之间的合作能力等素质的培养;后测的主要作用是在教学过程中让教师准确地评估学生是否精准地达到了学习目标,在这一环节中,可以通过一些简单的小测验、教师提问问题学生回答问题或做与本节课知识相关的习题等方式对教学效果进行评估,并根据评估结果进行教学反思,以便能够及时、高效、精准地调整下一步的教学内容,从而更好地达成课程教学目标;总结的主要作用是在教学过程中对所讲述课程内容的重点知识以及难点知识进行简要的概括,以此加深学生对所学重点知识以及难点知识的印象,在这一环节中,可以利用PPT展示等方法开展此环节[9]。总的来看,BOPPPS教学模型在教学过程中不但能够有效地激发学生学习知识的兴趣、通过课堂互动的方式提高学生参与度,还能有效、充分地帮助教师了解学生在课程学习后达到了一个什么程度的学习效果,进一步为提升教学质量做了坚实的铺垫[10]。
2 BOPPPS教学模型在算法设计与分析教学中的应用
BOPPPS教学模型是教师在教学活动中较为常用且有效的教学模式之一。据此,本文在借鉴现有文献[2-10]的基础上,以算法设计与分析课程中“贪心算法”为例,将BOPPPS教学模型应用到算法设计与分析教学活动中。贪心算法内容抽象且较难理解,是算法设计与分析课程中的重点、难点内容之一,因此在课前学生应做到提前预习本次课的相关知识内容,以便学生在教学活动中能够对所学知识有更深层次的理解。
2.1 导言
有效的课程导入能够调动学生对课程相关知识的学习兴趣,从而进一步激发学生主动获取与课程相关知识的欲望。为了能够高效地调动学生学习本次课程相关知识的兴趣,首先给出如下问题的描述,假设1元、2元、5元、10元、20元、50元、100元的纸币张数不受限制,现在要用这些面值的纸币来支付一件K 元的商品,应如何选择不同面值的纸币来支付才能使得所需纸币的张数最少?在学生明确问题描述的基础上,要引导学生为了尽可能多地减少所使用纸币的数量,应尽可能地优先使用大面值的纸币,也就是说首先应尽可能多地使用100元纸币来进行支付商品,以此类推,直至所选纸币面值达到K元为止。进一步向学生说明,这个方法其实就是贪心算法,从而引出了本节课的教学内容“贪心算法”。利用具有实际应用背景的问题为基础引出教学内容不仅能够激发学生学习课程相关知识的兴趣,还能让学生知道课程的重要性以及在现实生活中如何应用。
2.2 学习目标
在学习目标环节,通过PPT展示的方式让学生了解课程学习的目标。本次课的学习目标可以概括为以下几个方面:
1) 知识目标:了解贪心算法的概念;掌握贪心算法的基本要素;掌握贪心算法的设计策略。
2) 能力目标:能够利用贪心算法的设计策略解决实际问题。
3) 情感目标:通过对贪心算法的学习,培养学生具有严谨的学习态度、一定的创新思维以及独立思考的基本能力。
2.3 前测
在前测环节,以提问的方式了解学生对与本次课程相关的基础知识的掌握情况。首先,让学生回答一些与上一章所学知识相关的问题,例如动态规划算法的概念描述是什么、动态规划算法的基本要素有哪些以及0-1背包问题的问题描述是什么,这一过程不但能够让教师清晰地了解学生对基础知识或之前学过的知识的掌握情况,还能帮助学生巩固所学过的相关知识;其次,随机抽查学生课前预习的情况,这样有助于教师根据学生的实际预习情况更好地调整后续教学的细节,以便能夠高效地完成本次课的相关教学内容。
2.4 参与式学习
在参与式学习环节,首先给出贪心算法的概念,在给出贪心算法的概念后指出贪心法一般可以用于求一个问题在某种意义下的最优解,并让学生结合导言环节的实例分组讨论哪些问题适合用贪心算法解决。经过学生讨论后,可以对学生进行提问,抽查学生讨论的情况,基于学生讨论的情况指出适合采用贪心算法解决的问题应该具备最优子结构性质和贪心选择性质,进一步给出这两个性质概念的描述。以上设计能够有效地培养学生独立思考的基本能力,激发学生主动学习算法设计与分析的兴趣,同时也强化了学生之间的沟通交流能力、语言表达能力以及合作能力等综合素质的培养。
在给出贪心算法的概念描述以及贪心算法的基本要素后,给出背包问题的描述。并基于背包问题的描述进一步结合以下实例:背包容量为100千克,物品个数为3个,这三个物品的重量分别为30千克、50千克、70千克,这三个物品的价值分别为90元、100元、130元,让学生思考如何选择物品装入背包,能够使得装入背包中的物品的总价值最大。经过学生思考后,以提问的方式了解学生的思考结果,并指出如果用贪心算法解决该问题,应每次选单位重量价值(即价值与重量的比值)最大的物品放进背包可以得到问题的最优解。进一步让学生分组讨论,如果是0-1背包问题,以上实例用贪心算法是否能够得到最优解。经过学生讨论后,通过边启发边讲解的方式指出,对于该实例如果是0-1背包问题,贪心算法装入背包的价值为190元,但最优值是220元。最后结合以上实例指出,贪心算法并不一定能够让所有的问题都能得到整体最优解,贪心算法是否能够得到一个问题的优化解,需要经过严格的证明。
在学生掌握基本概念的基础上,以应用范例的方式对所学的知识进行进一步巩固。在PPT上展示“活动安排问题”范例,并对活动安排问题的问题描述做详细讲解,在此过程中可以边举例、边讲解、边提问,这样能够充分让学生参与到课堂教学中,加深学生对活动安排问题的理解。
在学生充分理解活动安排问题的基础上,让学生结合背包问题思考如何用贪心算法思想解决活动安排问题。经过学生思考后,以提问的方式了解学生对该问题的解题思路,并基于学生的反馈结果,对该问题进行讲解。在讲解过程中,应以逐步引导的方式指出,对于该问题的贪心思想可描述如下:为了能够选择出最多的相容活动,每次对活动进行选择时,应选择活动结束时间最少的活动,这样才能使剩余的可安排活动时间尽可能地极大化,以便接待更多的相容活动。在指出该问题的贪心思想后,给出该问题的贪心算法描述,并对算法的描述进行详细的解析,在解析过程中,可以结合具体活动安排的实例进行讲解,以便学生对算法的描述能够获得更深层次的理解。在给出算法的描述后,以提问的方式让学生对算法的时间复杂性进行分析,这样不但能够复习时间复杂性的分析理论、方法以及技术,还能进一步加深学生对活动安排问题算法思想的理解。
最后,设置思考环节,让学生思考如何对活动安排问题的贪心算法的正确性进行证明,经过学生思考后,给出相应的证明。此环节不但能够让学生多方位参与到教学活动中,从而掌握相关知识、高质量完成课程学习,还能在一定程度上培养学生的创新能力。
2.5 后测
在后测环节,通过练习题的方式检验是否达到学习目标。在做练习题之前,首先让学生总结贪心算法与动态规划算法的相同之处与不同之处,进一步给出如下习题:有一批集装箱需要装到一艘载重量为G 的轮船。在这些集装箱中,每个集装箱都有相应的重量,第n 个集装箱的重量可表示为wn,在装载体积没有受限制的情况下,应如何装载才能将尽可能多的集装箱装上轮船。
2.6 总结
在总结环节,利用PPT展示的方式总结本节课的主要内容。首先,围绕应用范例活动安排问题对贪心算法的概念、贪心算法的基本要素、贪心算法设计策略等内容进行概括,以此来加深学生对相关知识的记忆;其次,让学生自我总结学习收获以及学习心得,以作业形式上交,这样有助于帮助教师掌握学生在本次课的收获,以便为后续教学做准备,从而达到进一步提高教学质量的目标。
3 应用反思
探索更加高效的算法设计与分析课程教学模式,一直都是计算机科学与技术、物联网工程、软件工程等相关专业教师努力的方向之一。当BOPPPS教学模型应用到算法设计与分析课程教学活动中,要达成高质量的教学目标,还应注意以下几个要点:1) 无论是教师还是学生,在课前都要做好充分的教学准备。2) 要做到有效的课程导入。3) 能够让学生清晰地明确学习目标。4) 要通过学生目前知识的储备情况调整教学活动的细节。5) 要充分利用小组讨论等方式让学生积极参加到教学活动中。6) 要设计合理的、有效的教学效果后侧环节。7) 通过总结环节要让学生对所学知识的印象更深刻。8) 在实际教学活动中,BOPPPS教学模型的六个环节的顺序可根据实际教学需要进行调整。
4 结论
算法设计与分析是高等院校计算机科学与技术、物联网工程、软件工程等专业教学中的重要课程之一,学好算法设计与分析不但能够巩固之前所学过的一些课程,还能为学生学习后续相关课程打下坚实的基础。为了达到提高算法设计与分析课程教学质量的目标,文章以“贪心算法”为例,将BOPPPS教学模型应用到算法设计与分析的实际教学活动中,在实际教学中BOPPPS教学模型更强调的是将学生作为教学活动过程中的主体身份,能够有效地将学生在学习过程中的被动接受转变为主动参与;除此之外,BOPPPS教学模型还为教师在教学活动过程中提供了具体的实施步骤,这样不仅让教师明确了在课前备课过程中需要做哪些准备,还能够让整个教学活动更加系统化、条理化、完备化。综上,将BOPPPS教学模型应用到实际的教学活动中,更能充分调动学生学习课程相关知识的积极性,增强学生主动学习课程相关知识的欲望,从而高效地提升教师的讲授效果以及学生的学习效果,进一步达到提高教学质量的目标。