APP下载

高中信息技术问题化学习课堂建构与实施路径的应用与探索

2021-02-23陈丹亚

科教创新与实践 2021年46期
关键词:实施路径

陈丹亚

摘要:本文以《数据与计算》第三章3.4节《分支结构算法实现》的教学过程为例,以“一元二次方程求解”为学习问题,建构问题化学习教学模式,以“呈现问题è分析问题è推进问题è解决问题è总结问题è拓展问题”为实施路径,让学生在问题的解决中,层层深入的认识选择结构,完善程序。旨在让学生通过对某“个”实例的分析,找出分支结构的规律性问题,归纳出选择结构的一般格式,实现从“个”到“类”的提升。文中详细分解问题化学习实施路径中的每个环节,总结设计意图和注意事项,以希望对高中信息教学中问题化学习的教学策略的应用提供参考。

关键词:分支结构;问题化学习;课堂建构;实施路径

本课的授课对象为必修1《数据与计算》的高一学生,大多学生对利用信息技术解决实际问题充满好奇心,乐于和同学一起进行问题的分析与探讨。急切地想编写程序解决生活中更为复杂的实际问题,但是他们现有的知识结构仅仅掌握Python常量、变量、函数、书写表达式等基础知识,仅限于解决顺序结构的问题,将实际问题转化为算法程序的能力也有待提高。经过本课学习后,学生应达到课程标准“计算思维水平2”中的部分要求,在日后实践中,能认识到分支结构在学习生活中的应用价值,自觉运用分支结构解决问题。

针对这一学情和教学目标,我们以问题为导向,按照问题化学习模式进行如下实施:

一、呈现问题,引入主题

提问1:生活中大家有碰到过哪些选择性问题吗?实例应用的选择结构类型一样吗?

师生互动举例。(略)

提问2:在前面的章节学习中,我们已经分析了“一元二次方程求解”算法的流程图实现,很明显也是一种分支结构,那又该如何实现呢?

设计意图:创设情境,导入主题,联系生活实例让学生产生共鸣,让学生感受到选择结构是用于判断给定的条件,根據判断的结果控制程序执行流程,分为单分支、双分支及多分支选择结构。

二、分析问题,抽象建模

提问3:第二章学习时已经分析了“一元二次方程求解”算法的流程图实现,现在要求输入a,b,c的值,有解的情况下输出解,无解的情况下输出“无解”,程序该如何实现?

自学导学案中的if语句的语法要点,先尝试用if语句实现两种情况的求解程序。

1、用流程图表达分支算法

(1)明确判断的条件表达式

(2)梳理条件成立和不成立时的执行步骤

(3)画出算法流程图

2、Python 语句实现的语法格式归纳:

(1)双分支结构:有if,也有else,用来处理二选一的情况

If语句的语法格式如下:

if <条件表达式> :

<语句块1>

else:

<语句块2>

双分支if语句的执行过程是:首先计算条件的值,如果条件的值为“真”,则执行语句1后结束if语句;如果条件的值为“假”,则执行else后边的语句2后结束if语句。

(2)单分支结构:只有if,没有else

If语句的语法格式如下:

if <条件表达式> :

<语句块>

单分支if语句的执行过程是:首先计算条件的值,如果条件的值为“真”,则执行语句后结束if语句;如果条件的值为“假”,则立即结束。适合只需要对条件为真的情况做出处理的程序。

设计意图:学生通过第二章的学习铺垫,已经理清了一元二次方程求解的思路和求根公式的表达式书写,所以只要应用合适的if语法结构,就可以完成实践1的目标设定。

注意事项:因为学生是第一次接触Python的if语句结构,教师需要总结语法格式书写的注意事项与要点。特别强调Python中的缩进是强制的,缩进的语句视为代码块(以缩进标记程序结构),通过缩进,Python能够识别出语句是隶属于if(else)的分支。这也是以后解题划分结构的重要依据。

实践1:依次输入a,b,c的值,有解的情况下输出解,无解的情况下输出“无解”,代码如下:

a=int(input(“a=”))

b=int(input(“b=”))

c=int(input(“c=”))

d= b**2-4*a*c

if d>=0 :

x1=(-b+ d**0.5)/(2*a)

x2=(-b-d**0.5)/(2*a)

print(“x1=”,x1, “x2=”,x2)

else:

print(“无解”)

三、推进问题,提升难度

提问4:如果要实现依次输入a,b,c的值,程序运行后能分别判断输出2个不同的解,2个相同的解,无解的三种情况的算法,程序又该如何实现?

1、Python 语句多重分支实现的语法格式归纳:

(1)块if语句结构

if <条件1> :

<语句块1>

elif <条件2> :

<语句块2>

……

elif <条件N-1> :

<语句块N-1>

else:

<语句块 N>

教师总结归纳:首先计算条件1的值,如果条件1的值为“真”,则执行语句1后结束if语句;否则计算条件2的值,如果条件2的值为“真”,则执行语句2后结束if语句;……;条件1至条件n-1的值都为“假”时,最后执行else子句的语句n。

级联式if语句在语法上是一条语句,只是在else子句中包含了if语句,而该if语句的else子句又包含了if语句,以此类推。

四、解决问题,实践应用

实践2:在实践1的基础上,优化算法,应用块if语句结构,实现依次输入a,b,c的值,程序运行后能分别判断输出2个不同的解,2个相同的解,无解的三种情况的算法。

a=int(input(“a=”))

b=int(input(“b=”))

c=int(input(“c=”))

d= b**2-4*a*c

if d>0 :

x1=(-b+ d**0.5)/(2*a)

x2=(-b-d**0.5)/(2*a)

print(“x1=”,x1, “x2=”,x2)

elif d==0 :

x1=(-b+ d**0.5)/(2*a)

x2=x1

print(“x1=x2=”,x1)

else:

print(“无解”)

五、总结问题,探索规律

实践3:编写程序:输入身高和体重,求BMI指数。

要求:输入身高(米)、体重(千克),求BMI指数(体重除以身高的平方),IBM值低于18.5 時输出“偏轻”; 18.5-25 输出“正常”; 25-28 输出“过重”; 28-32 输出“肥胖 ”。

设计意图:实践3的要求相对实践2增加为4种情况的判断,学生在掌握三种情况的块if语句书写的前提下应该是很容易完成要求的,进一步提升学生的迁移能力。

提问:多分支结构在哪些生活情景中有应用?大家是否可以应用本节课所学知识编写程序解决?

【应用一】出租车费计算问题

【应用二】电费计算问题

【应用三】超市打折问题

设计意图:本课在对学生核心素养的培养重在通过对现实问题的分析、抽象与建模,形成分支结构算法概念,并使用计算机程序解决问题。总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。

六、拓展问题,激发思考

提问5:多分支的选择结构是不是只有块if语句结构呢?能不能分解为多个双分支或单分支结构?语法格式又该如何调整?

教师给出嵌套if结构语句实现的导学案,学生自主学习,鼓励学生思考如何用嵌套if语句将一元二次方程三种情况求解的程序进行结构调整,体验嵌套if语句格式和块if语句的区别。

设计意图:不同的分支结构有不同的语法格式和适用场合。牢固掌握选择结构程序设计,是学习程序设计的基本要求,是学会编写结构清晰、易读易懂的程序的前提。

程序设计的学习主要围绕环境、语言和应用三个方面的知识和内容展开,语言视图的学习,其核心主要在于语言规则本身。从教学方式来看,以往的程序设计语言规则的学习往往采用三步走的形式,即“提出问题,给出解答,再加点解释”,特别是“解释”,往往过多的纠缠于程序设计语言的语法知识的细枝末节之中,学生较少体验到解决问题的成功的喜悦。

本节课运用了问题化学习的教学模式,首先选择学生已有的知识架构贴近的“一元二次方程求解”问题引入,分析解决这个问题的“程序”。遵循学生认知能力的发展规律,从简单的双分支逐渐提升到多分支,在尝试补充程序模板中关键代码的过程中,逐步认识If选择结构,并引导学生提取出If语句的基本格式,最终得到功能强大If语句的指令集。最后进行拓展应用,将现实生活中各种多分支问题问题归类,学以致用,让学生感受编程学习的魅力。

问题化学习的教学模式在有限的课堂教学时间内,聚焦问题,层层递进,学生通过自主发现问题、持续探索问题、建构问题系统、合作解决问题的过程,完成知识的探究,有助于学生从整体上认识选择结构,并不断向纵深发展。这是使用传统的讲授法是无法完成的。这一课堂建构模式与实施路径值得在后续的章节教学中推广应用。

参考文献:

[1]中华人民共和国教育部.普通高中信息技术课程标准:2017年版[S].北京:人民教育出版社,2018.

[2] 徐谊.基于学习方式变革的课堂转型探索.现代教学,2019(10A):25-26.

[3] 王天蓉.问题化学习的原理和方式.现代教学,2019(10A):27-28

猜你喜欢

实施路径
中国古代官德培育及其启示
情感教学在初中历史教学中的实施
实践教学协同创新在高校旅游管理专业的实施
审美课堂:高中地理教学的新样态
高校纪检监察工作实施“三转”的思考
一项必须做好的育人工程
创新创业教育融入高等学校人才培养体系的实施路径研究
启发式教学的特点及实施路径
微阅读, 让高中英语阅读教学更给力