高俊濤
● 中小學(xué)程序設(shè)計(jì)教學(xué)的定位與教學(xué)目標(biāo)
計(jì)算思維是在運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法形成問(wèn)題解決方案的過(guò)程中產(chǎn)生的一系列思維活動(dòng),它在信息技術(shù)課中的落實(shí)手段是算法與程序設(shè)計(jì)。江蘇省《義務(wù)教育信息技術(shù)課程綱要》(2017年修訂)中明確指出,“算法是程序設(shè)計(jì)的靈魂,程序設(shè)計(jì)語(yǔ)言是實(shí)現(xiàn)算法的重要工具”,兩者不可或缺又相輔相成。
算法與程序設(shè)計(jì)教學(xué)在各學(xué)段的培養(yǎng)目標(biāo)逐層遞進(jìn),各有差異。小學(xué)的目標(biāo)是啟蒙和培養(yǎng)興趣,并不強(qiáng)調(diào)程序設(shè)計(jì)語(yǔ)言的完整性,也不強(qiáng)調(diào)算法的概念和理解。初中的目標(biāo)是建立相對(duì)完整的程序設(shè)計(jì)語(yǔ)言知識(shí)結(jié)構(gòu),建立初步的算法概念,了解簡(jiǎn)單的算法,側(cè)重通過(guò)程序設(shè)計(jì)語(yǔ)言解決一些簡(jiǎn)單的實(shí)際應(yīng)用問(wèn)題。高中的目標(biāo)是建立高階思維,強(qiáng)調(diào)掌握豐富的算法,側(cè)重于解決問(wèn)題的方法設(shè)計(jì)。我們的最終目標(biāo)不是把每位學(xué)生都培養(yǎng)成未來(lái)的程序員,而是在潛移默化中幫助學(xué)生建構(gòu)計(jì)算思維的思想,使其在未來(lái)的學(xué)習(xí)、工作和生活中可以靈活自如地運(yùn)用計(jì)算思維去解決遇到的問(wèn)題。
● 程序設(shè)計(jì)教學(xué)在中小學(xué)階段的學(xué)情調(diào)查與分析
算法與程序設(shè)計(jì)在信息技術(shù)學(xué)科中的重要性不言而喻,江蘇省教育廳為各學(xué)段配備了相關(guān)教材用于日常教學(xué):小學(xué)以Scratch為教學(xué)載體,初中和高中以VB為教學(xué)載體。然而各學(xué)段實(shí)施情況卻大相徑庭,以筆者所在的蘇州工業(yè)園區(qū)為例:全區(qū)24所小學(xué)均開(kāi)展Scratch教學(xué),實(shí)現(xiàn)了全覆蓋,并在省編教材的基礎(chǔ)上不斷地豐富與拓展;全區(qū)21所初中,開(kāi)設(shè)VB課程的只有6所,并且教學(xué)效果不盡如人意;全區(qū)4所高中,為確保高二會(huì)考的通過(guò)率,均未選修VB程序設(shè)計(jì)。VB作為初中學(xué)段程序設(shè)計(jì)教學(xué)的載體,為什么不受歡迎呢?
對(duì)此,筆者在全省初中信息技術(shù)骨干教師會(huì)議召開(kāi)期間開(kāi)展了一次關(guān)于程序設(shè)計(jì)教學(xué)狀況的情況調(diào)查。調(diào)查顯示,只有43%的教師認(rèn)為VB作為初中程序設(shè)計(jì)的教學(xué)語(yǔ)言可以被大部分學(xué)生接受,有12%的教師認(rèn)為絕大多數(shù)學(xué)生不能接受VB。而在影響VB教學(xué)的主要因素這一問(wèn)題中,有43%的教師認(rèn)為最大的問(wèn)題是學(xué)生不感興趣,31%的教師認(rèn)為學(xué)生學(xué)習(xí)的時(shí)間不夠,影響興趣,26%的教師認(rèn)為VB的嚴(yán)謹(jǐn)性影響學(xué)生的學(xué)習(xí)效果。以上調(diào)查反映出VB的專業(yè)性和嚴(yán)謹(jǐn)性成為制約廣大初中學(xué)生學(xué)習(xí)程序設(shè)計(jì)的桎梏。那么,初中學(xué)段的程序設(shè)計(jì)教學(xué)該選擇怎樣的載體呢?又如何讓大多數(shù)初中學(xué)生愛(ài)上程序設(shè)計(jì)呢?
● 程序設(shè)計(jì)教學(xué)改革探究之路
1.App Inventor作為初中學(xué)段程序設(shè)計(jì)教學(xué)載體的可行性分析
為了鼓勵(lì)更多的初中教師進(jìn)行程序設(shè)計(jì)教學(xué),讓更多的初中學(xué)生愿意學(xué)并且能學(xué)好程序設(shè)計(jì),筆者所在的蘇州工業(yè)園區(qū)初中信息技術(shù)教師團(tuán)隊(duì)提出以導(dǎo)向興趣化、設(shè)計(jì)游戲化和去數(shù)學(xué)化為切入點(diǎn)開(kāi)展程序設(shè)計(jì)教學(xué)改革,并在經(jīng)歷了三年的實(shí)踐摸索后,確定在初中學(xué)校使用App Inventor替代VB作為程序設(shè)計(jì)教學(xué)載體,讓學(xué)生從“要我學(xué)編程”向“我要玩編程”轉(zhuǎn)變,在潛移默化中學(xué)習(xí)知識(shí)、培養(yǎng)能力。
(1)便捷簡(jiǎn)易的開(kāi)發(fā)環(huán)境
App Inventor最早是Google實(shí)驗(yàn)室(Google Lab)的一個(gè)子計(jì)劃。2012年1月1日,Google把該項(xiàng)目移交給美國(guó)麻省理工學(xué)院行動(dòng)學(xué)習(xí)中心。App Inventor是一種完全在線開(kāi)發(fā)的Android編程環(huán)境,使用者通過(guò)瀏覽器即可實(shí)現(xiàn)應(yīng)用的外觀與行為設(shè)計(jì),通過(guò)安卓移動(dòng)終端或模擬器即可進(jìn)行在線調(diào)試,通過(guò)打包下載即可獲得APK安裝包文件。
(2)簡(jiǎn)單有趣的塊語(yǔ)言設(shè)計(jì)
利用App Inventor開(kāi)發(fā)APP應(yīng)用簡(jiǎn)單有趣,編程視圖中的代碼塊都已經(jīng)封裝了代碼,不需要學(xué)習(xí)者親自編寫(xiě)代碼,只需要按照設(shè)計(jì)意圖拖拽相應(yīng)的模塊就能完成編程。從前面的調(diào)查可以看出,利用VB程序設(shè)計(jì)語(yǔ)言進(jìn)行教學(xué)的主要困難是學(xué)生需要記憶大量的語(yǔ)法,這是橫亙?cè)趯W(xué)習(xí)程序設(shè)計(jì)的廣大初中學(xué)生面前的一道門檻,而塊語(yǔ)言沒(méi)有此門檻,各個(gè)模塊之間可以靈活組合,有效地將學(xué)生的學(xué)習(xí)精力集中在問(wèn)題的解決和算法的設(shè)計(jì)與實(shí)現(xiàn)上。圖1和圖2分別為App Inventor開(kāi)發(fā)平臺(tái)的邏輯設(shè)計(jì)界面與外觀設(shè)計(jì)界面。
(3)符合主流的面向?qū)ο笤O(shè)計(jì)
App Inventor雖然是塊語(yǔ)言,但遵循了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)是程序設(shè)計(jì)發(fā)展的主流方向,它使設(shè)計(jì)與維護(hù)程序變得更為簡(jiǎn)單,使得程序更便于分析、設(shè)計(jì)與理解。
(4)豐富多彩的生活問(wèn)題導(dǎo)向
傳統(tǒng)的程序設(shè)計(jì)教材中,教學(xué)案例往往是一些數(shù)學(xué)問(wèn)題,如水仙花數(shù)、斐波那契數(shù)列、求閏年等,大多數(shù)學(xué)生看到這類案例會(huì)誤以為學(xué)習(xí)程序設(shè)計(jì)就是在變相地學(xué)習(xí)數(shù)學(xué),從而產(chǎn)生畏懼感。實(shí)際上,學(xué)習(xí)程序設(shè)計(jì)的目的不僅僅是科學(xué)地解決數(shù)學(xué)問(wèn)題,更是要發(fā)現(xiàn)、分析和解決生活中遇到的形形色色的問(wèn)題。
隨著智能手機(jī)的普及,各種優(yōu)秀的APP應(yīng)用層出不窮,這些APP應(yīng)用有很多是為了解決生活中的問(wèn)題,還有很多是學(xué)生喜歡的小游戲。在基于App Inventor的程序設(shè)計(jì)教學(xué)中,教師可以因勢(shì)利導(dǎo),把這些應(yīng)用轉(zhuǎn)變成教學(xué)案例,它們既貼近學(xué)生生活,容易引起他們的共鳴,又可以消除學(xué)生對(duì)程序設(shè)計(jì)的距離感和恐懼感,有助于幫助學(xué)生建立一個(gè)促進(jìn)其主動(dòng)學(xué)習(xí)以及意義建構(gòu)的學(xué)習(xí)環(huán)境。
2.App Inventor、Scratch、Python的關(guān)系分析
對(duì)于選擇使用什么程序設(shè)計(jì)語(yǔ)言進(jìn)行初中學(xué)段的教學(xué),筆者所在團(tuán)隊(duì)成員展開(kāi)了討論,有的建議沿用小學(xué)階段的Scratch,有的建議向高中看齊,直接使用Python……最后確定使用App Inventor,因?yàn)樗梢院芎玫伢w現(xiàn)Scratch、Python和App Inventor三者之間的優(yōu)勢(shì)。
Scratch是一款少兒編程工具,符合三年級(jí)以上小學(xué)生的認(rèn)知水平,但Scratch主要是基于PC端的軟件編程環(huán)境,作品展示的途徑比較狹窄,如果要拓展它的功能還必須購(gòu)買各種擴(kuò)展板、傳感器等外部硬件。其側(cè)重點(diǎn)不是算法的學(xué)習(xí),而更多體現(xiàn)的是創(chuàng)意實(shí)現(xiàn)。而App Inventor保留了塊語(yǔ)言編程的簡(jiǎn)單性和易用性,語(yǔ)言形式上是Scratch的延續(xù),學(xué)過(guò)Scratch的小學(xué)生到中學(xué)階段可以平滑地過(guò)渡到App Inventor。
App Inventor的語(yǔ)言功能和對(duì)硬件的驅(qū)動(dòng)能力要遠(yuǎn)強(qiáng)于Scratch,它更接近于實(shí)際生活應(yīng)用。App Inventor不僅可以調(diào)用安卓手機(jī)或平板等移動(dòng)設(shè)備的硬件資源,實(shí)現(xiàn)更多更豐富的應(yīng)用場(chǎng)景,而且還可以通過(guò)APK文件很方便地在不同的安卓設(shè)備之間分享傳播。同時(shí),隨著調(diào)試模擬器的出現(xiàn),在電腦上也可以模擬出App Inventor項(xiàng)目在手機(jī)上的大部分運(yùn)行效果。
Python和VB一樣,是一種解釋型行命令語(yǔ)言,如果以Python作為初中程序設(shè)計(jì)教學(xué)的載體,其行命令特性仍然會(huì)成為廣大初中學(xué)生學(xué)習(xí)程序設(shè)計(jì)的認(rèn)知門檻。
也許有人會(huì)詬病App Inventor是塊語(yǔ)言,太簡(jiǎn)單,但App Inventor與Python一樣,也有對(duì)象、屬性、事件、方法等面向?qū)ο蟮某绦蛟O(shè)計(jì)的元素,具備編程的完整性和規(guī)范性特點(diǎn),這對(duì)初中學(xué)生來(lái)說(shuō),能為他們向未來(lái)高中階段的Python過(guò)渡打下原理性基礎(chǔ)。因此,App Inventor與Scratch、Python這三種語(yǔ)言比較符合各自學(xué)段學(xué)生的認(rèn)知水平,它們各有特色,優(yōu)勢(shì)互補(bǔ),可以形成逐層遞進(jìn)的關(guān)系,即App Inventor可以成為小學(xué)和高中程序設(shè)計(jì)教學(xué)銜接的橋梁和紐帶。
● 總結(jié)
筆者所在的蘇州工業(yè)園區(qū)2015年選擇了三所具有代表性的初中學(xué)校(優(yōu)質(zhì)校、中等校、薄弱校)進(jìn)行基于App Inventor的程序設(shè)計(jì)教學(xué)試點(diǎn),2017年進(jìn)一步擴(kuò)大實(shí)驗(yàn)范圍,在所有初中學(xué)校全面開(kāi)展基于App Inventor的程序設(shè)計(jì)教學(xué)研究,經(jīng)過(guò)三年多的教學(xué)實(shí)踐探索,摸索出了一條教學(xué)實(shí)施路徑:課堂以項(xiàng)目學(xué)習(xí)為主線,融合教材知識(shí)點(diǎn);教學(xué)以微課、討論為支撐,以互動(dòng)學(xué)習(xí)平臺(tái)為支架;考核以創(chuàng)意實(shí)現(xiàn)為目標(biāo),突出成果的展示發(fā)布。App Inventor教學(xué)取得了不錯(cuò)的效果,課堂項(xiàng)目達(dá)成率超過(guò)90%,學(xué)生創(chuàng)意作品層出不窮,這充分證明App Inventor的確可以將抽象小眾的程序設(shè)計(jì)變得生活化、大眾化。
實(shí)踐證明,在初中課堂基于App Inventor玩轉(zhuǎn)程序設(shè)計(jì),有助于深化信息技術(shù)教育的理念,體現(xiàn)計(jì)算思維的方法與內(nèi)容,促進(jìn)計(jì)算思維從“為計(jì)算”到“用計(jì)算”的轉(zhuǎn)變。“為計(jì)算”的教育注重計(jì)算思維概念和意象等思維要素的掌握,將程序設(shè)計(jì)、計(jì)算機(jī)語(yǔ)言和工具操作作為主要學(xué)習(xí)內(nèi)容。“用計(jì)算”的教育是在計(jì)算思維要素學(xué)習(xí)的基礎(chǔ)上,強(qiáng)調(diào)培養(yǎng)學(xué)生在真實(shí)情境和具體活動(dòng)中,利用信息技術(shù)解決問(wèn)題的能力和內(nèi)在思維。筆者所在的程序設(shè)計(jì)教育研究團(tuán)隊(duì)將繼續(xù)努力,堅(jiān)持以促進(jìn)學(xué)生思維發(fā)展為目標(biāo),不斷實(shí)踐,努力使廣大初中學(xué)生能夠在程序設(shè)計(jì)的學(xué)習(xí)中體驗(yàn)成功,享受快樂(lè)!
參考文獻(xiàn):
李鋒,王吉慶.計(jì)算思維教育:從“為計(jì)算”到“用計(jì)算”[J].中國(guó)電化教育,2015(10):6-10.