編者按:在科技發(fā)展日新月異的今天,信息技術(shù)教學(xué)已經(jīng)遠(yuǎn)離了開、關(guān)機(jī)還需要反復(fù)講解的時(shí)代,三歲孩童熟練地?cái)[弄著iPad已非奇事。自策劃了“Scratch來了”這一專題之后,編輯深刻感受到研究程序語(yǔ)言的老師的可愛,他們的執(zhí)著、他們的探索,使得程序教學(xué)不再那么枯燥,煥發(fā)出勃勃生機(jī)。因此,雜志特別策劃了這一專欄,將陸續(xù)刊發(fā)一些程序教學(xué)領(lǐng)域有代表性的教學(xué)實(shí)踐。也期待更多老師投身到程序教學(xué)中去,通過自身的踐行,推動(dòng)程序教學(xué)的復(fù)興。
● 什么是MIT AppInventor
AppInventor的中文意思是“應(yīng)用程序發(fā)明家”,是谷歌公司在實(shí)施谷歌實(shí)驗(yàn)室(Google Lab)項(xiàng)目中的一部分,稱為“Google AppInventor”。Google AppInventor是谷歌公司致力于完全在線的可視化編程而打造的一項(xiàng)Arduino手機(jī)應(yīng)用程序開發(fā)工具。當(dāng)時(shí),該項(xiàng)目的負(fù)責(zé)人Hal Abelson是麻省理工學(xué)院的一位計(jì)算機(jī)科學(xué)教授。2011年,受到蘋果公司的影響,谷歌公司決定廢棄大批的側(cè)枝研發(fā)項(xiàng)目專注于發(fā)展手機(jī)移動(dòng)領(lǐng)域的技術(shù)和應(yīng)用平臺(tái),其中就包括Google AppInventor項(xiàng)目。2012年,麻省理工學(xué)院(MIT)正式接手谷歌公司的AppInventor項(xiàng)目,將其更名為“MIT AppInventor”,并繼續(xù)進(jìn)行研發(fā)且對(duì)公眾開放使用。MIT AppInventor的官方開發(fā)網(wǎng)站:http://appinventor.mit.edu/,如圖1所示。
目前,MIT AppInventor第二版(簡(jiǎn)稱:AI2)已在內(nèi)測(cè)階段,并且支持應(yīng)用程序在手機(jī)和平板上的開發(fā),其內(nèi)測(cè)網(wǎng)址為:http://ai2.appinventor.mit.edu/,第二版掃描二維碼可以下載,如圖2所示。
● MIT AppInventor的特色
1.在線開發(fā)功能
MIT AppInventor應(yīng)用開發(fā)平臺(tái)的“在線開發(fā)”功能是其一大特色。該開發(fā)平臺(tái)是基于一個(gè)網(wǎng)站的形式架設(shè)在谷歌服務(wù)器上的;用戶只需注冊(cè)一個(gè)Google ID(即谷歌郵箱的賬戶)和可以訪問谷歌服務(wù)器的網(wǎng)絡(luò)就可以隨時(shí)登錄該平臺(tái)進(jìn)行應(yīng)用程序的開發(fā),而用戶創(chuàng)建的應(yīng)用程序工程都將保存在該平臺(tái)上(或谷歌服務(wù)器上)。只要有網(wǎng)絡(luò),用戶就可以隨時(shí)隨地把握突然閃現(xiàn)的靈感,并進(jìn)行設(shè)計(jì)以開發(fā)相應(yīng)的應(yīng)用程序。
MIT AppInventor第二版開發(fā)網(wǎng)站則可以直接在平板電腦,甚至是手機(jī)上開發(fā)App軟件(即應(yīng)用程序),但前提是必須安裝有谷歌服務(wù)器組件,如圖3所示。
2.可視化設(shè)計(jì)界面
MIT AppInventor吸取了VisualBasic(VB)的控件式界面設(shè)計(jì)思想。在MIT AppInventor的設(shè)計(jì)界面中,用戶基本上用鼠標(biāo)就可以實(shí)現(xiàn)程序界面的設(shè)計(jì),與VB的設(shè)計(jì)界面十分相似,左側(cè)“Palette”為所有組件面板,包含了基本組件、媒體組件、傳感器組件、屏幕布局組件、樂高機(jī)器人組件等,而且這些組件都已經(jīng)封裝好了。
圖4是MIT AppInvnetor的應(yīng)用程序設(shè)計(jì)界面。中間“Viewer”為屏幕視圖,顯示安卓手機(jī)上應(yīng)用程序中各組件的位置布局情況。中間“Components”為組件欄(顯示已添加的組件),顯示當(dāng)前屏幕中添加的組件。右側(cè)“Properties”為組件屬性欄,可設(shè)置該組件相應(yīng)的屬性。右上角“Open the Blocks Editor”為功能面板,用于定義組件的動(dòng)作。
3.積木式編程界面
對(duì)許多人來說,開發(fā)軟件的使用本身并不難,困難的是掌握該軟件的編程語(yǔ)言。MIT AppInventor的積木式編程界面則正是針對(duì)這一現(xiàn)象而設(shè)計(jì)的,降低了技術(shù)門檻。即使是中學(xué)生或者小學(xué)生,只要有靈感就可以進(jìn)行程序開發(fā)。
AppInvnetor的編程界面中,有三類積木面板,從左到右分別是:Built-In(標(biāo)準(zhǔn)組件)、MyBlocks(自定義組件)、Advanced(進(jìn)階組件),如圖5所示。
4.在線模擬器
MIT AppInvnetor平臺(tái)還提供了在線模擬的功能。在完成編程之后,可以點(diǎn)擊右上角的“New emulator”按鈕啟動(dòng)模擬器,再點(diǎn)擊“Connect to Device”按鈕將程序載入已啟動(dòng)的模擬器中,用戶就可在模擬器中調(diào)試應(yīng)用程序,如圖6所示。
● MIT AppInventor典型范例
MIT AppInvnetor的優(yōu)點(diǎn)之一是通過幾個(gè)簡(jiǎn)單的控件和相應(yīng)的電子積木的搭建,就可以實(shí)現(xiàn)一些有趣的應(yīng)用程序。以下的案例“小鋼琴家”,通過7組Button(按鈕)和7組Sound(聲音)組件就可以模擬鋼琴的7個(gè)音級(jí),如下頁(yè)圖7、圖8所示。
在下頁(yè)的圖8中,“Screen1.Initialize”是指Screen1(屏幕1)的初始化事件,里面嵌套了foreach循環(huán)語(yǔ)句分別對(duì)7個(gè)Button的Height屬性和Weight屬性進(jìn)行初始化設(shè)置;整個(gè)“小鋼琴家”程序的核心是分別用7個(gè)Button的Click事件分別控制7個(gè)音級(jí)聲音的播放。可以看出,作為一款類似的圖形化編程語(yǔ)言,其界面與Scratch類似,更加接近于Ardublock。
● MIT AppInventor的教學(xué)策略
MIT AppInventor的教學(xué)可以放在Scratch之后,VB之前。學(xué)生在Scratch的學(xué)習(xí)中,已經(jīng)開始熟悉和掌握程序設(shè)計(jì)的幾種基本結(jié)構(gòu),形成編程的基本意識(shí)。而AppInventor的應(yīng)用程序開發(fā)更貼近生活和實(shí)際應(yīng)用,可讓學(xué)生的創(chuàng)造性思維在學(xué)習(xí)Scratch的編程經(jīng)驗(yàn)基礎(chǔ)之上,有更高的鍛煉和發(fā)展空間。與此同時(shí),與VB界面設(shè)計(jì)十分相似的AppInventor開發(fā)環(huán)境,也為學(xué)生學(xué)習(xí)VB程序設(shè)計(jì)做好了鋪墊。
Google公司設(shè)計(jì)AppInventor項(xiàng)目的初衷,是降低應(yīng)用程序開發(fā)的技術(shù)門檻,讓更多的人,甚至是小學(xué)生都可以發(fā)揮自我的創(chuàng)造力,體會(huì)應(yīng)用程序開發(fā)的樂趣。在AppInventor教學(xué)中,學(xué)生創(chuàng)造性的思維更為重要,教師要善于刺激學(xué)生的創(chuàng)造力和想象力的發(fā)揮。
● 課程開設(shè)可能遇到的問題及解決
問題1
由于大陸沒有Google服務(wù)器,因此在開設(shè)AppInventor課程時(shí),可能會(huì)經(jīng)常性地遇到網(wǎng)絡(luò)的擁塞,學(xué)生甚至無法注冊(cè)Google ID,以至于課堂教學(xué)難以開展。
解決方法1:目前,已經(jīng)有AppInventor應(yīng)用程序開發(fā)的離線包,教師可在學(xué)校架設(shè)AppInventor服務(wù)器或者直接在學(xué)生機(jī)上假設(shè)個(gè)人服務(wù)器,便于順利地開展AppInventor教學(xué)。AppInventor離線包下載地址:http://www.appinventor.com.cn/thread-3267-1-1.html。
解決方法2:目前,國(guó)內(nèi)已有十幾所學(xué)校(包括臺(tái)灣)開設(shè)了AppInventor課程,其中浙江師范大學(xué)附屬中學(xué)已經(jīng)架設(shè)了國(guó)內(nèi)首個(gè)AppInventor服務(wù)器,只需要簡(jiǎn)單的注冊(cè)就可以登錄使用。浙江師范大學(xué)附屬中學(xué)AppInventor服務(wù)器地址:http://app.ourschool.cn。
問題2
AppInventor開發(fā)的應(yīng)用程序,目前只支持安卓系統(tǒng),對(duì)基于安卓系統(tǒng)的其他系統(tǒng)不一定支持,如小米公司開發(fā)的MIUI(米柚系統(tǒng))。
解決方法:若是購(gòu)買到不支持的手機(jī)或平板,可以選擇刷系統(tǒng)(刷機(jī))。
問題3
目前,國(guó)內(nèi)的中小學(xué)不支持學(xué)生帶手機(jī),沒有設(shè)備如何調(diào)試應(yīng)用程序。
解決方法1:條件好的學(xué)校,可以選擇合適配置的平板電腦來開展教學(xué)。
解決方法2:利用AppInventor開發(fā)平臺(tái)自帶的模擬器軟件,但該模擬器并不完善,如無法模擬感知加速度。
AppInventor項(xiàng)目的負(fù)責(zé)人Harold Abelson(MIT教授)曾說過:“App Inventor編寫的應(yīng)用程序或許不是很完美,但它們卻是普通人都能做的,而且通常是在幾分鐘內(nèi)就可完成?!比欢M管AppInventor是一種面向所有人的“所見即所得”的開發(fā)工具,但仍然需要投入足夠的時(shí)間來學(xué)習(xí)研究才能夠更順暢地使用和教學(xué)。同時(shí),目前國(guó)內(nèi)開設(shè)AppInventor課程的學(xué)校并不多,相應(yīng)的案例、資源也還很欠缺,因此對(duì)于AppInventor課程的開設(shè)還存在很多的看不見的困難與問題,仍需要教師及開發(fā)者的相互幫助、相互交流,才能使MIT AppInventor的應(yīng)用程序開發(fā)更接地氣。