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