胡伟 浙江省杭州市丁兰实验中学
UbD(理解为先的教学模式)是美国课程改革专家威金斯和麦克泰积极倡导的一种课程与教学改革模式,该理论强调单元设计,认为合理而有效的单元课程设计能帮助学习者对主要概念和过程产生深入、持久的理解,是保证教学既有效果又有效率的前提和基础,而逆向设计是一种有效的单元课程设计方法。浙教版初中信息技术八年级的“Python程序设计基础”单元是在初步认识生活与算法、了解数据结构特点的基础上设置的,是学生学习程序设计的起点。但经过一轮的教学,学生普遍反映对Python这一非图形化编程语言感觉到陌生和抽象。通过调查得知,这种情况的产生与教师传统的教学设计与教学方式有很大关系。教师习惯于以课时的微视角解读教材或课标,按照教材编排顺序依次教学,教学设计又偏重于落实知识点,从而导致学生的学习仅停留于表层知识,没有达到深层次理解。在教学实践中,笔者尝试在课程标准的指引下,应用UbD模式对该单元进行整体教学设计,加强学生对知识的深层次理解,促进学生学科核心素养的形成。
“Python程序设计基础”单元为浙教版信息技术八年级上册的第一单元,是Python程序设计的起始单元,单元内容主要是Python的一些基础知识和技能。针对此情况,笔者根据UbD模式的设计理念,基于单元制订学科素养路径,继而确定指向理解的单元教学目标,围绕目标确定预期学习成果,使用恰当的评估方法来评估过程,并以理解为先的理念规划相关教学活动;在教学活动中渗透学科方法和程序应用,最终得到程序解决问题的成果,体现用计算思维解决问题的理念,逐渐养成指向学科的核心素养。
本单元安排了“初始Python”“常用数据类型”“算术运算符和表达式”等基础内容,对于教师来说,如果不能明晰教学内容指向的课程标准以及学科核心素养是什么,势必会让课堂教学效果事倍功半。因此,笔者根据UbD模式,对本单元的内容,从课程层面,以课程标准为指导方针,针对教材中的单元目标,梳理各个知识点目标,并以理解的六个维度(解释、释义、应用、洞察、移情、自知)作为衡量学生“理解”的标准,形成指向信息意识和计算思维的学科核心素养(如表1)。
表1 指向理解的单元教学目标
针对表1梳理出的基于理解的单元教学目标,参照UbD模板2.0版本,呈现本单元教学设计,明确了以如下页表2所示的预期学习结果。
针对下页表2梳理出的三个层面的预期学习结果,参照UbD模板2.0版本,呈现各个层面的目标的评估标准以及评估方式,确定了如下页表3所示的评估办法。
表3 指向目标的恰当评估办法
笔者根据理解为先的设计理念,在完成了预期结果和评估证据的定向思考之后,将教学过程分为五个主要环节:旧知快答搭建学习支架、以终为始助力新知理解、游戏探秘出示核心任务、任务体验帮助自主建构、赏析应用展示小组成果(如下图)。将预期结果和评估证据融合在教学过程中,体现教、学、评一致性。
笔者以第一单元第一课《初始Python》为例,以理解为先的理念规划了相关教学活动。
《初始Python》是在初步认识生活与算法、学习数据结构后的一节入门课。鉴于教材的第二课《常用数据类型》中的一种数据类型这一知识点,在第一课中的实例也需要涉及,笔者对教材的第一课和第二课内容做了调整,将第二课的数据类型内容移到第一课来学习。而本课中的实例涉及的内容较多,因此将本课分为2个课时来完成。第1课时主要是认识Python及其开发环境、print()函数及常用的数据类型;第2课时主要学习变量、变量的赋值、input()函数,初步掌握Python的编写过程。下面,以第1课时为例,确定课题为《从算法走向程序设计》,具体教学过程规划如下。
本单元内容与七年级下册第二单元《算法和数据结构》内容一脉相承,也与其后面的课程紧密联系。七下第二单元探究了算法和数据结构,而算法是计算机程序设计的灵魂,数据结构是算法实现的基础。因此,本课通过知识竞答,帮助学生回顾七下的学习内容,为本单元的学习做好铺垫,进而为后面的学习奠定基础。
对于学生来说,通过翻看教材目录,他们能大致知道本单元主要是学习Python程序设计。但程序设计学完以后能做什么?通过编程能解决生活中什么样的问题?这些对于学生来说都比较陌生。因此,笔者借助UbD理解为先的理论,以终为始,先引导学生体验各种各样的程序实例,明确第一单元的学习内容,在编程解决问题的具体应用实例中感受程序及计算思维带来的魅力,从而对单元学习内容有整体认识,引发学习需要。
通过P y thon书写程序,教材中的案例多为pr i nt(‘Hel lo World!’),这样的程序实例虽然很简单,但学生往往不知道为什么要书写这样的程序实例;与此同时,这个实例对于初次接触程序设计的初中生来说,涉及的知识点比较多也非常陌生。因此,在实际的教学过程中,从学生较为熟悉的数字魔术小游戏出发,引出第一个Python程序:print(1089)。
通过自主探究尝试编写自己的第一个Python程序,虽然任务较为简单,但因为是学生的第一次尝试,加之对输入法等编程环境不熟悉,容易出错的地方也不尽相同,所以很多学生需要指导。因此,笔者借助小组交流并讨论程序编写时遇到的问题,现场采集学生自主探究、小组合作学习的图片,归纳总结Python语言的学习方法。
各个小组在自主探究、小组合作后,生成了一系列的学习成果,通过赏析Python应用视频,进一步激发学生的学习兴趣和对课程学习的期待。
通过问卷发现近80%的学生都希望教师能够从他们熟悉的旧知识以及生活、学习等情境任务出发,层层递进设置教学活动,这样可以更好地帮助他们理解知识和学习内容。与此同时,教师通过选择一些支撑教学目标的精准内容,以终为始,更好地助力学生理解核心问题。
通过问卷调查发现,90.3%的学生表示在学习程序设计课程时,应养成边思考边记录的习惯,如画一画流程图来帮助理解程序。基于此,教师可基于教学目标,分解教学任务,从方法步骤到代码编写,从算法思维到程序实现,选择符合学生认知特点的实践活动,让学生通过实践体验,通过程序设计语言规范,编写程序代码,调试运行程序结果,让思维过程可视化,让算法思想具体化。