指向深度学习的“学历案”应用与思考
2017-09-07余晓珺
余晓珺
关于“学历案”
“学历案”是在班级教学情境下,基于学生立场,围绕某一具体的学习内容(主题、单元),从期望“学会什么”出发,设计并展示“学生何以学会”的过程,以便学生自主建构或社会建构经验与知识的专业方案。南京市第一中学正进行着一场以“指向深度学习的学历案研究”为抓手的教学变革,传统学习文本的编写已经发生改变。笔者以《打开编程之门》一课为例,为大家呈现一种新型的学习文本。学习《打开编程之门》一课共安排2课时,本课为第1课时。
学习内容分析
《打开编程之门》是高中选修教材《算法与程序设计》第一节课的内容。《高中信息技术课程标准》中要求教师在程序设计教学时能够结合实例,让学生经历分析问题、确定算法、编程求解等计算机解决问题的基本过程,帮助他们认识算法和程序设计在其中的地位和作用。教师要带领学生经历用自然语言、流程图或伪代码等方法描述算法的基本过程。在使用计算机解决实际问题的过程中,学生可以通过观看演示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其作用,从而掌握计算机程序的基本概念,并能够解释计算机程序执行的基本过程。《打开编程之门》一课作为编程的起始课,其作用就是把门打开,让学生走进编程的世界。
本节课分为两个教学环节:①带领学生体验数据计算的三种方式(人工计算、大众工具软件计算、编程计算);②让学生归纳对比三种计算方式的特点,并根据实际情况选择合适的解决方式。
学习者分析
本节课的学习对象为高一年级学生,他们具有很强的自主意识和探究能力,喜欢通过自己动手实践来获得新知。学生熟悉利用常规的数学方式解决问题,而对用编程解决问题比较陌生,总觉得编程很神秘,有畏惧心理,在面对现有软件无法解决的问题时,愿意尝试编写程序解决问题。
学习目标
知识与技能目标:通过解决实例问题,能够列举数据计算的基本方式(人工计算、大众软件计算、编程计算),感受数据计算的发展过程。
过程与方法目标:通过反思“鸡兔同笼”问题的计算解决过程,能够归纳出几种计算方式的特点,并能根据需求选用恰当的计算方式,初步体会计算机解决问题的思想;通过分析“猜数字游戏”,能够说出算法的概念并理解算法的重要意义,掌握用自然语言和流程图描述算法的方法,认识到算法在编程解决问题中的地位和作用;通过绘制“猜数字游戏”的流程图,能够学会使用顺序、选择、循环三种基本结构解决问题。
任务评价
第一,能独立完成练习1,了解数据计算的基本方式,能根据实际问题选择适当的解决方法(检测学习目标1、2)。
第二,能独立完成练习2,学会使用自然语言或流程图进行算法的描述(检测学习目标3、4)。
学法建议
随着计算机技术的发展,处理数据的手段越来越丰富,效率也越来越高,使用大众工具软件加工和编程加工成为最常见的数据处理方式,即数据计算的方式。本节课,学生可以通过实例重温各种计算方式,体验各种计算方式的优势,并借此领会在实际问题的解决中如何做出恰当的选择。程序设计之初并不是要求每位学生都能够独立编写代码,而是借助实例幫助学生理解体验算法的基本思想和程序的基本结构,以此帮他们打开编程之门。
● 学习过程
课前准备:阅读材料《计算工具的发展》,了解人类计算工具的发展历程。
1.探讨解决问题的计算方式
《孙子算经》上记载:今有雉(鸡)兔同笼,上有三十五头,下有九十四足,问雉兔各几何?请思考解决该问题的计算方式。
探究1:对于“鸡兔同笼”问题,试阐述你的计算步骤(指向目标1)。
设计意图:对于这个经典的数学问题,很多学生有自己的算法。将学生书写在“学历案”上的文字(如图1)实时投影到大屏幕上,使他们产生共鸣,再请学生口述方程法、公式法、抬脚法、列表法等方法,这是帮助学生体验人工计算过程的方式。
师:看了课前的阅读资料后,大家都知道,复杂或机械的运算我们可以交给计算机去实现。例如,列表法理解比较容易,也很经典,可以把35个头和94只脚的鸡和兔的数量组合都罗列出来,并从中挑选出符合条件的。那什么软件能帮助我们通过列表完成呢?
探究2:运用Excel解决“鸡兔同笼”问题(指向目标1)。
在表1中,请计算出各单元格的值,求出鸡兔的数量,并将计算公式填入。
设计意图:发送包含表结构的“鸡兔同笼.xls”文件,引导学生完成探究2活动,学生在复习Excel公式计算、填充柄等知识点的同时,体验了大众工具软件计算方式的过程。教师选取1~2位学生的结果进行反馈,并提出共性问题:①很多学生直接将心算结果填入单元格,那么如何体现将计算任务交给计算机了呢?②如果是35个头,118只脚呢?多少只兔子多少只鸡?如果是72个头,168只脚呢?多少只兔子多少只鸡?如果是200个头,620只脚呢?多少只兔子多少只鸡?这一串问题出来后,学生会在Excel中继续尝试,但马上会发现很多不便,很想寻求新的解决方法。
探究3:用程序解决“鸡兔同笼”问题(指向目标1)。
师:桌面上的鸡兔同笼.py文件是用Python编程语言编写的小程序,请双击运行此程序,用程序解决此问题和Excel解决有何不同?
桌面上还有一个鸡兔同笼1.py的文件,请双击运行并与鸡兔同笼.py试着比一比,看有什么异同?
学生打开教师下发的文件,进行对比(如下页表2)。
设计意图:分别给学生发送了两个不同的“鸡兔同笼”文件,请学生打开代码进行比较,实际上就是让学生体验不同编程计算的特点。
学生会发现,两个程序功能一样,但代码不同。一个类似于前面人工计算中的公式法,把公式告诉计算机,由计算机来完成计算。另一个类似于列表法,让计算机把各种可能性都试一遍,然后找出符合要求的答案。虽然两个程序使用的编程语言是一样的,但它们的计算思路是不同的。
至于用程序解决“鸡兔同笼”问题与电子表格计算解决问题有什么不同,学生均给出了自己的观点,也许有的并不准确,但他们已经能够感受到编程计算的特点,这样就很自然地过渡到本节课的第二大环节——三种计算方式的对比。
2.三种计算方式的比较
探究4:面对“鸡兔同笼”问题,有“人工计算”“大众软件计算”和“编程计算”三种计算方式,请将这三种计算方式的特点进行比较,并填写表3(指向目标2)。
设计意图:三种计算方式各有特点,让学生比较归纳的过程,实际上是一个思考提炼的过程,学生填写表格的时候只填写了很简单的内容(如图2),教师在授课时可以引导他们将自己思考的词串起来,完整地表达自己的思想。每个人站的角度不同,分析结果可能也不相同,或许有些学生分析得并不准确,但这都不妨碍他们参与思考。记录下来,学生会在以后解决问题的过程中重新感悟所想,体会也将更加深刻。
练习1(检测目标1、2):
“百鸡百钱”问题是一个经典的数学问题,出自《张邱建算经》。内容是:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
解决“百鸡百钱”问题时,你会选择( )方式。
A.人工计算 B.大众软件计算 C.编程计算
练习2(检测目标3、4):
分别用人工计算、大众软件计算和编程计算来描述上述计算的基本过程。
下面是一段用Python编程语言编写的程序,试着阅读以下程序,并在空格处补全代码。
money=100 #一共100文钱
num=_______ #一共100只鸡
cock_price=5 #公鸡价格5文
hen_price=_______ #母鸡价格3文
threechick_price=1 #3只小鸡1文
for cock_num in range(1,money//cock_price+1): #公鸡只数可能为1-20
for hen_num in range(1,money//hen_price+1): #母鸡只数可能为1-33
for chick_num in range(1,money//threechick_price+1): #(3小鸡)只数可能为1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num*threechick_price
num1=cock_num+hen_num+chick_num*3
if money1==money and _____________:
print (cock_num,hen_num,chick_num*3)
设计意图:练习的设计实际是为了检测目标,学生作为学习的主人,指向目标的学习才是真正的学习,经过一系列指向目标的探究思考后,学生是否真的已掌握所学呢?练习的作用就体现出来了。这个练习选择了“百鸡百钱”的经典问题,这是一个用三种方式都能解决的问题,但是学生在做的过程中会犹豫,会有选择,所以更加能够感受到三种计算方式的特点。
3.学后反思
师:请大家自主梳理本主题知识体系,你是通过什么方法和策略学会主题内容的,你觉得哪些部分还比较薄弱,需要老师提供何种帮助,你还有什么好的经验可以跟大家分享?可以写在“学历案”中的反思区写下反思。
设计意图:每一篇“学历案”都有这片小小的区域留给学生吐露真言,回顾所学,写下自己的想法,教师也可以借助这个环节与学生课后对话。
教学反思
在这一次与北京四中的同课异构活动中,笔者采用基于“指向深度学习”的“学历案”进行教学,真正体会到学生的学习需求应该是教师备好课、上好课的第一依据,学生才是学习的真正主人,要给他们自由的空间,充分相信学生的能力。学历案,是学生记录自己学习经历的文本,传统的课堂教主學从,更多的为考试学习,而变革的课堂,在整个学习过程中,学生手持一份学历案学主教从,真正落实到学生的学。学历案的特点:所有的探究活动都是有指向目标的,学生的学习都是有目的的,所有的目标都可以检测,设置的练习具有检测目标的作用。因此,在学历案编写之初,笔者就把自己的身份转换为学生,从学生的角度看要习得什么,如何习得以及究竟有没有习得,依据这个标准设置学习目标、探究活动和最后的评价任务。实际课堂使用中证明,这样的学习文本对学生是有用的,在它的引导、帮助和检验下,学习也的确是轻松有效的。
程序设计是信息技术学科的核心知识,很多学生对程序设计又爱又怕。打开编程之门是程序设计的第一课,学历案中设置的一系列探究活动,都是围绕“鸡兔同笼”的问题展开的,学生熟悉方程、列表、公式等解决问题的方法,能够运用最基本的人工方式解决问题,但把问题的难度加大后,学生切身感受到计算机解决问题的优势。在对比三种计算方式各自的特点后,笔者并不急切地让学生断定编程解决问题一定最优,而是让学生体会到在合适的问题合适的条件下可以选择适合的方式。在学习中,学生读一读代码,改一改代码,编程的大门渐渐打开,学生们也渐渐明白原来编程的世界并没有那么神秘、可怕。
培养学生的计算思维是新一轮课标中信息技术学科的核心素养之一。如何把这个素养的培养渗透到课堂,指导学生进行深度的学习呢?教师的教学目标不应该只是停留在对知识的简单掌握上,而是应该定位在将习得的知识迁移到类似问题的解决上,或者习得能够在长远的学习中指导自己的思想和理念上。所以,本节课表面上是解决“鸡兔同笼”问题,实际上是让学生感受了三种不同的计算方式,随后提炼对比它们的特点,虽然学生用自己的语言归纳了,但认识应该还不是很清晰和深刻,“百鸡百钱”问题的解决可以帮助他们进一步理解计算方式的特点,对“计算思维”有一个粗浅的认识。