張渝江
學習編程不僅是為了讓學生能順利找到工作,更重要的是編程將影響21世紀世界上的每一個職業。認識到這一點的任何一個國家都將長期受益。
在美國,90%的父母希望自己的孩子學習計算機科學,因為計算機是美國經濟中增長最快的和最賺錢的行業。2015年,Code.org預計,到2020年美國將有140萬的計算機相關工作機會,然而只有40萬計算機科學的學生。更為嚴峻的是,據谷歌2016年早些時候的一項調查發現,有3/4的初中和高中不提供編程課程。專家認為,學習編程不僅是為了讓學生能順利找到工作,更重要的是編程將影響21世紀世界上的每一個職業。認識到這一點的任何一個國家都將長期受益。顯然,學校教育沒有與社會的需求匹配,這會導致巨大的人才缺口,進而影響經濟的發展。
許多教育者也認為將編程納入課堂將有助于培養學生的計算思維。計算思維包含了數學性思維和工程性思維,而其最重要的思維模式就是抽象話語模式——是把一件事情先抽象出來,再邏輯化表達出來的能力。編程學習把計算機科學知識與創造能力相結合,能夠促進學生邏輯推理能力和解決問題能力的提高。因此,一些學校開始嘗試把編程與K12課程相結合,從小培養學生復雜的思考能力。世界各地許多學校已經開設了編程課程和項目,讓學生通過協作設計網站、教育游戲和移動應用、新產品的建模和原型開發,來為當地實際問題設計解決方案。
《2016地平線報告(基礎教育版)》中預測,在兩年內更多的基礎教育學校將把“編程”作為一項基本素養來培養學生。不過,很多學校即便是開始了編程教學,仍然沒有取得實質性的突破。除了傳統觀念的束縛外,更多的是因為教學資源和師資的缺乏。
編程一小時
盡管學校還沒有大規模開設編程課程來進行普及性的編程教學,民間的編程推廣活動卻方興未艾。2013年,由公益組織Code.org倡導的“編程一小時”(The Hour of Code) 拉開序幕。很多美國政界和科技界領軍人物以及科技大公司紛紛加入進來,或為其站臺,或資助和聯合開展活動。目前“編程一小時”已經發展成為一個全球性活動,有來自全球180多個國家、數以千萬的學習者參加。任何人在任何地方都可以組織“編程一小時”活動。每個教學內容長1小時,充滿游戲化的樂趣,有40多種語言支持,4歲以上的孩子都可參與。更重要的是,學習此課程無需編程經驗,教師能快速地組織學生參與進來。
教師如何成為編程教師
教師開始編程教學并非想象的那么令人生畏。真正困難的是從程序員轉變為編程老師——他們不懂教學卻聘請成本昂貴。作為一個訓練有素的教師,具備成為一個成功的編程教師的技能——熟悉教學和善于學習。另外,作為學校編程教師,你不必把開發一個Facebook這樣復雜的任務拿來為難自己,只需要能教授基礎知識即可,余下的就是激發學生的創造力了。
教師如何開始編程教學
教師可以通過以下步驟來開始編程教學。
1. 尋找在線編程教學資源
互聯網上有大量的免費編程教學資源和編程工具,能滿足從小學到高中的不同學段的學生學習編程的需求。比如:可汗學院的“一小時編程”有大量的課程來教會學生關于JavaScript、HTML/CSS和SQL等編程的知識和技能。Code.org上則有更豐富的“一小時編程”課程,還可以獲得很多專業人士的支持。
2. 創建一對一教室環境
每位學生都有一臺終端能提供良好的學習編程的環境,但并非必需。研究表明,學生在共享一臺電腦并且共同工作的結對編程中學習效果最好,應當鼓勵學生們結對互助。編程是計算思維和程序語言的綜合運用,涉及邏輯和問題解決,而不是每時每刻都需要電腦。事實上可以有很多“不插電”活動來讓學生學習這種技能。比如,利用生活中的事情來教會學生基礎的計算機原理:讓學生在30分鐘內煮好飯。但是如果按部就班(煮粥要10分鐘,洗菜切菜10分鐘,炒菜要5分鐘……)把這些事情一個個分開做,30分鐘可能不夠。這就要考慮如何排序,做到在30分鐘內完成這些事——這就是“任務分配原理”。還有常見的利用“二進制卡片”來游戲化學習二進制數和比特概念等活動。
3. 信任學生
不要低估學生完成任務的能力。特別是教師也非專業程序員時,更應放開方向盤,讓學生成為司機。因此,教師應大膽把計算機科學課程開始運轉起來,你就會不斷得到學生能做得更好的反饋。
4. 不要一個人戰斗
當你開始編程教學后,盡量多找志同道合之士來幫忙。互聯網上有豐富的智力資源供教師使用,這樣你可以更快地回應學生的問題。你還可以聯系家長,看有沒有編程高手愿意幫忙,甚至進入教室輔助你的教學。分享是愛好編程人士的特質之一,所以你不必擔心自己是一個人在戰斗。
5. 使編程有趣
編程常常被認為是枯燥乏味的。因此,選擇合適的課程資源,讓孩子感受到進步和成長,這是讓學習有趣最有力的支撐。現在有很多編程工具都非常有趣,在教師較少的干預下引導學生通過一系列游戲化的謎題和任務來學習計算思維。
編程軟件工具推薦
1. 適合 6歲以上學生
Tynker——這個APP工具使用代碼塊創建程序。小孩子也能輕松創建自己的應用程序。比如:它讓學生寫互動故事,設定英雄和惡棍來構建復雜的角色扮演游戲。他們甚至還可以創建自己的Minecraft(我的世界)修改器。你可以下載這個APP的教師版,其中包括計劃工具和培訓視頻幫助你支持學生探索。
2. 適合8歲以上學生
Scratch——這是目前全球流行最廣的視覺化的免費編程游戲軟件,由麻省理工學院開發和支持,有下載版和網頁版可供使用。對于初學者來說,無需記住命令,僅需移動彩色模塊且集中注意力來創新完成任務;還可以控制傳感器板來制作好玩的機器人玩具。該工具還內置豐富的“一小時編程”課程,學校可快速地引入到課堂中。
MIT APP Inventor——與Tynker相似,這個APP仍使用視覺化模塊來教編程的概念和過程。不過不再是簡單的在游戲中玩耍,而是去完成一個真正的開發項目。通常在學習一小時后,學生就可以創建一個簡單的APP。MIT APP Inventor也幫助學生從這些簡單快捷項目擺脫出來,建立更大的項目。官網設有論壇,教師和學生們可以在其中尋求幫助,以及找到老師工具和項目的想法。該APP還包含了樂高MINDSTORMS組件,學生可以用編程控制樂高機器人。
3. 適合10歲以上學生
Encode——這個只支持Android系統的APP可以讓學生隨時隨地參加編程課程。即便學生不聯網也可以學習編程。
Encode僅聚焦于JavaScript編程,以教會學生編寫復雜的網頁應用程序和游戲的能力。它還提供了基于文本的編程基礎訓練,可以使學生學會更高級的編程語言。 能夠創建自己的游戲,也能幫助他們將教育游戲化,通過創建工具來教年輕的學生。
4. 適合11歲以上學生
Codecademy——通過一套課程計劃、學生追蹤工具和教師培訓來提供一個堅實的計算機科學課程。本課程包括HTML、CSS、JavaScript jQuery、PHP和Ruby等語言的學習,以及建設一個交互式網站的教學內容。
5. 適合13歲以上學生
GoLearningBus專業版——這個APP包括的教程涉及Ruby on Rails、HTML5、Java、PHP、 C、 C++、COBOL、SQL等,一站式為學生提供更廣泛的編程學習知識。其中,各種各樣的訓練能讓學生獲得真實世界的技能以幫助他們進入大學學習計算機科學或開始一份計算機相關的職業。
編程與硬件結合
編程的過程充滿樂趣。如果學生有一個想法,馬上就可以通過編程來實現,并且可以立即看到效果。這種即時的反饋,會讓學習興趣變得越來越濃厚,也越來越有信心。更進一步,如果這種效果不局限在屏幕中而能轉變為立體的產品,在用于改善生活品質、促進生產等方面帶來價值,那就更棒了。這就需要把編程與硬件結合。下面介紹一些常見的可編程驅動的基礎硬件。
Raspberry Pi(樹莓派)——最廉價的電腦。樹莓派接上顯示器和鍵盤鼠標等輸入設備可用作編程的終端電腦。如果與其他感應套件和動力裝置結合,也可以用來被編好的程序所驅動,成為智能機器的核心部分。編程部分較難,建議水平較高的學生使用。
Hummingbird Robotics Kit(蜂鳥機器人套件)——Arduino套件。組織和編程驅動Arduino為核心的智能機器更容易。編程部分簡單,適合中等水平學生使用。
樂高機器人——學生喜歡的玩具,新的NXT套件有很酷的機器人,可以編程。硬件拼合組裝比前面兩種套件更容易,編程也簡單,適合初級水平學生使用。
“編程一小時”中文網站資源推薦給國內教師,請掃二維碼。