用Alice讲故事之《迷惑的袋鼠》

2015-09-19 14:31陈洁钟柏昌
中小学信息技术教育 2015年9期
关键词:路标袋鼠流程图

陈洁++钟柏昌

随着中小学信息技术教育的发展,近几年程序设计和机器人教学已成为义务教育阶段的选修内容。2013版的江苏省新编信息技术教材中,Scratch程序设计教学进入了小学的基础模块,说明在小学阶段进行程序教学已越来越受重视。然而,在小学进行程序设计教学,在实践中还存在一些较为普遍的问题。一方面,如教学目标不明确,教学模式单调,学生信心不足等;另一方面,更注重编程技能的习得,忽略了思维的培养。此外,学生同伴间缺乏交流互动,教师也很难顾全每位学生的个别需求,使学生差异越来越大。

为此,我们开发了《用Alice讲故事》校本课程,以比Scratch更简单易用和形象直观的3D编程语言Alice为编程环境,采用讲故事教学法,充分激发学生的学习兴趣和成就感;并采用Karen Brennan和Mitchel Resnick的计算思维三维框架[1]引领课程目标和内容的设计,培养学生的思维能力;以结对编程作为主要教学策略,培养学生的团队协作能力。

Alice是由CMU已故著名教师兰迪·波许主持开发的一种创新性教学工具。它采用类似Scratch的编程方式,以搭建积木的方式编制程序,故不会出现语法错误;虽然可能会出现逻辑错误,但不会影响程序的执行。Alice采用3D编程环境,实现了程序编写的可视化和形象化,不仅可以帮助学生理解面向对象编程的概念,还可帮助学生了解程序的执行,同时减少可能出现的逻辑错误。作为一种全新的面向对象的程序设计软件,Alice深受学生欢迎。研究结果[2]显示,Alice有如下优点:第一,有助于学生对程序设计概念的理解;第二,能降低学生学习程序设计的挫折感,提高学习程序设计的信心;第三,能提升学生学习程序设计的意愿,增强学习程序设计的乐趣;第四,Alice具有趣味性与易用性。

《用Alice讲故事》校本课程简介

《迷惑的袋鼠》是自编教材《用Alice讲故事》第三模块《故事升级篇》中的第二课。Alice校本教材以编写代码设计动画故事为主线,每个主题都渗透了多个维度的计算思维。该教材一共设置了四个模块:认识篇、故事篇、故事升级篇、事件篇(见表1);每个模块都包含“模仿—半创作—创作”的教学形式,让学生在模仿中学习,在学习中创作,提高学生的创新意识。

教学设计思路

1. 学生分析

本课的教学对象是小学六年级学生。他们前期学过Logo、Scratch程序设计,且有一学期的Alice学习经验,对动画制作方法、流程图都比较了解,上手非常快。在前面Alice的学习中,学生已掌握了顺序、并行、循环、条件等语句的使用嵌套,以及定义方法和内置参数的使用。本课主要是根据故事情节选择适合的控制语句来编写代码,优化代码,从中培养学生的计算思维。

2. 教学目标

知识与技能:了解顺序、并行、循环以及条件等控制语句的使用方法;知道使用内置参数和定义方法来简化代码,使对象动作更合理、更真实。

过程与方法:通过观察案例分析动作,理清动作流程;根据流程图编写代码;根据创意设计稿编写代码完成动画。

情感、态度与价值观:通过动画设计培养学生兴趣及计算思维;通过模拟故事情境,培养学生关注生活、创造生活的热情;通过结对编程,培养学生的团队协作能力。

行为与创新:联系实际,发挥想象力、创造力设计动画;通过设计动画,培养学生解决在生活中或学习上遇到的问题的能力。

3. 任务设计

根据前面教材和学生分析以及教学目标,笔者以故事剧情为主线,为本课设计了由易到难、循序渐进的三种类型的任务(见表2)。其中,封闭任务较为简单,解决任务的方法基本是单一的,涉及的计算思维主要是计算概念中的顺序与并行。半封闭任务难度有所增加,且解决方法不唯一,涉及计算思维的计算概念和计算实践维度。教师可以适当提醒学生采用更简便的方法来完成任务,达到算法最优化。开放任务即创意任务,是指目标开放、方法多样的任务,指在原有半成品和已有故事情节的基础上续写剧情,编写代码。它涉及计算思维的计算概念、计算实践和计算观念三个维度。

教学过程

由于本课设计的任务比较多,且有创意任务,考虑到学生的书面表达能力和时间因素,所以设置了两个课时的教学计划。

1. 故事讲述 导入新课

第一课时笔者用故事导入,边播放动画边讲述故事:一只饥饿的袋鼠出去找吃的,但不知道树林里还是瀑布边有吃的,这时它发现了一个路标。袋鼠很迷惑,想去树林又想去瀑布,于是去看路标上是否有提示……如图1。

图1 袋鼠跳到路标前

设计意图:有研究表明[3],利用Alice编程环境,使用讲故事模式创建计算机动画电影,能有效激发中学生对学习计算机编程的兴趣。本课,以袋鼠找食物为故事主线,激发学生的上课热情,提高课堂效率。

2. 案例分析 分解动作

为了让学生更快、更有效地模仿出案例,引导学生分小组讨论分析:该作品案例中对象的动作有哪些?对应的实现方法是什么?教师以流程图的方式出示,如图2。

图2 动作分析简要流程图

设计意图:通过分析案例,理清动作顺序,师生共同列出流程图,并找出相应的方法和代码,便于学生进行代码的编写。这也是“口语——动作关键词——代码”的转化过程,这种转化的思维与习惯有利于学生把想法更好地表达出来,将思维可视化。

3. 多重任务 结对编程

为使学生间能力互补,并且提高课堂效率,笔者采用了结对编程教学策略。一人作为“驾驶员”操作电脑,编写代码;一人作为“观察员”,负责监视“驾驶员”的工作情况,发现并纠正其操作性和策略性错误。当出现“驾驶员”难以解决的问题,而恰好是“观察员”熟悉的内容时,角色交换。通过结对编程来完成四个不同类型的任务,并在每次任务完成后填写《结对编程过程记录表》,详细记录自己担任的角色和花费的时间,以及组员出席情况、配合情况和任务完成情况。

教师先提出封闭任务一:袋鼠迷惑,四处观望。由于实现方法已在上一环节通过流程图展示,学生完成速度快且准确率高。学生通过结对编程来编写代码、展示作品,修改代码后填写《结对编程过程记录表》。

根据案例动作分析,出示半封闭任务二:袋鼠跳到路标前。这一任务有多种解决方式,且代码结构复杂,有语句嵌套。教师引导学生回忆之前兔子跳动的过程,让学生小组讨论,一起总结出袋鼠跳动的流程图(如图3)。学生在结对编程完成任务时,教师适当引导使用定义方法来简化代码。完成代码编写后,测试与调试代码,学生可能会出现以下问题:定义好的方法播放不显示动作;袋鼠跳动的速度太慢;袋鼠越跳方向越偏,没朝向路标。师生共同寻找解决方法。修改代码后填写《结对编程过程记录表》。

图3 任务二部分流程图

完成这两个任务后,教师继续引导学生讲述剧情,创设新的情境:袋鼠到达路标后,判断路标和袋鼠的高度,如果路标高,袋鼠则往上跳,与路标齐平看上面的提示。以此出示半封闭任务三:判断路标高度,跳起看路标上的提示。

教师先让学生思考:如何判断路标和袋鼠的高度呢?使用什么控制语句能完成效果?流程图怎样编写?总结出采用条件执行语句结构,即If/Else语句来实现并出示流程图(如图4)。同前面的任务一样,学生采用结对编程教学策略完成代码的编写,教师适当引导学生可使用内置参数来优化代码。调试测试代码后填写《结对编程过程记录表》。

图4 任务三部分流程图

第二课时是一个开放任务,让学生发挥创造力和想象力续写剧情,综合运用所学的知识来完成任务。教师出示创意任务四:显示路标提示,到达目的地吃东西。学生先小组讨论设计剧情:当袋鼠跳上去,看见路标上写着……讨论得出方案后,完成创意设计稿的填写,简略设计稿如下。

我的故事情节:

我的流程图:

根据小组续写的剧情及流程图,结对编程完成作品代码的编写,以达到剧情效果。若有技术上的困难,可寻求同学或教师的帮助。教师提醒:请参照《结对编程学习手册》中的结对准则,注意作为“驾驶员”和“观察员”的时间,每个角色所花费的时间不能超过总任务时间的75%。创意任务的测试和调试代码在原有组员调试的基础上添加组间调试,相邻小组测试后提出修改意见。小组再次修改后填写《结对编程过程记录表》。

设计意图:这一环节主要采用了结对编程教学策略。多项研究表明:结对编程技术具有互相监督、互相协商、互相鼓励、互相复查、互相纠错、互相学习、互相信任等激励效应。为了让学生更好地结对编程,笔者在课前发放了《结对编程手册》,包括结对准则、结对小组名单、结对编程过程记录表。每次结对编程后,学生都要把角色分配情况、出席情况、配合情况和任务完成情况等记录下来,便于教师观察、监督和评价。为了让学生更好地设计情节,讲述故事,笔者在创意任务的过程中加入了创意设计稿的填写。要求学生把创意剧情写下来,并进行动作分析形成流程图,把创作过程的思维可视化,形成学习支架以支持程序脚本的编写。

4. 作品展示 评价总结

测试完成后,展示学生作品,师生共同评价,评选出班级最有创意的作品进行展示。

设计意图:评价不仅能激励学生,给学生带来成就感,也能培养学生的审美能力和鉴赏能力。同时,在评价的过程中,学生可以取长补短。

教学反思

本课以“讲故事、设计动画”为主线,在完成不同类型任务的过程中培养学生的计算思维。每个任务都要求学生分析故事情节,并通过流程图来分析对象动作,使学生形成“想法—口语—动作关键词—代码”的转换习惯,把思维可视化。同时采用结对编程教学策略来完成代码的编写,在这个过程中教师引导学生测试和调试代码,使用定义方法和内置参数来优化代码,达到算法的最优化。在完成创意任务时,先让学生完成创意设计稿,续写剧情,并把剧情流程图写出来,让学生养成先规划设计后创作的习惯,形成学习支架,培养学生创意与表达、抽象与建模思维。

在整个教学过程中,学生基本能完成各个任务,能自己发现问题并分析和解决问题。其中,任务一、任务二完成率较高;在任务二中,在教师的引导下,学生基本都使用了定义方法来优化代码;在任务三中,能正确使用内置参数来完成任务的学生占总人数的2/3,没有使用内置参数的学生,经课后访谈了解,主要原因是时间不够;在任务四中,学生的想象力和创造力得到了很好的发挥,大部分作品都采用并行、顺序、循环等为主体结构,也有很多学生使用了定义方法来简化代码。

本课的不足之处:因为整个动画的情节和任务是前后关联的,在前面任务没完成的情况下,将无法完成后续任务,导致部分进度慢的小组越来越慢,跟不上教学节奏,拖累了全班的教学进度。创意设计稿在课上完成,占用很多操作实践的时间,使作品的创作受到一定限制,不能很好地全部呈现出来。

注:本文系教育部人文社会科学研究青年基金项目“义务教育STEM校本课程的开发与应用研究”(项目编号:13YJC880121)阶段成果。

参考文献

K.Brennan and M.Resnick.New frameworks for studying and assessing the development of computational thinking[C].In AERA 2012,2012:1-25.

Bishop-Clark,C.,Courte,J.,& Howard, E. V. Programming in pairs with Alice to improve confidence, enjoyment, and achievement.Journal of Educational Computing Research,2006,34(2):213-228.

Caitlin Kellehen and Randy Pausch.Using storytelling to motivate programming.Communications of the ACM,2007,50(7):59-64.

[美]Laurie Williams,RobertKessler著,杨涛,杨晓云译.结对编程技术[M].北京:机械工业出版社,2004.

(作者单位:江苏常熟市碧溪中心小学 南京师范大学教育科学学院)

猜你喜欢
路标袋鼠流程图
路标
路标
袋鼠
我自己可以做
路标中的学问
袋鼠
看清医改最要紧的两个路标
专利申请审批流程图
专利申请审批流程图
宁海县村级权力清单36条