基于计算思维的App Inventor教学实践
2015-11-25冯巨恒
文 冯巨恒
基于计算思维的App Inventor教学实践
文 冯巨恒
随着信息技术与教育的融合逐渐加深,移动学习开始成为当今一种崭新的教育方式,渗透到人们工作、生活的各个方面,变得越来越重要。对于在基础教育上与时俱进的一线教师,若能够根据个性需求简单、便捷地设计出自己想要的移动教学应用程序,并将其成功应用到实际教学,从而达到令人满意的教学效果,无疑是一件梦寐以求的事情。App lnventor的出现将这一“梦想”变成了“现实”。App lnventor在设计移动应用程序上具有一系列优势,越来越受教师的追捧和学习。笔者作为教学者的身份,结合计算思维的特点,对学习者(一线教师)进行App lnventor的教学实践,引导他们利用计算思维求解实际问题,培养他们的计算思维能力以及创新能力,为他们能开发出更多、更好的移动教学应用程序提供了帮助。
计算思维是当今国内外计算机届和教育界都非常关注的一个热点,它并不是电子计算机普及的产物,而是像人类读、写、算能力一样的基本思维方式。2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真教授在美国计算机权威期刊Communications of the ACM上对计算思维进行了定义:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。[1]为了让人们便于理解,他又将计算思维作进一步阐述:可以“通过约简、嵌入、转化和仿真等方法,把一个困难的问题重新阐释为如何求解它”;是“一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法”;是“按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法”;是“利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法”。由此可以看出,在操作性层面上,计算思维其实就是一个求解问题的过程,其根本目的就是问题求解能力的培养,核心就是求解问题所涉及的算法问题。而程序类设计类课程,例如App lnventor,则集中体现这一点。所以,在对学习者进行程序设计类课程的教学过程中,必须把培养他们的计算思维能力作为核心教学任务,引导他们利用启发推理方式求解问题;把复杂问题的关键环节分解成若干小任务加以处理;从整体把握到细化分解并最终求解问题;将该问题的求解过程进行推广并移植到更广泛的问题中。
App lnventor是Google公司于2010年开发的一种免费的手机编程工具,用户通过该软件能快速地开发Android系统的移动应用。App lnventor于2012年1月移交麻省理工学院,并以MlT App lnventor公布使用。经过几年的发展,App lnventor各项功能变得越来越完善。目前,该软件主要是和教育机构进行合作测试,完全可以在中小学一线教师中进行推广,促进中小学移动学习教育的发展。
App lnventor开发环境主要包含三大作业模块。一是Designer(设计师):用于案例设定,元件布局与元件属性设定。二是Block Editor(块编辑器):通过拼图作业模式进行程序的接合,同时可以操作不同属性的定义元件、控制元件和逻辑元件等进行“程序设计”(当然不用写传统代码)。三是Emulator(模拟器):在没有Android设备时,可用模拟器进行案例测试。
被誉为App lnventor之父的Harold Abelson教授通过一句话概括了App lnventor具有的优势:“App lnventor编写的应用程序或许不是很完美,但它却是普通人都能做的,而且通常是在几分钟内就可以完成。”App lnventor具有如下特点。
1.开发环境搭建方便。支持在线版和离线版。针对中国用户,Google公司推出了中文在线版。在线版采用“浏览器+云服务”模式,无须安装复杂软件,用户只要注册了账号后就可以进行全云端的开发,所有项目都保留在云端服务器,无需用任何移动存储设备单独备份。只要有网络环境和计算机随时随地都可以进行软件开发。
2.开发过程简单,不需要太多的编程知识。App lnventor的界面设计和行为开发都可以通过可视化的能拖放、拼接的模块,像“搭积木”一样完成。使用者的创意在自动转换成代码后都会被封装在这些模块中,无须关注复杂的语法规则。
3.组件模块丰富。App lnventor已经预先设置好了不同类型的组件模块,例如多媒体类、传感器类等,甚至还包括乐高机器人等组件。其中,多媒体类组件功能强大,特别适合中小学教学软件的制作。
4.开发周期短。App lnventor可以在几分钟之内就完成程序的开发。利用App lnventor进行程序开发,只有想不到,没有做不到。
5.支持及时调试。提供了强大的调试功能,调试中代码的变更会自动同步到进行调试的手机或者模拟器中,无须重装应用。
1.App lnventor的教学目标
App lnventor是一种实操性很强的软件设计工具,对它的教学不能只偏重于知识的讲解和技能的示范,更重要的是要培养学习者的计算思维能力和创新能力,引导学习者利用计算思维求解实际问题,并把求解问题的方法进行推广、移植,达到举一反三的效果。故对App lnventor的教学必须明确以培养学习者的计算思维能力以及提高学习者的信息素养水平为最终目的。
2.基于计算思维的App lnventor学习模型
基于计算思维抽象的特点,提出丰富有趣的实际问题,通过App lnventor进行求解,培养学习者的计算思维能力。结合计算思维和App lnventor可视化模块拼接编程特点,构建如图1所示的学习模型。
图1 基于计算思维的App Inventor学习模型
运用该模型进行App lnventor教学,可以是任务驱动式、思维支架式或问题探究式。在教学者创设情境后,学习者首先提出所要解决的问题(用X表示),然后对X进行抽象描述,接着约简和分解X,并模块化有效求解X的思维方法,再通过模块拼接编程的方式尝试求解X,求解过程学习者或独立思考或进行小组讨论、交流,不断地完善求解X的思维方法,直到成功求解为止。最后将成功求解X的思维方法进行推广、移植去求解其他问题(用Y表示),完成计算思维思想的迁移应用。当然,学习者求解问题的过程是要在教学者的指导下进行的,并通过App lnventor实现。这样,可以有效地培养学习者的计算思维,使计算思维真正成为解决实际问题的一种基本能力。
3.基于计算思维的App lnventor教学案例
培养计算思维能力的教育是一种普适性教育,任何类型的学习者都需要。App lnventor是一种非常适合中小学一线教师学习的移动应用制作工具。一线教师作为App lnventor的学习者,他们的抽象逻辑思维虽已经非常成熟,但他们也是首次接触App lnventor,故在教学过程中,教学者可以先把App lnventor的基础理论知识进行讲解,然后分析具体问题的实现思想,结合一些有代表性的实例,让学习者主动参与问题求解过程,从而有效培养他们的计算思维能力。
“垃圾分类”游戏是与现实生活紧密结合的益智游戏,同时在App lnventor设计案例中具有一定代表性。下面以“垃圾分类”游戏为例,分析基于计算思维的App lnventor教学过程。其中,教学者作为教学设计者、组织者、指导者以及促进者,是教学过程的关键。学习者的学习过程如图2所示。
图2 学习者App Inventor学习示意图
教学者创设情景:
(1)有12个垃圾:3个“餐厨”垃圾,3个“可回收”垃圾,3个“不可回收”垃圾以及3个“其他”垃圾。
(2)有4个垃圾桶:餐厨垃圾桶、可回收垃圾桶、不可回收垃圾桶以及其他垃圾桶。
(3)在屏幕上每两秒钟随机出现一个垃圾,把这个垃圾拖放到相应的垃圾桶内,放对了+1分,放错了-1分,每次拖放完毕后显示当前总分。
在教学者的引导下,学习者首先抽象表达所要解决的问题:拖放随机显示的垃圾,判断垃圾是否放对垃圾桶,即时显示分数。接着学习者把问题分解、约简为不同的模块:随机显示垃圾,拖动垃圾的实现,控制显示垃圾的时间,垃圾与垃圾桶的碰撞检测,显示当前分数。然后,学习者利用App lnventor所封装的代码模块实现系统功能:利用图像精灵显示垃圾,随机函数实现随机显示;利用画布的拖放函数实现手指拖放垃圾;利用时钟设置每两秒显示垃圾;利用图像精灵的碰撞检测函数判断垃圾是否放入到垃圾桶里;利用标签显示当前分数;设置2个全局变量记录当前显示的垃圾和当前得分。
在设计师面板中,学习者先把用到的素材(包括垃圾和垃圾桶图片)导入其中,并对素材进行规则命名以及大小、位置等参数调整。然后拖放标签、时钟、画布、图像精灵等组件进行布局设计,设定好各自参数。为保证系统功能的完整实现,学习者必须对模块化方法进行优化,即在模块化方法的过程当中不断地进行回溯、思考,验证结果的正确性,这包括通过定义并调用函数模块的方法实现。在块编辑器中进行模块拼接时,学习者要利用回溯、检错、纠错以及保护的方法不断改善思维方法,调整模块拼接顺序、输入参数等,反复调试程序,直到成功实现垃圾分类为止。如果在求解过程中遇到困难或不懂的地方,学习者除了请教学者外,还可以通过小组合作等方式进行讨论、交流,不断地完善思维方法。学习者利用App lnventor进行模块拼接编码的结果如图3所示。
图3 垃圾分类游戏模块拼接编码
在学习者成功实现垃圾分类游戏后,教学者可以给学习者提出进一步的任务,例如设计“打地鼠”游戏等,以完成计算思维思想的迁移应用,实现对计算思维能力的巩固掌握。
从一开始,学习者就对App lnventor产生了极其浓厚的兴趣,继而转化为学习的动力。课堂上,大部分学习者能在教学者的指导下通过小组合作等方式顺利完成任务,在尝到成果与乐趣的同时,计算思维能力也得到了有效培养。在课后,他们能持续地关注并投入到App lnventor的更深层学习和研究中。根据部分学习者的反馈,他们能利用App lnventor开发一些很有创意的教学软件应用到实际教学中,并取得了一定的成绩。
计算思维的本质是抽象和自动化。基于计算思维的App lnventor教学,不仅仅是让学习者掌握一门软件设计工具,而更重要的是培养学习者的计算思维能力,引导他们利用计算思维求解实际问题。
[1] Wing J M. Computational thinking[J]. Communications of the ACM,2006,49(3):35
[2] 郭守超,周睿,邓常梅,狄长艳,周庆国.基于App lnventor和计算思维的信息技术课堂教学研究[J].中国电化教育,2014(3):91-96.
冯巨恒,本科,中教二级。广州市越秀区教育信息中心,510080