胡偉 浙江省杭州市丁蘭實驗中學
UbD(理解為先的教學模式)是美國課程改革專家威金斯和麥克泰積極倡導的一種課程與教學改革模式,該理論強調單元設計,認為合理而有效的單元課程設計能幫助學習者對主要概念和過程產生深入、持久的理解,是保證教學既有效果又有效率的前提和基礎,而逆向設計是一種有效的單元課程設計方法。浙教版初中信息技術八年級的“Python程序設計基礎”單元是在初步認識生活與算法、了解數據結構特點的基礎上設置的,是學生學習程序設計的起點。但經過一輪的教學,學生普遍反映對Python這一非圖形化編程語言感覺到陌生和抽象。通過調查得知,這種情況的產生與教師傳統的教學設計與教學方式有很大關系。教師習慣于以課時的微視角解讀教材或課標,按照教材編排順序依次教學,教學設計又偏重于落實知識點,從而導致學生的學習僅停留于表層知識,沒有達到深層次理解。在教學實踐中,筆者嘗試在課程標準的指引下,應用UbD模式對該單元進行整體教學設計,加強學生對知識的深層次理解,促進學生學科核心素養的形成。
“Python程序設計基礎”單元為浙教版信息技術八年級上冊的第一單元,是Python程序設計的起始單元,單元內容主要是Python的一些基礎知識和技能。針對此情況,筆者根據UbD模式的設計理念,基于單元制訂學科素養路徑,繼而確定指向理解的單元教學目標,圍繞目標確定預期學習成果,使用恰當的評估方法來評估過程,并以理解為先的理念規劃相關教學活動;在教學活動中滲透學科方法和程序應用,最終得到程序解決問題的成果,體現用計算思維解決問題的理念,逐漸養成指向學科的核心素養。
本單元安排了“初始Python”“常用數據類型”“算術運算符和表達式”等基礎內容,對于教師來說,如果不能明晰教學內容指向的課程標準以及學科核心素養是什么,勢必會讓課堂教學效果事倍功半。因此,筆者根據UbD模式,對本單元的內容,從課程層面,以課程標準為指導方針,針對教材中的單元目標,梳理各個知識點目標,并以理解的六個維度(解釋、釋義、應用、洞察、移情、自知)作為衡量學生“理解”的標準,形成指向信息意識和計算思維的學科核心素養(如表1)。

表1 指向理解的單元教學目標
針對表1梳理出的基于理解的單元教學目標,參照UbD模板2.0版本,呈現本單元教學設計,明確了以如下頁表2所示的預期學習結果。
針對下頁表2梳理出的三個層面的預期學習結果,參照UbD模板2.0版本,呈現各個層面的目標的評估標準以及評估方式,確定了如下頁表3所示的評估辦法。

表3 指向目標的恰當評估辦法
筆者根據理解為先的設計理念,在完成了預期結果和評估證據的定向思考之后,將教學過程分為五個主要環節:舊知快答搭建學習支架、以終為始助力新知理解、游戲探秘出示核心任務、任務體驗幫助自主建構、賞析應用展示小組成果(如下圖)。將預期結果和評估證據融合在教學過程中,體現教、學、評一致性。

筆者以第一單元第一課《初始Python》為例,以理解為先的理念規劃了相關教學活動。
《初始Python》是在初步認識生活與算法、學習數據結構后的一節入門課。鑒于教材的第二課《常用數據類型》中的一種數據類型這一知識點,在第一課中的實例也需要涉及,筆者對教材的第一課和第二課內容做了調整,將第二課的數據類型內容移到第一課來學習。而本課中的實例涉及的內容較多,因此將本課分為2個課時來完成。第1課時主要是認識Python及其開發環境、print()函數及常用的數據類型;第2課時主要學習變量、變量的賦值、input()函數,初步掌握Python的編寫過程。下面,以第1課時為例,確定課題為《從算法走向程序設計》,具體教學過程規劃如下。
本單元內容與七年級下冊第二單元《算法和數據結構》內容一脈相承,也與其后面的課程緊密聯系。七下第二單元探究了算法和數據結構,而算法是計算機程序設計的靈魂,數據結構是算法實現的基礎。因此,本課通過知識競答,幫助學生回顧七下的學習內容,為本單元的學習做好鋪墊,進而為后面的學習奠定基礎。
對于學生來說,通過翻看教材目錄,他們能大致知道本單元主要是學習Python程序設計。但程序設計學完以后能做什么?通過編程能解決生活中什么樣的問題?這些對于學生來說都比較陌生。因此,筆者借助UbD理解為先的理論,以終為始,先引導學生體驗各種各樣的程序實例,明確第一單元的學習內容,在編程解決問題的具體應用實例中感受程序及計算思維帶來的魅力,從而對單元學習內容有整體認識,引發學習需要。
通過P y thon書寫程序,教材中的案例多為pr i nt(‘Hel lo World!’),這樣的程序實例雖然很簡單,但學生往往不知道為什么要書寫這樣的程序實例;與此同時,這個實例對于初次接觸程序設計的初中生來說,涉及的知識點比較多也非常陌生。因此,在實際的教學過程中,從學生較為熟悉的數字魔術小游戲出發,引出第一個Python程序:print(1089)。
通過自主探究嘗試編寫自己的第一個Python程序,雖然任務較為簡單,但因為是學生的第一次嘗試,加之對輸入法等編程環境不熟悉,容易出錯的地方也不盡相同,所以很多學生需要指導。因此,筆者借助小組交流并討論程序編寫時遇到的問題,現場采集學生自主探究、小組合作學習的圖片,歸納總結Python語言的學習方法。
各個小組在自主探究、小組合作后,生成了一系列的學習成果,通過賞析Python應用視頻,進一步激發學生的學習興趣和對課程學習的期待。
通過問卷發現近80%的學生都希望教師能夠從他們熟悉的舊知識以及生活、學習等情境任務出發,層層遞進設置教學活動,這樣可以更好地幫助他們理解知識和學習內容。與此同時,教師通過選擇一些支撐教學目標的精準內容,以終為始,更好地助力學生理解核心問題。
通過問卷調查發現,90.3%的學生表示在學習程序設計課程時,應養成邊思考邊記錄的習慣,如畫一畫流程圖來幫助理解程序。基于此,教師可基于教學目標,分解教學任務,從方法步驟到代碼編寫,從算法思維到程序實現,選擇符合學生認知特點的實踐活動,讓學生通過實踐體驗,通過程序設計語言規范,編寫程序代碼,調試運行程序結果,讓思維過程可視化,讓算法思想具體化。