孙颖燕
《江苏省义务教育信息技术课程纲要(2017年修订)》指出,课程实施要以学生为中心。教师要使用多元的教学策略,为学生创设真实的问题和情境。教师应当站在儿童的立场思考学生需要什么、学生的潜在误解可能是什么,从而决定“教什么”;思考儿童与成人学习特征的差异,决定“如何教”。下面,笔者以《生活中的算法》一课为例,尝试从儿童的立场挖掘教学目标,以结果为导向展开教学,以求达到良好的教学效果。
● 案例解析
1.“算法是什么?”
对于作为开放性命题的《生活中的算法》一课,每位教师都会有不同的解读。百度百科对算法的定义是:“算法指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。”笔者尝试进行生活化的解读,即将生活中的算法解读为生活中解决问题的策略。经典算法有排序算法、查找算法、冒泡排序、二分查找等,但其难度不低,仅用一节课的时间来理解并应用,显然不适合五年级的学生(他们才开始学习程序设计,对模块化编程还处在一知半解的阶段)。于是,笔者想到了学生都喜欢的一个游戏——石头剪刀布。“石头剪刀布”游戏就是算法,解决的是学生常常遇到的随机选择问题。这个案例也恰好可以说明生活中处处是算法,算法并不只是数学课上的运算,这种对算法的感性认识是学生迫切需要的。于是,笔者从“石头剪刀布”游戏入手,设计了《生活中的算法》一课。
2.“流程图,我不会画……”
笔者将教学目标制订为:感受算法在生活中的表现形式,形成对算法的感性认识。能用语言描述石头剪刀布的机制,再用表格穷举每一种情况和结果,在根据表格绘制流程图后,在图形化编程软件中呈现结果。
在课堂教学中,学生从文字描述到表格列举进行得都比较顺利,基本都能将表格填写完整。如图1所示,如果直接以这张表格为基础画流程图,会比较烦琐。为了简化流程图,笔者引导学生对表格进行了优化,如图2所示。由于多数学生都能看懂简化后的表格,于是笔者出示了流程图,如下页图3所示。
此时,问题出现了。学生对流程图的了解差距很大,有的学生很快就完成了流程图,有的学生则一头雾水,最终有半数的学生没有完成这项任务。完成任务的学生在汇报时也遇到了瓶颈:不知如何“读”出流程图。由于在这里耗费了许多时间,后面的教学任务也没有完成,笔者的第一次试上以失败告终。
回顾整节课,最大的问题还是没有站在学生的角度去思考学习的最佳路径。对学生来说,生活中描述算法最常用的方式是语言描述,但笔者对语言的描述并没有加以细化,弱化了语言、表格、文字之间的联系。另外,笔者在难点“算法的优化”这一步没有从文字开始就加以强调,学生对优化后的算法描述没有深入认识;在基础并未打好的情况下,对学生真正需要学习的弱项“流程图”没有给予讲解就急于绘制;而这样困难的任务笔者仍然让学生独立完成,没有进行小组合作学习……了解到问题所在后,笔者对教学流程进行了修改并尝试了第二次试上。
这一次,笔者从语言描述开始就渗透“如果……否则……”的逻辑,从文字的每一句到表格的每一行,都让学生用更靠近计算机语言的方式来描述。此外,笔者将学生分成两人一组,每一个任务都在小组内完成。学生填写完表格后,笔者也进行了详细的引导。
师:文字描述可以优化、精简,表格可以吗?这种表格哪里可以优化呢?
生:根据文字描述,我们可以把平手的那3行合并起来。
师:(出示优化后的表格)是这样吗?
生:是,因为结果一样,而且过程类似,所以可以合并。
师:不管是文字还是图表,我们都要力求更优。如果要从表格直接写成程序,有点困难。“流程图”可以作为一个桥梁来使用,它更符合程序的逻辑。(出示如图4所示流程图)
在流程图里,用圆角矩形表示开始和结束,用菱形框表示判断,在菱形框里写上判断的条件。判断一般有两种结果:符合条件、不符合条件。我们用平行四边形表示输出。举个例子,对于要不要带鞋套的问题,你能用刚才读表格的方法读一读这个流程图吗?
生:如果明天下雨,那么需要带伞,否则不带。
师:现在难度升级,你们小组能把优化部分的表格转换成流程图吗(如图5)?
师生讨论,填写优化部分,并用“如果……否则……”的逻辑读出流程图。
这一次试上学生能够顺利地完成流程图任务,并展示交流。在图形化编程软件中,也能够借助流程图完成程序,展示成品。
3.“再厉害的算法也是我们写的!”
如果学生对算法的认识只停留于“石头剪刀布”的游戏,那这节课反而把学生的视野缩小了。于是,笔者对“石头剪刀布”游戏进行了拓展。
师:大家刚才测试游戏,胜率如何?想不想做“常胜将军”?正好小猫写了一个算法,愿意接受挑战吗?操作员操作,记录员记录,提示语:知己知彼,百战不殆。
学生打开“小猫的挑战”小程序,开始比赛。
师:你有什么获胜窍门?
生:我发现小猫是有规律的,只要摸清了规律,就可以赢了。规律是:石头、石头、剪刀、布、布,这样循环下去。
师:果然印证了我们这句话——“知己知彼,百战不殆”。通过学习,我们可以摸清楚对手的规律,提高胜率。可是,你有没有想过,猫也会学习你的出拳规律呢?算法也会学习,算法的学习叫做“机器学习”,它是人工智能的核心。阿尔法围棋(AlphaGo)是第一个击败围棋世界冠军的人工智能机器人,它的主要工作原理就是机器学习。你认为人类大脑和机器学习算法哪个更厉害呢?
生1:我认为算法更厉害,因为它算得更快,能赢围棋冠军。
生2:我认为人类更厉害,因为人类可以写出更厉害的算法去打败算法。
师:是的,算法很强,但是再好的算法,也是人类写出来的。今后算法之路怎么发展,还得看你们的表现。
● 案例反思
1.探童心,择童趣
开放性课题的情境设计究其根本,还是在探讨“教什么”“为什么要教”。在课前学生对“算法”这一概念是模糊的,甚至是有误的。从这样的学情出发,教师应该在让学生知道算法的准确定义后还能引导其看到算法最朴实的一面,让学生能在下课后、在生活中找到算法的影子,即在生活中,算法存在于哪里,运用到哪里,如何优化算法提高效率。教师在组织教学内容时,应覆盖这些方面,再从中选择教学重点,引导学生体验、经历与思考等。具体的案例不妨到学生中间去找,到他们感兴趣的游戏、书本、话题里去找,站在兒童的角度,找到他们感兴趣的算法。
2.思童心,择童径
教师在思考“怎么教”时,不妨换个角度,剖析自己是如何学习的,进而感受学生的学习路径。在组织教学时,笔者常常会思考:如果我是学生,怎么学会比较舒服?最合适的教学流程恰恰是最优的学习过程。教师作为学生的引路人,需要靠近学生的童心,为学生制订高效的学习路径,让领悟和收获真正发生,让学生在学习中不走弯路,少走弯路,获得真正的理解。
3.感童心,展童眼
《江苏省义务教育信息技术课程纲要(2017年修订)》指出,信息技术课程内容的选择要体现基础性和时代性,应充分发挥信息技术本身的优势,拓展学生的视野和活动范围,促进他们参与信息化社会活动,了解与体验现代信息技术发展的最新成果。所以,笔者设计了“人机对战,感受AI”活动,让学生的学习突破游戏的小框架,引导学生在活动中感知人工智能中机器学习的内涵,了解相关原理,进一步加深学生对算法的理解和思考。
信息技术课堂不能止步于概念和技能的讲授,应站在儿童的立场思考“为何教”“教什么”“如何教”,在润物细无声中,让学生习得知识,发展思维,感受信息技术的魅力所在。