《Swift函数及运用》教学案例

2018-12-19 09:37吴双双
中国信息技术教育 2018年23期
关键词:流程图指令意图

吴双双

学习者分析

《Swift函数及运用》一课的教学对象是小学四年级学生。在本课之前,学生已初步掌握了Swift命令控制Byte行走的“moveForward( )”(向前走)、“turnLeft( )”(左轉)、“toggleSwitch( )”(切换按钮状态)、“collectGem( )”(收集宝石)等基础指令,并能通过场景目标要求,简单地编写指令间组合与排序,帮助Byte顺利闯关。但因为学生初步接触Swift语言编程,在编程中对于“调试”指令的操作还不是很熟悉。小学四年级学生的思维发展水平由具体形象思维向抽象逻辑思维过渡,归类、对比、推理等能力开始增强。学生通过课前自主探究,增强对Swift的学习兴趣,提升数字化学习能力,且在探究中对“函数”会有一个初步的认识,但如何在后面的关卡中熟练使用并理解函数的意义,对学生来说需要引导。故此,本课结合学生熟悉的生活场景如“Swift课前操”导入,引导学生理解“函数”使用的意义,并结合Swift平台实践操作,促进其进一步深化理解。在任务情境中,学生在信息获取、流程图信息分析、函数解决问题过程中培养计算思维,并在自主探究、小组讨论分享中体验Swift编程的趣味。

学习内容分析

为了发展小学生的信息意识、计算思维、数字化学习与创新等信息技术核心素养,本课是以iPad的Swift Playgrounds软件为载体的自编课程。本课是自编Swift编程的第2课,在前一课“让Byte行走”,在第一单元“命令”的前四关认识Swift的四个基本命令。本课的主要内容是:①观察Byte角色所处场景获取任务信息;②通过流程图等方法对信息进行分析;③在认识Swift编程命令的基础上创建并调用新函数。本课是对翻转课堂教学法的一种探索尝试,主要分为三个方面:①课前自主探究,提出问题:完成第一单元“命令”后面三关,自主探究第二单元“函数”的前三关,并借助全景课堂分享自己对“函数”的理解与疑问;②课中解决问题,实践应用:根据学生课前遇到的问题与难点,课中引导学生通过小组讨论分析探究,进一步优化实践;③认识函数,思维提高:在“收集、切换、重复”与“尽收囊中”任务情境中实践提高。在三个活动的层层引导下,如何将抽象的函数转化为学生可理解的思维是本课的难点。

教学目标

通过课前自主探究,熟悉编程的基本过程:信息获取—信息分析—Swift指令编程—运行调试。

在课前测试中,了解自己对Swift基本指令的掌握情况,并在课中小组讨论交流中深化对Swift编程指令的认识。

在“收集、切换、重复”场景探索中,通过流程图学习工具寻找重复的模式,发现使用函数的机会,提高信息获取分析能力。

在挑战“尽收囊中”关卡中,通过创建调用函数,感受函数提高算法的效率和可读性,体验高效编程的乐趣,形成用函数解决问题的计算思维。

在小组交流讨论中,提升学生的小组合作能力,并在点评分享中提高数字化学习与创新信息技术核心素养。

教学重难点

教学重点:掌握创建并调用函数的过程。

教学难点:理解函数使用的意义,培养用函数解决问题的计算思维。

教学策略

本节课主要的教学方法是基于Swift情境的翻转课堂教学法。学生课前自主探索闯关学习基本指令与函数,并通过全景课堂提出问题,分享经验;课中分组交流讨论,互助分享,Swift指令优化调试。通过自主探究数字化学习、同伴交流互助解决问题、全班共同分享等方式开展课堂教学。

教学环境及资源准备

苹果平板iPad、Keynote课件、Playgrounds软件、Apple TV同屏。

教学过程

1.翻转自学,课前探究

教师提前在全景课堂学生端布置任务1和任务2,学生自主探究完成Swift第一单元的复习测试通关,尝试探索“函数”单元的关卡,分享到分享圈,并在分享圈留言写出自己的疑惑和感受。

设计意图:尝试“翻转课堂”教学,引导学生养成自主学习的习惯,并在全景课堂分享圈中互相分享、共同进步。

2.Swift课前操导入,巧揭主题

师:上课前,老师来检测一下大家是否还记得我们在上节课说的指令,请听指令:0。

学生合上Pad,轻轻放好。

师:同学们对指令的反应能力很快嘛,也能做到轻拿轻放。再听指令:1。

学生打开Pad,摆放坐好。

师:今天老师要再教大家一套新的指令,请看老师的动作,第一个指令:伸出左手,第二个指令:伸出右手,第三个指令:双手拍一下,第四个指令:双手拍一下,第五个指令:双手拍一下。同学们,如果让你给这一段动作起一个名字,你会怎么叫它呢?

生:拍手指游戏。

师:好,我们大家一起来一遍“拍手指”游戏。

学生跟着教师一起拍两遍。

师:我们用“拍手指”代替了前面一系列动作的名称,大家觉得哪个比较好?

生:我觉得拍手指比较好,因为这个名称比较有趣,而且简单。

师:可以用“拍手指”指令代替前面的五个动作指令,那这个过程叫什么呢?

生:函数。

师:看来同学们课前都在自主探究中认识了函数,那我们一同走进今天的课程《Swift函数及运用》。

教师揭示并书写课题。

设计意图:通过学生可理解的指令动作导入,引导学生初步理解“函数”的含义。

3.初建函数,深入探究

(1)课前探索总结。

教师打开教师端全景课堂分享圈,展示学生课前自主探索的过关练习和留言。

师:同学们在全景课堂的分享圈里的分享老师都看到了,总结一下同学们的疑惑和遇到的问题如下(Keynote同屏):Swift为何会卡住?“函数”如何使用及命名?编程时,如何更加高效?

师:同学们,“函数”到底是什么呢?是否有方法可以帮助提高我们的编程效率呢?让我们带着这些问题一同开始探索之旅。

设计意图:通过总结学生在课前学习中遇到的问题,以生为本,确定本课的重难点,为本堂课接下来的交流讨论做好铺垫。

(2)Swift指令特点分析。

师:同学们还记得这些指令的意思吗?

教师贴黑板展示指令:moveForward( )、collectGem( )、turnLeft( )、toggleSwitch( )。

生:向前走、收集宝石、向左转、切换开关状态。

师:那大家有没有发现,这些指令有什么相同的特点?

生1:都是由英文单词组成,并且第一个单词首字母小写,第二个单词首字母大写。

生2:每个指令最后都有小括号。

教师展示Swift指令特点:英文+首字母大写英文+小括号。

设计意图:帮助学生回顾Swift指令含义,并从中观察到Swift指令的特点。

(3)走进Swift“函数”,流程图分析。

师:课前大家自主探究了“创建新函数”这一关,那我们一起来分析一下Byte行走的路线,谁来分享?

生:向前1步—向左转—向前1步—向右转—向前1步—向右转—向前1步—向右转—向前1步—向左转—向前1步—切换开关。

师:大家分析得都很到位,那我们在这个过程中为了帮助Byte顺利通关,经历了哪些过程?

教师和学生一起概括并黑板展示:明确任务要求—流程图分析—编写Swift指令—调试运行。

设计意图:带领学生一起分析流程图,学习分析路线,将具体路线思维化,培养学生编程思维。

师:我们分析好路线,接下来要将其转化为“Swift指令”,那“右转”的Swift指令是什么呢?我们一起看一看同学们在分享圈里的分享。

教师打开学生分享的“创建新函数”流程图分析及指令截图。

师:我想请一位同学来分享一下,你为何使用turnRight( )函数,你觉得它有什么功能?

生:Playgrounds平台在这一关的提示里给出了turnRight( )向右转的含义,但没有turnRight( )的指令,所以用三个turnLeft( )指令组合为一个turnRight( )。

师:turnRight( )函数简化代替了三次向左转turnLeft( )指令,那向右转的函数如何定义和调用呢?

设计意图:本课重点是掌握创建并调用函数的过程,学生在课前探究、课中交流分享中总结提升,从定义turnRight( )函数体会创建并调用函数的过程。

(4)函数实践,感悟提高。

任务探究:探究“收集、切换、重复”,流程图分析,观察路线有何特点,并编写Swift指令,再运行调试,完成任务3分享。

分层实践:闯过3、4关的学生,根据流程图,修改优化函数指令,截图分享到分享圈,也可进一步探索下一关挑战。

学生自主探究。

师:同学们已经设计优化了这一关的流程图,现在我们来观察分析一下这个路线有何特点?

设计意图:在理解创建新函数基础上,通过趣味任务情境进一步实践探索,提高应用能力。在课前学生自主探究中,不同层次的学生探索能力不同,因此通过“分层实践”进行指令优化与进一步探索。

师:请同学们根据自己刚才的观察,打开Playgrounds将流程图转换成Swift语言,看看小Byte会如何行走吧。

分享圈里,A同学将“向前走1步+收集宝石+向前走1步+切换开关”四个指令看为一个重复模块,并定义tuyixiang( )函数将这四个指令进行重组。B同学将“向前走1步+收集宝石+向前走1步+切换开关+向前走1步”五个指令看为一个重复模块,并定义mot( )函数将这五个指令进行重组,虽然最后1个组合只有四步,但不影响Byte的闯关。

设计意图:在流程图编写后,用Swift语言将之转换为Byte可以执行的指令,并在实践函数的定义、调用、执行的全过程中进一步突破本课的重难点,并将自己的想法截图分享到全景课堂分享圈,全班同学进行互评互学。

4.函数应用与生活,分组分享

(1)任务探究:函数应用与生活。

AB组讨论主题:在“收集、重复、切换”关卡中,统计一下,你们小组闯关的同学,分别使用了几行指令?

CD组讨论主题:在“收集、重复、切换”关卡中,统计一下,你们小组分别给函数起了什么样的名称?函数包含的指令内容相同吗?

EF组讨论话题:你们觉得函数的使用是否提高了编程的效率,为什么?你们觉得生活中哪些比较像“函数”?函数和生活有什么关系?

学生打开分享圈,互相观看分享,每个小组总结后分享小组讨论结果。

小组代表上台分享如下:

AB组:分别用了11行、8行、11行、8行。

CD组:1号同学给函数取名为Jin( ),包含5个指令;2号同学给函数取名为myFunc( ),包含3个指令;3号同学给函数取名为Hxy( ),包含5个指令;4号同学给函数取名为wsd( ),包含4个指令。

EF組:①函数提高了编程效率,因为它把几个重复的指令结合在一起,所以更简便,检查非常方便。②比如有些餐厅把好几个菜都放在一个套餐里,这样的话点菜就会方便一点。

设计意图:学生分组有针对性地讨论后,请小老师上台分享小组总结,充分调动学生互帮互助的积极性。

(2)Swift函数意义。

师:本节课,我们在课前实践探究、课中疑难解惑与进一步探究中,认识到在编程中使用函数使编程更加高效、程序更精简、可读性更强。希望同学们借助学习Swift语言指令,在编程中学习使用函数,锻炼编程思维,并用“函数”思考生活,提高做事效率。

设计意图:学生在课前函数探究中感知,在课中深入讨论实践中认知,在课后讨论交流中总结。

猜你喜欢
流程图指令意图
云的识别指南
一样,不一样
《单一形状固定循环指令G90车外圆仿真》教案设计
自然教育《小蚂蚁的生日会》教案
新机研制中总装装配指令策划研究
不打自招
流程图学习指南
不打自招
太空第一人
be going to与will