MIT App Inventor进课堂所面临的问题浅析
2015-09-10熊英
熊英
MIT App Inventor简介
传统的编程语言是比较抽象化的,而中小学生思维大多处于形象思维向抽象思维过渡的阶段,所以对抽象的编程语言是望而生畏。在中小学,传统的编程语言教学就呈现出难度大、兴趣低、枯燥乏味等特点。那么结合中小学生的学习特点,一些有趣的、可视化的编程软件应运而生,像Scratch、MIT App Inventor等。这些可视化、模块拼接软件的诞生简化了学生写代码的过程,也在无形中激发了学生学习编程语言的兴趣。对中小学中开设Scratch课程的研究已经非常多了,而MIT App Inventor是最近两年兴起的,后者现在一般被引入高校的教学中,而在中小学开设专门课程的研究还相对较少。
笔者认为,相对于Scratch,MIT App Inventor因为是与移动设备,如手机、Android平板等学生日常接触到的电子产品联系,所以其对移动学习的支持度更大。同时,在MIT App Inventor上制作的小软件更容易让学生产生成就感。因此,笔者就MIT App Inventor引入到中小学课堂进行了一定的思考。
MIT App Inventor是由Google公司开发的一个致力于可视化编程而打造的平台。现在,平台已经升级到AI2版本,并且汉化版本已经在投入使用。AI2中除了新增一些组件外,加强了某些组件的属性和事件。同时,AI2的模块也区分得更清楚,主要分为设计视图和代码视图,如图1、下页图2所示。设计视图主要负责可视化界面设计,而代码视图则通过积木式的代码块实现各个控件的交互。
从AI1到AI2最大的变化应该是语言的变化。MIT App Inventor一开始设计时是不支持中文的,而汉化版出来后,相信会有更多的中国学生愿意接受,而且年龄的限制性也会降低。
MIT App Inventor平台特点
1.在线开发
网络已经融入到日常的生活,现阶段的中学生算是IT土著。MIT App Inventor的“在线开发”功能提供了随时开发的可能。现阶段,用户只需要注册一个邮箱账号,就可以访问服务器开发小软件。
2.趣味性
不少学生以前堆过积木,MIT App Inventor开发平台的理念就是利用积木式形式开发小软件。学生只需要拖动需要的部分到工作面板中,通过合理的组合就能实现某些功能。同时,不同颜色的积木预示着它们不同的功能,如黄色的代表控制、蓝色的代表数学等。某些小的模块只能在相应的模块之间拼合,而与另外一些模块则不能拼合。同时,效果是可以立即查看的。学生通过虚拟机或者是Android手机都能实时观测软件的效果。
3.简单易操作性
之前比较流行的Scratch其实也是运用积木块的形式,号称“零基础”,几分钟就能学会编程。MIT App Inventor也是建立在这种思想之下的,让更多的人更早地接触和参与到小软件开发的队伍中来。只要拖动某些组件,就可以完成某些意想不到的效果。同时,可视化的设计界面能让学生更加直观地看到变化后的效果。
4.多样化接口
MIT App Inventor现阶段除了开发出APK小程序安装到安卓系统中之外,它本身还可以与机器人对接。机器人是中小学一直都在研究的项目,很多教师在机器人研究方面已经达到一定高度。在一个平台上既可以开发APK小软件,又可以学习机器人方面的知识,这样平台的实用性大大增强。
MIT App Inventor本身所具有的这些性质,让学习者的年龄不再成为问题,小学生也能简单地开发某些小软件。它主要是建立在兴趣的基础上,让学生更早、更简单地拥有编程思想。
课程开设中面临的问题及解决策略
既然说了MIT App Inventor很简单,很适合学生学习编程思想,那么是不是很简单地就能将其引入到课堂中呢?答案是否定的。课堂中引进MIT App Inventor还要克服以下几个困难。
1.服务器搭建
MIT App Inventor平台现在已有离线版,只需要安装离线版到某一台服务器上,将其发布出去后,通过访问其IP地址或域名地址就可以登录到平台上。不过有一个限制,由于是在校内搭建的,所以很多服务器只限于校内访问。浙江师范大学附属中学的服务器可以访问,但无法导出较大的项目。MIT(麻省理工)的beta版服务器在导出较大文件方面有优势,不过在访问的过程中,时常会出现网络连接问题,导致做好的项目无法保存或者是无法及时导出来。所以,一个好的MIT App Inventor平台服务器搭建还是有相应难度的,同时,访问量的增大也会给服务器增加更多的问题,服务器维护将是个持久的问题。
服务器搭建问题不应该落实到每所学校,毕竟搭建和维护的成本也不低。Google公司如果为了推广MIT App Inventor的学习,就应该在国内不同地区多设立几个服务器平台,以解决现阶段网络堵塞、服务器瘫痪等 问题。
2.硬件设备配置
现阶段很多学校都有开设机器人课程,学校也购置了一批机器人装配,有的学校还有专门的机器人实验室。之所以花大力气去做这件事,其中一个很大的原因是学生学习机器人后可以参赛,这些竞赛是教育部门认可的。而MIT App Inventor则有些无力,它是不久前从国外引进的。虽然2014年举办了第一届MIT App Inventor作品赛,可是举办单位是Google公司,不是教育系统的相关单位,参赛者即使拿到了奖也感觉没什么分量。基于上述原因,可能很多学校不愿意花时间、精力和物力去研究MIT App Inventor,特别是一些基本设备本来就不充裕的学校。
由于MIT App Inventor本身的硬件设备是Android系统的手机或者平板电脑,但很多学校是禁止学生带手机的。学校自己配置的手机可以有相应的配置,但是也免不了有些学生会借助设备上一些通讯、社交软件,看小说等,也许只是玩了几分钟,但是对学生的心理影响可能会持续一天。所以,如何说服学校购置一定数量的Android系统手机或平板电脑是一个大问题,同时硬件设备管理也是一个值得研究的课题。
3.平台自身完善性
MIT App Inventor平台现在看起来结构是非常清楚的,编写一些小的程序也是很简单的。可一旦要编写比较大的程序,平台上加载的速度就非常慢,甚至大一点的程序都保存不了。同时,大程序中的代码都用积木堆叠起来的话,会显得代码太多、太乱,有时候如果改了某一个地方,保存之后很可能下次再测试的时候,仍发现这个修改的地方没有被保存。如果一个程序中的相同组件较多,那么给它们添加事件时需要一个个添加,而不能有类似于循环代码一次性写完所有组件的事件。笔者在辅导过程中,有学生反馈,代码块拼接的程序其实并不简单,有时候会很辛苦,而如果用程序语言编写可能会更简单。所以,笔者觉得修改后的平台不一定都使用代码块拼接,学生也可以选择写写简单的代码,积木块和代码结合的方式适应不同年龄段的学生。
4.教学设计及评价
APK手机小软件设计要兼顾到学生的认知水平,所以教学设计既要保证有趣,又要保证在学生能力范围内。MIT App Inventor的教学方法主要是任务驱动,好的任务是学生学习的重要支撑。因为MIT App Inventor本身比较新潮,很多教师可能还没有接受过专业的培训,即使接受过培训也没有相应的教材。针对这些问题,笔者认为Google可以加大培训力度和广度,在相应地区设立培训点,专门对教师进行培训,并且对培训教师还要进行一定程度的学习检测,发放培训合格证明,以证明该教师具有开设该项课程的知识基础。
教学评价也不再局限于学生的最终成果,因为学生在学习的过程中发现问题、解决问题的能力相对来说更为重要,所以评价方式最好是过程性评价与成果评价相结合。如何真正做到过程性评价,笔者认为应在平台上相应地记录学生在每节课中有什么疑问,解决了什么问题,同时教师还可以考查学生在课堂上的参与度。当然,这也是需要学生配合才能完成的。最后的成果评价相对来说要简单些,只要明确评价的统一标准,最后的评价也会相对公平。过程性评价和成果评价的综合,强化了以学生为本的评价理念。
MIT App Inventor教学案例简析
现阶段将MIT App Inventor课程引入到中小学课堂的研究较少,大多数是基于兴趣原则、任务驱动原则、计算机思维训练原则进行的教学设计。下面以一位教师的教学实例为例,简单分析一下教学的实施过程、教学效果。
1.案例呈现及效果浅析
该案例以打地鼠的小游戏设计为载入,教学过程大致如图3所示。
通过图3可知,该教学案例主要是基于任务驱动的原则设计的。教师在整个教学过程中充当引导者、协助者、辅导者等多重身份,学生则是学习的主体,他们在教师的引导下学习、讨论,独立完成整个游戏设计过程。在整个过程中,学生的思考、讨论交流、尝试都推动着问题的解决与完善。
基于上述案例的教学设计,教师更容易实现教学,让学生主动参与到学习中尝试解决问题。学生在教师的引导下实现具体问题的抽象化、模型化,锻炼了抽象计算机思维,同时也让教学的过程充满了师生互动、生生互动。学生每实现一个小的目标都能看到实实在在的成果,无形中增加了他们的成就感,而学生越有成就感,就越容易对所学的知识产生兴趣,从而越愿意花时间和精力去进行深层次学习。由于师生之间的互动促进了知识的深入挖掘,生生之间的讨论加深了对问题的理解,所以学生的自主学习促进了计算机思维的形成。
2.教学设计的几点思考
上述的教学案例只是一个个案,针对的问题也比较具体,如果扩大到整个的MIT App Inventor的教学模式上,则需要进行一定的变通。
(1)创设学生熟悉的教学情境
还是以刚才的打地鼠游戏为例,如果教师直接说本节课要制作一个打地鼠的小游戏,学生一开始可能就会有种畏难心理,而且也不排除部分学生没有玩过这个游戏。所以,有必要在上课的前几分钟让学生体验一下打地鼠游戏,游戏程序可以是教师自己设计好的,也可以是像淘宝上经常出现的“打地鼠,抢红包”的程序。学生在玩的过程中,就能结合已有的经验和现有的实践知道打地鼠游戏需要遵循哪些规则,在设计过程中要实现哪些功能。
(2)教师适时的引导
初中生的自学能力还是有限的,有时候教师设计的任务看上去很简单,但学生也不一定能够达到预期目标。而且MIT App Inventor中涉及的编程思想对初中生来说还是很有难度的。教师在教学设计的过程中,要将目标细致化、简单化,并且对学生很难理解的思维转化过程加以引导。教师不用一步步地教学生怎么去设计界面、抽象化模型,而是要让学生在引导下慢慢尝试,发现问题,解决问题。
(3)分层次任务设计
由于一个班里的学生的水平有一定的差异,所以不可能让所有学生都达到同样的目标。为了满足学习能力强的学生深入学习的需求,除了让他们达到基本的教学任务外,还可以在自主设计任务环节,引导他们根据自己的想法,添加或者改动某些环节,使得整个游戏更加贴近学生的自主创造,这样学生就更有兴趣和成就感。例如,在打地鼠的游戏中,学生可以修改下程序,如每次点击地鼠的时候,计算机发出地鼠叫声;没点击到的时候,计算机就发出“快点我”的叫声;每次点击错了,游戏得分就相应减少,等等。
总之,MIT App Inventor本身虽然是新兴事物,带有挑战性和尝试性,但是接受或是不接受在每位教育者心中都会有一架天平。笔者觉得MIT App Inventor自身的优越性应该被信息技术教育者所接受,至于真正开设一门课程后的成本问题和课堂管理问题,则是后续需要探究的问题。当年引入机器人进课堂时,相信很多教育者也是抱着尝试的心态的,那么何不也抱着尝试的心态接纳MIT App Inventor呢?