毛澄洁 项杰庭
App Inventor简介
App Inventor是一个基于云端的、可拖曳的手机应用软件开发环境。它将枯燥的编码转变成积木式的拼图,使手机应用软件的开发变得简单而有趣。即使不懂得编程语言,也可以开发出属于自己的手机软件,具有零基础、无门槛、组件多、功能强和出错少等特点,此外还支持乐高NXT机器人,想要用手机控制机器人的时候,只需要使用按钮、文字输入等基本元件即可。
最初的App Inventor由Google实验室于2010年7月推出。此后于2011年8月对外开放源代码,随后交由麻省理工学院移动学习中心(The MIT Centre for Mobile Learning)开发,于2012年3月对外开放使用,并更名为MIT App Inventor。2013年12月3日,App Inventor 2(简称AI2)问世,其新版主页口号是“随身的编程工具,尽情发明吧”(Your idea, Your design, Your apps, Invent Now)。App Inventor工作模式与测试示意图如右图所示:
App Inventor具有三种工作方式:①设计师(Designer),主要完成界面设计,所有开发中需要的组件都可以从Palette的组件组中拖入Viewer中,可以从Compents看到所有组件,并在Properties调置其属性。②块编辑器(Blocks),主要是通过拼图方式定义程序的执行动作,将程序的逻辑链接,通过不同属性的方法定义组件、逻辑组件等执行过程,并进行逻辑设计。③模拟器(Android Emulator),主要功能是如果在编程过程中或没有安卓设备的情况下,可先用模拟器进行测试。
基于计算思维能力培养的App Inventor课程设计原则
目前国内有近10所高校开设了App Inventor课程,但在中学开设相关课程的却很少。针对中学生开设App Inventor课程,尚存在许多课程与教学论问题。我们结合中小学信息技术教学经验与App Inventor的研发目标——使人们在移动通信的世界里成为创造者,而不仅仅是消费者,提出了中学App Inventor课程的如下设计原则。
1.兴趣原则
现代人的生活几乎离不开手机,手机的功能也越来越丰富。适合App Inventor的课程素材来源广泛,选取源自学习与生活的课程内容,既能够帮助学生制作自己喜欢的手机软件,又能够让学生体验软件开发的创造乐趣。
学生每天都在用手机中的App程序,对于能够制作出App程序感到十分神秘。通过学习App inventor,将感觉到App inventor的离线环境搭建、界面设计、积木代码搭建和程序测试等内容都是有趣的,很好玩。
2.基于计算思维的能力培养原则
“授人以鱼不如授人以渔”,开设App Inventor课程,应该立足于能力的培养。在App Inventor课程培养的诸多能力之中,计算思维能力是核心。培养计算思维能力首先需要关注基于问题解决的教学,教学问题应该从生活中来,最终还要走向社会。其次要关注程序设计的工程思想与方法。
3.任务驱动原则
如果要将课程内容分解成系列的活动模块,教师需要进行必要的铺垫,尽量安排学生自主完成活动模块。在活动与实践过程中注意引导学生交流活动经验。每节课都根据项目内容的不同,要求学生撰写文稿,主要是记录自己学习过程的问题与感想,籍此反思学习过程。
根据上述App Inventor课程原则,该课程应该包括四个主要环节:①离线开发环境的搭建;②体验开发流程;③学习基于问题解决的算法与程序等计算思维;④制作自己喜欢的手机应用软件。
教学设计、实施与反思例举
依据上述课程原则,我们开发出了高中App Inventor课程,并在北京景山学校高中一年级进行了教学试验。下面仅以其第一节课为例来说明课程的设计与实施情况。
第一节课的主题是“Talk to me:Your first App Inventor app”,旨在帮助学生编出能让手机说话的软件,课题简单却易激发学生的兴趣。我们将学习任务分解成三个活动,循序渐进,结束时学生能够对App Inventor的三个工作界面和开发过程有一个比较全面的了解,知道如何用这个编程软件。
1.资源准备
(1)App Inventor 2离线开发包。
(2)离线环境搭建和环境启动说明文本。
(3)学习卡片,要求学生从以下两个方面撰写“我的第一个APP应用程序开发感想”,200字左右。包括对App inventor的认识与感觉、第一次完成App的感想和准备制作的考核作品。
2.教学流程设计
(1)App Inventor简介。教师介绍课程内容、课程要求、考核方法以及App Inventor的发展情况及特色。让学生了解课程内容与目标,了解App Inventor的特点。
(2)离线环境搭建。采用演示+文本资料的方式,带领学生一步一步地进行离线环境的搭建、测试、安装、确认环境设置。让学生体验离线环境搭建的过程,了解复杂系统搭建的流程并提供有成就的体验。
(3)启动离线环境、熟悉基本环境。采用演示+文本资料的方式,在启动离线环境,新建项目,并对了解 “Designer”、“Blocks”界面有初步认识。让学生动手准备自己用的环境,有一切尽在掌握之中的感觉。
(4)制作自己的第一个App应用程序。为了体验App Inventor的强大功能,可以先做一个最简单的App来进行体验,这是用户需求。接着教师演示了自己手机上的Talk To Me程序功能,并提出问题:App的功能是什么?界面上有什么?学生自学Talk To Me Part 1的PDF文档,自主进行程序制作。体现了一切开发源于实际需要及基于计算思维的软件开发的流程:用户需求—软件开发需求—软件功能定义(选用什么组件也需要考虑)—界面设计—代码设计—测试、调整—进一步的功能拓展—二次开发—软件使用说明。endprint
(5)启动模拟器,测试自己的程序。教师演示如何启动模拟器,学生启动模拟器后测试自己的程序。教师提示学生有没有需要改进的地方,并给出新的自学文档,要求学生根据自己的修改要求,参考教师给出的文档,修改完善自己的程序。这样,让学生掌握适时测试自己程序的模拟器,能够增强学生的成就感。在体验功能时产生进一步需求,这是二次开发的基础。
(6)提出改进的需求,改进程序。应该使学生明白,手机应该想说什么就说什么,而不是只会说一句话。教师给出适当的帮助文档,让学生在解决问题时有的放矢。
(7)交流共享与本课小结。2~3名学生谈自己如何改进程序,用到了什么新的组件、属性和方法。通过交流共享,能够复习学过的内容,互相借鉴。教师小结能够带领学生当堂回忆所学内容,起到及时巩固的作用。
(8)作业提交。教师演示如何下载项目的源文件:Talk To Me.aia,如何打包下载可以安装到手机上的Talk To Me.apk。完成第一次接触App的感想短文并提交。通过保存提交作业,使学生一节课的努力得到评价与认可,增强了学生的成就感。学生通过撰写每节课的学习文档,养成随时记录的好习惯。
3.实施情况
在实施上面的教学设计时,应注意从用户需求出发,逐步细化,让学生参与到需求的提出与设计中来,学生学习的积极性高,特别是在学生进行模拟测试时,因为看到了自己的模拟程序,都表现出异常激动与自豪。
结束语
著名教育家陶行知先生有一句教育名言——处处是创造之地,天天是创造之时,人人是创造之人。今天的大数据时代为这种教育理想的实现创设了有利的条件。App inventor课程能够激发学生的创新意识,探索App inventor课程与教学,对于创新传统教学、提高学生的信息素养具有重要意义。
参考文献:
[1]Wing J M.Computational thinking[J].Communications of the ACM, 2006,49(3).
[2]董荣胜.计算思维及计算机导论[J].计算机科学, 2009,36(4).
[3]牟琴,谭良,周雄峻.基于计算思维的任务驱动式教学模式的研究[J].现代教育技术,2011(6).endprint