单元教学的实践与思考

2019-09-10 07:22潘安娜
关键词:程序算法目标

潘安娜

摘要:所谓“单元教学”(即综合化教学),就是在学生掌握的已有概念和学科思维、方法的基础上,结合学科特点,开展任务型教学、活动型教学、项目式学习、主题式教学等活动,以增强学生的探究意识、创新意识以及分析和解决问题的能力。以“算法与程序实现”单元为例,说明单元教学的特点:立足单元,目标实现更现实;难度递进,问题解决更容易;举一反三,实际问题更实用。

关键词:单元教学算法与程序实现综合化整体化

所谓“单元教学”(即综合化教学),就是在学生掌握的已有概念和学科思维、方法的基础上,结合学科特点,开展任务型教学、活动型教学、项目式学习、主题式教学等活动,以增强学生的探究意识、创新意识以及分析和解决问题的能力。单元教学一般是基于课程单元内容的,但更多的是在大情境、大任务、大项目、大观念、大问题的背景下进行综合化、整体化的设计,再按照教学时间要求进行统筹安排,实施教学。

我校一直倡导和重视单元教学,提出了“STEAM+跨学科学习、全科阅读、系统思考”等单元教学理念,并就单元教学多次开设全国、省、市级示范课。笔者作为一员也多次参与其中。以下是笔者设计的“算法与程序实现”单元教学案例,希望能够带给同行一些思考和借鉴。

一、立足单元,目标实现更现实

传统教学为每节课都设置了知识与技能、过程与方法、情感态度与价值观的三维目标,通常会使一节课目标达成的操作难度过大,同时各节课目标之间的层次性也不够。单元教学以整个单元的视角来设计教学目标,使单元中某几节课是偏重知识的,某几节课是偏重方法的,某几节课是偏重情感的,从而使每节课教学目标的操作性更强。

例如,“算法与程序实现”的单元教学目标是:

1.通过实例分析与讨论,学会运用恰当的描述方法和控制结构表示简单的算法。

2.通过实践,掌握程序設计语言的基础知识,理解三大结构,实现简单的算法,培养利用计算机解决实际问题的意识和能力。

3.通过解决实际问题,体验程序设计的基本流程,感受算法的魅力,掌握程序调试与运行的方法。

目标1是理论层面上的分析,目标2是技术层面上的操作,目标3是实际层面上的应用。本单元教学的最终目的是,学生能够通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案,并能够借助数字化工具表达思想、建构知识,养成数字化学习与创新的习惯。

单元教学强调综合化、整体化的教学设计,可以按照单元教学的目标整体设计单元内容。由此,梳理出本单元的教学内容如下:

1.用流程图描述程序的三大结构,描述解决问题的算法思想。

2.用Python语言实现程序的三大结构,实现简单的算法。

3.体验用计算机解决问题的过程,利用算法解决生活、学习中的实际问题。

根据教学内容设计出本单元的三个主题以及具体的知识结构(如图1)。

二、难度递进,问题解决更容易

传统教学更注重每节课的教学设计,教师往往在“生吞活剥”后,将复杂问题简单化,导致学生不会将知识运用到复杂的情境中去,学生的知识既未主动建构,也未形成体系,而是以单一的形式“记”在脑子里。即:教师教得“断章取义”,学生学得“一知半解”。而单元教学强调把“节”放到“章”里去透视,从而更好地聚焦“节”的重点,发挥“节”的作

图1

用,让学生不仅见树木,更见森林。

例如,“程序设计三大结构”通常的教学方式是针对每种结构举很多实例来帮助学生理解,但这些实例之间并无联系,容易造成学生“狗熊掰玉米——学一个,丢一个”的现象。而笔者基于单元教学的理念,为三大结构(顺序结构—分支结构—循环结构)分别设计了“求三角形面积问题”“改进求三角形面积问题”和“多次求三角形面积问题”三个实例。其教学过程如下——

[出示问题:输入3个正数值,利用海伦公式计算以它们为边长的三角形的面积。教师分析后提供测试数据,如(3,4,5)、(10,15,18)、(1,2,3)、(12,8,22)。学生实际操作。]

生为什么后两组数据结果不对,还报错?

师想一想三角形的构成条件。

生(恍然大悟)需要判断是否能构成三角形。

(学生完善程序。)

师每次运行程序只能计算一次,多组数据测试起来非常不方便。如何解决?

生可以让程序自动运行多次。

师对的,我们可以通过计数型循环For语句来实现这一功能。

(教师介绍计数型循环For语句的用法。学生完善程序,并连续测试多组数据。)

师使用For循环,程序一定要运行完我们设定的次数才能退出。我们想随时结束程序,怎么办?(稍停)可以通过While循环语句来实现这一功能。

(教师介绍While循环语句的用法。学生继续完善程序,再次连续测试多组数据。)

三个实例由浅入深,逐层递进,引导学生在编写程序时考虑程序的健壮性、完善性、实用性,在分析和设计的过程中提高问题解决的能力,感受程序设计的魅力,掌握程序调试运行的方法,促进计算思维的发展。

除了纵向难度上的递进,对于复杂问题,还可以将难度横向分解。例如,在“计算机解决实际问题”主题中,“移动的小船”是比较复杂的项目,要求学生掌握通过键盘控制窗口中小船的左右移动。这其中涉及的知识点比较多,比如pygame模块的安装和导入、游戏窗口的设置、窗口中物体的显示、窗口中物体的运动等等。笔者引导学生对功能模块进行分解,来降低整体难度:首先实现各个小功能模块,最后实现完整的程序。

三、举一反三,实际问题更实用

单元教学经常采用大情景、大任务、大项目、大观念、大问题的模式,更能贴近学生的学习生活,让学生的代入感更强;以解决实际问题为目的,更能培养学生举一反三的能力。

例如,前面提到的“移动的小船”项目,实际上是“计算机解决实际问题”主题中“游戏创意设计”这个大项目的一个引例。“游戏创意设计”项目要求学生自己设计一款小游戏。“移动的小船”项目通过pygame模块实现了键盘控制物体运动的操作。在这一实例的启发下,学生举一反三,设计出了“接金币”“躲导弹”“抢红包”“打地鼠”(如图2—图5)等游戏。“玩”自己设计的游戏让学生积极性高涨,创意迸发,信心百倍。能力强的学生还探究出了怎样在游戏中实现计分,怎样设计游戏的难度系数等。

图2图3

图4图5

举一反三的能力不仅表现在可以使用一种方法解决许多类似的问题,而且体现在可以使用多种方法解决同一个问题。例如,笔者设计了“优美的函数图像”项目,引导学生尝试通过多种方法实现函数图像的绘制——可以用表格画函数图像,也可以用程序画函数图像。并通过对比不同方法的优劣,引导学生学会在解决实际问题时选择更优的方法。

单元教学的实用性远不止于此,还有诸如培养学生的团队合作能力等效能。本文仅作为“引玉的砖”,以期引发广大同仁的思考与推广。

参考文献:

[1] 董付国.Python程序设计基础(第2版)[M].北京:清华大学出版社,2018.

[2] 〔美〕Warren Sande,Carter Sande.父与子的编程之旅——与小卡特一起学Python[M].苏金国,易郑超,译.北京:人民邮电出版社,2014.

猜你喜欢
程序算法目标
给Windows添加程序快速切换栏
Travellng thg World Full—time for Rree
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
英国与欧盟正式启动“离婚”程序程序
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)