基于BOPPPS模型的课堂教学设计
2024-09-15赵晓亮
摘要:以学生为中心的教学理念是课程设计的关键。本研究基于BOPPPS模型对程序设计中的“函数的定义与使用”一节进行了创新性教学设计。此设计通过一项绘制五星红旗的任务来增强学生的计算思维和问题解决技巧。文章清晰地界定了三维教学目标,深入分析了教学内容,并确定了教学重难点及解决策略。整个教学过程严格遵循BOPPPS的6个阶段,旨在激发学生的主动学习兴趣,并确保他们能够全程积极参与。
关键词:程序设计教学;BOPPPS模型;项目式学习(PBL);课程思政
中图分类号:G642.421 文献标识码:A
文章编号:1009-3044(2024)24-0139-03
开放科学(资源服务)标识码(OSID)
0 引言
在信息化时代,计算机编程教育已成为培养学生创新能力和逻辑思维的重要途径。而当前教学模式仍存在强调知识的讲授、记忆,缺少课堂互动和学生的主动学习,不符合以学生为中心的教学理念。为此,本文选取Python程序设计中“函数的定义与使用”一节,基于BOPPPS模型进行教学设计,通过项目式学习(PBL)的形式,以绘制标准的五星红旗为任务主线,设置螺旋递增目标和学习支架,支持学生全程参与和即时反馈,促进课堂教学的提质增效。
1 总体设计
1.1 教学目标
1)知识与技能目标。在对“绘制五星红旗”这一具体任务的分析、拆解和代码优化过程中,了解函数在代码复用中的作用;掌握函数的定义和调用方法;掌握位置参数、关键字参数及其使用方法;能够灵活使用自定义函数解决实际问题。此外,学生在理解计算机解决问题的一般过程中,获得自顶向下分解问题和自下面上而向上解决问题的能力;能够借助工具分析、发现求解规律,抽象问题模型;不断地练习实践,提高代码实现能力。
2)过程与方法目标。课前,通过《学习手册》引导学生开展自主学习,逐步养成“带着问题来上课”的良好学习习惯[1]。课中,通过具体任务目标的下发,让学生明确课程目标的同时,在任务解决的详细剖析过程中逐步形成对计算机解决问题的一般方法的感性认知,通过观察、交流、实践等方法分析问题,抽象模型,从而解决实际问题。课后,通过练习实践和知识拓展的方式夯实编程基础知识,拓宽知识应用边界,让一节课成为学习的起点,深化思想、提高技能。
3)情感态度与价值观目标。以“五星红旗诞生的故事”激发学生的爱国情感,将枯燥的函数知识通过“绘制五星红旗”这一任务来引出和实践,帮助学生从视觉上直观感受代码书写的问题所在。五星红旗和常见函数都是学生们熟悉的内容,通过“不是专业的就不能尝试设计国旗了吗?”“你是否知道五星红旗有严格的制法规则?”“我们使用过非常多的Python内建函数,你真的会用函数了吗?”等一系列课堂发问引导学生反思:凡事都存在我们熟悉的一面和陌生的一面,不要因为熟悉而轻视,不要因为陌生而畏惧。作为预备警官,应当从现在做起,严守规则、按章办事,并脚踏实地、提升本领,练就勇担责任使命的品质和能力。
1.2 学情分析
1)知识储备。学生在学习本课程之前没有编程基础。通过前几次课程的学习,学生已经掌握了Python的三大基本结构和Turtle画图相关知识,为本节课函数的学习奠定了知识基础。
2)能力水平。通过前期课程的学习,学生能够熟练使用IDLE进行Python编程,能够自主进行代码编写和调试工作,但缺乏自主分析问题、设计解决方案、实施方案和评估结果的能力,需要在老师引导下累积实践经验,掌握解决问题的一般方法与步骤。
3)心理特征。学生已基本明确了学习方向,具备一定的自律能力和自主学习意识。随着课程难度增加,不少学生会因此产生挫败感和厌烦情绪。但好在青年人的可塑性较强,容易受到正向激励的影响,因此适宜从他们所熟知的内容入手,结合实际需求展开新课内容的学习,减少学生的抵触情绪。
1.3 教学分析
1)内容分析。本节内容选自《Python语言程序设计基础(第2版)》第五章函数和代码复用第一、二节与第八章程序设计方法论第一、二节内容[2]。教材中对函数知识的介绍由浅入深,从函数的基本概念到定义和调用,从函数的参数传递到返回值,从函数的递归到内置函数,实现了知识螺旋式上升的教材难度编排要求。通过对教材的整体分析发现,第五章内容与第八章内容有交叠,且考虑到课时少的问题,将两章部分内容进行了重构。本节课的教学内容,如图1所示。
以“熟悉的陌生人”为题串联起五星红旗和函数,通过对“绘制五星红旗”的分析引出函数在代码复用中的作用。首先解决绘制五角星的问题,引出函数的基本概念和函数定义的语法规则。其次要分析五星红旗上所有五角星的特点,抽象出问题求解模型,提炼参数传递的意义和方法。通过任务目标的需求引出知识目标,任务目标的达成也就检验了知识目标的达成。本节课虽是函数学习的第一课,但不仅仅是在讲授Python语法基础知识,更是在为后续的模块化编程、算法入门以及人工智能课程做好知识铺垫。
2)教学重点:函数的定义与函数调用。解决方法:讲练结合,对学生普遍存在的问题进行重点强调。由易到难,结合“绘制五星红旗”的实例,通过函数绘制不同大小的五角星,再到绘制不同位置、不同角度的五角星,层层递进。
3)教学难点:从问题抽象到函数定义。解决方法:观察加讨论,观察国旗中所有绘制五角星的代码,找到不同之处,讨论这些不同之处决定了五角星的什么属性,从而抽象出函数的形参原型。最后结合语法规则完成函数的定义。
2 教学过程设计
基于BOPPPS教学模型,本节将详细阐述“函数的定义与使用”这一小节的教学过程设计[3-4],如图2所示。通过精心组织的教学活动、教学方法和教学资源,旨在帮助学生深入理解函数的本质,并熟练运用函数进行编程实践。
2.1 导入/暖场(Bridge-in)
在导入阶段,设计了两个主要活动,旨在激发学生的学习兴趣并为新课内容做好铺垫。首先,提前通过预习材料引导学生对前序知识进行回顾,并预习本节内容。这些预习材料涵盖了程序的控制结构、turtle绘图等前序知识要求和查阅《国旗法》完成五星红旗代码补全等关键任务,以电子文档的形式通过学习通App发布,供学生随时随地预习和复习。通过这一环节,学生能够在课前对新课内容有一个初步的了解,从而更好地跟上课堂节奏。其次,为了进一步增强学生的学习兴趣和动力,课前利用短片介绍了五星红旗的背景故事。这一环节不仅让学生了解了五星红旗的诞生过程,还巧妙地引出了本节课的项目主题——使用Python绘制一面标准的五星红旗。通过这种方式,学生的学习兴趣和爱国情怀得到了激发,为后续新课内容的学习打下了基础。
2.2 学习目标/结果(Objectiveor/Outcome)
为确保学生在学习过程中有明确的方向和目标,教师需向学生清晰地展示本节课的学习目标,包括知识与技能目标、过程与方法目标以及情感态度与价值观目标。在《学习手册》的课前部分已明确列出了这些目标,一方面有利于学生清晰了解本节课的知识、重点、价值及能力要求,另一方面便于他们课后对照目标进行自我评估。在课堂上,教师进一步向学生解释说明如何通过本节课的活动来实现这些目标。此外,教师在教学过程中也会强调教学重难点内容,并结合项目开展促进课程思政目标的达成。
2.3 前测(Pre-assessment)
前测阶段是对学生课前学习情况的评估,同时也是教师调整教学策略的重要依据。在此阶段,教师通过巡视和提问的方式对学生的预习情况和前序知识的掌握程度进行了全面了解。在巡视过程中,我们仔细观察了学生的预习笔记和课前练习题的完成率,对他们的学习状况有了初步的了解。同时,我们还通过提问的方式检验了学生对前序知识的掌握情况。
根据学生的反馈,教师要适时调整教学难度和进度。对于掌握较好的学生,可以适当增加了教学难度,额外提供了更具挑战性的学习任务;而对于掌握较差的学生,则加强了基础知识的讲解和练习,帮助他们打好基础。这一环节的实施,不仅有助于教师更好地把握学生的学习状况,还为后续的因材施教提供了重要依据。
2.4 参与式学习(Participatory Learning)
参与式学习阶段是整个教学过程中最为活跃的部分,教师应特别注重学生的主体性和实践性[5]。本节课采用项目式学习方法(PBL),通过师生互动和多样化的教学策略,促进学生的主动学习和深入理解。具体活动包括:
1)任务分解与规律发现。利用思维导图引导学生将绘制五星红旗的任务进行分解。通过这一环节,学生不仅了解了五星红旗的标准绘法和绘制步骤,还发现了其中的规律,并顺利引出了函数的概念。
2)概念阐释与类比。通过类比和实例演示的方式详细讲解了函数的概念、功能和语法规则。在类比过程中,将函数比作“办公机器”,输入特定参数后即可得到相应的输出结果,帮助学生建立起对函数概念的直观理解。
3)编程实践与概念补充。利用学习通App发布练习题,要求学生将《学习手册》中的绘制五角星程序改写为自定义函数形式。教师在巡视过程中总结学生的共性问题,并展示参考程序,简单说明函数的调用方法,引出形参和实参的概念。
4)主题讨论与知识迁移。利用学习通App发布主题讨论,并通过词云展示学生答案,以促进学生之间的交流和思维碰撞。总结得出绘制五角星函数所需的参数,引导学生将知识点从简单问题迁移到复杂问题,进而解决大小不同、位置不同、方向不同的五角星绘制问题。
5)代码优化与展示。学生继续完善五角星绘制函数的代码,教师巡视发掘“优美”代码并利用学习通拍照发布和点评。学生通过亲手优化和调试代码,能够更深入地理解函数的运行机制和使用方法,提高编程能力。
6)参数概念的深入讲解。利用多媒体动画对比演示,以5个五角星的参数传递为例讲解位置参数和关键字参数的概念和使用注意事项,帮助学生深入理解函数的参数传递机制。同时,通过正确与错误代码的对比,强调代码调试的要点,为学生下一步实践打基础。
7)知识应用与封装。要求学生将绘制国旗的代码封装成一个函数,这一过程中学生要思考函数命名的规范、参数的设计以及函数内部的逻辑结构。通过对同一个任务的反复、递进和加深运用,强化学生对知识点的记忆、理解和运用,这既是对前面学习内容的复习和巩固,也是对学生编程能力的进一步提升。
2.5 后测(Post-assessment)
后测是对学生学习效果的检验和反馈,同时也是教师评估教学效果的重要手段。在参与式学习阶段的每个小单元完成后,教师通过学习通、巡视和口头提问等方式,检查学生的学习成效是否达到预期目标,并针对发现的问题进行了重点讲解和补充练习。此外,《学习手册》的课后环节也布置了拓展练习,用以检测学生的学习效果。这一阶段为教师提供了宝贵的教学反馈信息,有助于教师对后续教学内容和方法进行调整,以便更好地满足学生的学习需求。
2.6 总结(Summary)
在教学过程的最后阶段,教师通过动画将函数定义、函数调用、参数传递的知识点进行归纳,并进一步总结和阐述函数的作用和价值。这一过程有助于学生形成本节课的知识图谱,并加深对自顶向下设计与自底向上执行、代码复用/模块化编程等计算思维的认识和理解。最后布置作业,要求学生进一步绘制国旗中各五角星的参考线,以进一步训练学生的编程能力,同时强化其规矩意识。
3 结束语
本文基于BOPPPS模型对一堂程序设计课进行了教学重构,在全流程提供学习支架,引导学生全方位参与主动学习,提高学习效果。同时,通过国旗诞生的故事和绘制国旗的任务,开展课程思政教育,培养学生的逻辑思维、创新精神和遵规守纪、依规办事的规矩意识。在后续研究中将进一步完善基于BOPPPS模型的教学设计,将以学生为中心落到实处。
参考文献:
[1] 王利.线上线下融合背景下高校学生自主学习模式[J].继续教育研究,2024(2):81-85.
[2] 嵩天,礼欣,黄天羽.Python语言程序设计基础[M].2版.北京:高等教育出版社,2017.
[3] 王书全,马鸣潇,高慎阳,等.基于BOPPPS教学模式的兽医免疫学试验课程思政设计与实践——以炭疽诊断及皮毛检疫试验为例[J].中国免疫学杂志,2023,39(6):1199-1202.
[4] 董桂伟,赵国群,管延锦,等.基于雨课堂和BOPPPS模型的有效教学模式探索——以“材料物理化学” 课程为例[J].高等工程教育研究,2020(5):176-182.
[5] 武治国.以学生为主体的思政课教学研究——评《思政课学生主体实践性教学研究》[J].教育发展研究,2018,38(24):87.
【通联编辑:闻翔军】