夏小剛+鄭長宏+孟延豹
前言:
成都七中初中學校(以下簡稱“七初”)是筆者長期關注的學校之一,七初在創新上是非常突出的,教師們都有非常強的創新意識,所以它每過一段時間就能給我一些驚喜。當然,創新同樣也是基于老七中“啟迪有方,治學嚴謹”的優秀傳統,再結合社會對未來人才的需求、學科發展方向、學生未來生活走向來進行設計。在今天的文章里,我們可以看到七初的信息技術教師,是如何根據學科目標以及教學APP的特點進行細致規劃,將信息技術的編程課程改變得讓學生更愿意學的。
Swift Playgrounds介紹
Swift Playgrounds是一款適用于iPad的創新APP,能讓學生以互動有趣的方式來學習Swift。它不要求用戶具備編程知識,所以非常適合初學者。學生可以先從闖關解謎開始,掌握Swift的基礎知識,再接受一系列挑戰,走向apple和其他頂尖開發者設計的更高級Playground。
主角Byte所在的世界存在各種關卡。你需要編寫命令,讓Byte不僅能動,還能執行任務。例如,在第一關中,你需要組合moveForward()(向前走)和collectGem()(收集寶石)兩種命令,完成讓Byte走到寶石所在地,并收集寶石的任務。
Swift Playgrounds采用游戲化闖關學習的方式,符合中小學生的心理特征,能充分激發他們的學習興趣。Swift 3.1包括命令、函數、For循環、條件代碼、邏輯運算符、While循環、算法七大模塊;Swift 3.2包括變量、類型、初始化、參數、構造世界、數組六大模塊;它最新的1.5版本,可以用自己編寫的代碼讓機器人完成不可思議的事情。隨著學習的一步步深入,學生不僅能用專業開發者日常所用的代碼來攻克各個目標,還能迎來更高級別編程概念的挑戰。
為什么要培養學生的計算思維
計算思維是指個體運用計算機科學領域的思想方法,在形成問題解決方案的過程中產生的一系列思維活動,主要表現在形式化、模型化、自動化和系統化四個方面。形式化:在信息活動中能夠采用計算機可以處理的方式界定問題,抽象關鍵要素,分析要素間的關系;模型化:建立信息處理的模型,合理組織數據,通過判斷、分析與綜合各種信息資源,運用合理的算法形成解決問題的方案;自動化:探究利用信息技術解決問題的過程與方法,實現解決問題方案的自動化運行;系統化:形成解決問題的系統過程,將其遷移到與之相關的其他問題解決中。
計算思維作為信息技術學科核心素養的核心內容,依托編程教育來落實是最佳的途徑。
我校編程教育遇到的問題
1.我校編程教育的實踐歷程
自2008年建校起,我校秉承成都七中的優良傳統,在活動課中開展了面向競賽的機器人編程教育。2010年增加了面向信息學奧林匹克競賽的基于Pascal/C語言的活動課。隨著時代的發展,編程教育在信息技術中的地位越來越重要,為了讓更多的學生接觸編程,學校于2012年開設了基于Scratch的圖形化編程課程,以便培養學生的計算思維。2014年,學校開始開展基于Arduino的開源硬件編程教育。
2016年12月,為了落實學校的中長期發展規劃,體現未來學校的課程理念,學校有效整合國家、地方和校本三級課程,并結合所有班級都是學生“BYOD”(自帶iPad)的特點,組成了“一對一”數字化學習班級。學生利用自己的iPad和無處不在的網絡環境實現了真正的泛在化學習。我校信息技術教研組還在2016—2017學年度下學期利用信息技術課實施了STEAM課程的模塊化走班教學,并提供了9個模塊供學生選擇(如下圖)。
在課程開展的準備階段,我們對學生的學習興趣做了問卷調查。數據顯示,部分學生對編程具有濃厚的興趣。
為了更好地滿足學生的個性化學習需求,同時發揮信息技術教師的專業特長,我校在初一年級采用了“學科內走班”的形式,開設了C++程序設計、3D打印、iPad影視制作3個模塊課程。每兩個班90名學生根據自己的學習興趣選擇3門課程中的一門進行學習,每個班限定30人以內,實現小班化教學。
2.遇到的問題
歷經九年的編程教育實踐,我們積累了不少經驗,也遇到了不少問題。最突出的問題是,當以C++語言為基礎的編程課程從活動課走進信息技術常規課以后,大多數學生表示:①C++編程是純代碼編程,符號多,命令(關鍵字)多,不容易識記,也不容易理解。②編程的界面與結果的界面都是基于字符的,看起來不友好,學起來比較枯燥。③不能產出直觀的作品,學習成就感低,不理解編程教育的目的。
同時,經過半年的教學實踐,幾位教師也認識到在初中階段不適合用C++語言開展普及性的編程教育,主要原因有兩點:
一是C++教學周期較長,與初中信息技術課時之間存在矛盾,即在一個模塊教學的課時周期內,無法完成最基本的C++編程基礎的教學。
二是絕大部分初中生都將學習的主要精力(難點)集中在了基本符號、基本命令(關鍵字)與基本格式的識記和運用上,根本談不到學習編程思想和培養計算思維。
Swift Playgrounds的優勢
我們探索了多個基于iPad的編程APP:Scratch Jr、Hopscotch等過于簡單,比較適合小學階段的學生;Encode、Python、Java等過于抽象,不太適合在初中階段進行編程入門教育。然而,在體驗了Swift Playgrounds編程軟件之后,我們發現它很有意思,于是邀請七年級3名學生進行了Swift Playgrounds編程體驗,指導他們下載了該APP,進行了為期15天的連續學習。之后,我們對他們進行了調查,調查結果如下頁表所示。他們一致認為Swift Playgrounds比較有趣,能幫助自己學到一些英語單詞,同時,有助于鍛煉自己的邏輯思維能力、空間想象能力和自動化思維,對數學、英語等學科的學習有所幫助。
在“游戲”的過程中,3名學生嘗試著像Byte(程序中的角色)一樣一步步去完成任務。綜合學生的反饋及教師的體驗,我們認為相對于純代碼編程和純圖形化編程,Swift Playgrounds具有如下優勢:①圖形化降低了編程入門難度;②游戲化激發了學生的學習興趣;③促進了學生計算思維的發展。
面向計算思維的編程教育初步設計
由于Swift Playgrounds是蘋果公司開發的針對初學者的編程教育APP,只有iOS版,所以開展此門課程需要具備一定的硬件基礎。而我校自2012年開始開展基于iPad的一對一數字化學習實踐,積累了利用教育APP輔助教學的豐富經驗,同時,學生也有較強的信息素養來完成課程學習。基于此,我們計劃按照以下三個流程來設計課程。
1.教師自我成長
目前在蘋果官網上,已有2本關于Swift的電子書,即《使用Swift開發APP入門課程教師指南》和《學習編程1&2教師指南》。兩本書的設計均符合編程教育的基本流程,可以作為教師參考用書。同時,edX平臺上也有相關MOOC,可供教師參考學習。
2.探索如何應用Swift語言和Xcode開發APP
教師應該主動探索Swift Playgrounds,了解其特點,理解設計者的學習路徑設計。同時,學習掌握如何應用Xcode和Swift語言開發簡單的APP,提高自身的編程教育能力,為學有余力的學生提供更多的引導。
3.編程教育初步設計
(1)課程定位
具體的課程設計是應用計算思維和編程去探索生活中的數學問題、工程問題、結構和流程問題,從而培養學生的迭代思維、試錯、調試方法等程序思想,逐漸培養他們的計算思維。
(2)課時建議
建議一學期的課時采取“課內10課時學習+課外5課時學習+課內5課時分享”的方式。這樣做,一方面,學生能充分利用信息技術模塊課的時間進行課內學習,并進行充分的師生、生生、生機互動,在互動中學習,交流分享;另一方面,考慮到Swift Playgrounds游戲化的設計,鼓勵學生在課外時間完成部分學習內容,為接下來開發APP留有充足的學習時間。
(3)教學方式建議
建議采取“課堂學習+課外活動”的形式,如組織全校師生開展基于Swift的“編程一小時”活動。
(4)學習評價建議
過程性評價和總結性評價相結合。既要考查學生對相關編程語言和程序結構的掌握情況,又要關注學生的學習興趣和對課程本身的認可。