鮑瑩瑩 江蘇省南京市第二十九中學天潤城分校
對于初中信息技術學科而言,在教學中融入計算思維的理念,不僅指要幫助學生掌握計算機軟硬件知識,更重要的是要培養學生利用信息手段最優化解決問題的意識。本文從分析編程教學中的問題出發,在基于“微項目”相關理論的基礎上,以學生為學習主角,將計算思維融入微項目教學的整個過程,使微項目教學形式切實且有目標地實施,幫助學生更好地理解現實生活中的信息技術,更好地立足于信息化和數字化的社會。
①重教學流程、輕計算思維培養的教學目標。多數教師為了能更高效率地傳遞知識與技能,常采用講授法為主的教學方式,按部就班地照著設定的課堂活動環節“熟練地走流程”,在此過程中忽視學生的主體地位,不能及時對學生的反饋做深入解析。
②知識瑣碎、任務間關聯性不強的主題教學。大部分教師認為項目式教學即為有一定主題的教學,在限定的主題任務下,將知識點牽強地融入每個環節,導致各環節關聯性很弱,學生學習的過程跳躍性太大,知識不能形成系統的架構。
③重個體能力提升、輕團體協作的課堂教學。教師在課堂上習慣將關注點落在少數基礎好的學生身上,小組合作也只是按照座位分組,組內分工、合作評價等環節缺失。這導致學生團體意識、責任意識、協作意識得不到加強。
計算思維是信息核心素養的要素之一,它是應用計算機科學技術解決實際問題的一種解決方案,在不斷優化解決問題的過程中完善學生的思維方式,提升學生學科核心素養。微項目教學在項目式教學的基礎上,更加聚焦于針對性問題的解決,其主題小而精,可操作性強,同時反映學科核心內容與現實世界的關聯,是一種重視應用性、邏輯性的學生主動學習的方式。本研究將計算思維的教學理念融入微項目教學形式中,從教學目標、教學流程方面改善當前初中編程教學中的問題。
英國南安普敦大學的Cynthia Selby博士和John Woollard博士提出的計算思維包括五方面要素:算法、分解、抽象、概括、評估。將計算思維的各要素融入微項目教學的整體流程中,具體地講就是在情境導入環節將實際問題分解為幾個相關聯的小問題,在活動探究中對具體問題進行抽象、建模,借助數字化方式對問題進行描述與組織建構,在方案設計與實施環節綜合考量問題的解決方法與步驟(這是算法思維的體現),在綜合評價環節對整體方案與流程進行評估。
計算思維是一種高階的能力,應當將其融入具體的教學內容中,在實際應用中提升學生問題解決的綜合能力。微項目教學是從問題出發,在具體問題分析中設計具體教學內容,以學生為中心,對項目進行設計研究、探索嘗試、驗證結果、分析評價、綜合改進等。
微項目教學中設計的內容都是圍繞核心知識點,學生有能力進行深度探究的有價值、有針對性的問題,在整個探究過程中,每個小任務都要涉及相應的知識點與技術操作能力,采取恰當合理的評價方式。
Python是一種相對簡單易學的計算機編程語言,學生學習Python編程語言可以鍛煉抽象思維能力,提升代碼編寫解決問題的技能。本文以Python中《循環結構》一課為例,探討基于計算思維的微項目教學方案。主要設計思路如圖1所示。

圖1
在導入環節,教師圍繞生活問題創設解決問題的大背景,并對問題進行解讀,鍛煉學生問題分解意識。例如,在《循環結構》一課中,可以“安全乘坐電梯”為問題的案例,給定問題:求解正常乘坐電梯超載的情況下,電梯編程語言如何處理這一問題。引導學生借助Python編程解決排隊等電梯時,在數量、重量達標的條件下最多可以有多少人進入電梯。在大問題確定的前提下,再將此問題分解為多個小問題:①模擬每個人進電梯時逐一累加人數和體重,此過程中教師給定每人體重(用w表示)、數量(用n表示)、總重量(用W表示)的變量;②當總人數或總重量超過額定范圍(W>限定總重量或者n>限定的總人數)時,應減去最后進入電梯的那人和體重,得到最后電梯預設的人數與重量。從日常生活中的問題出發,貼合學生認知,更能培養學生學以致用的觀念與意識。
此部分引導學生借助抽象化的語言表述問題,對案例進行剖析,通過小組合作、自主探究的方式鍛煉信息組織與分析能力。首先,在計算電梯承載人數及重量前,讓學生用自然語言表達算法,小組內商議最佳的算法,不同組之間進行評測;其次,引導學生用流程圖的形式將解決問題的思路與步驟表現出來,將思維可視化,將步驟結構化。教師展示學生繪制的流程圖,講解繪制流程圖中遇到的困難:每一次電梯上來人,數量n增加1,總重量W增加當前的w,直到累加到限定的數值,那到底要累加多少次?每一次都要畫出相同的一段流程圖嗎?引導學生認識“循環結構”的知識點。在對比的情況下講解循環結構的優勢,在繪制流程圖中引入新知“循環結構”的學習,帶有目的與期待地迎接新知。
任務的設計與實施是微項目中難度最大的部分,因此需要教師給予恰當合理的引導,同時在小組分工后,集思廣益,發揮同伴互助的作用。在解決電梯承載問題的Python程序編寫中,從剛才分析的兩個小問題出發,逐一按照流程圖的步驟撰寫代碼:
(1)輸入額定數據與設定變量初值,利用輸入函數輸入電梯的額定承載重量w0和額定人數n0(如圖2)。

圖2
(2)計算搭乘的最大人數與總體重,這個環節教師引導學生先借助以往所學的條件語句看是否能實現,當發現不可以后,引入新知“循環語句”,從語句格式、執行過程分析其功能,講解循環結構適用的場合及編寫中注意的問題。模擬人們排隊進入電梯時的承載重量和人數,需要多次重復流程圖中的“人數加1—輸入該人體重—總重量加該體重”一段(如圖3),明確在程序中反復執行某一系列操作的結構為循環結構。

圖3
a.while循環語句。
語句格式:while<條件表達式>:
循環體(語句組)
b.計算電梯承載的人數及重量的代碼。可以將核心的代碼模塊進行講解,以填空題的形式幫助學生理解,在程序支架的基礎上,學生不容易產生抗拒的心理,有利于新知的理解。
(3)合成程序,完善
程序的編寫。此過程是將不同步驟的代碼進行整合,發揮每一段代碼的整體作用,同時有意識地培養學生個體與集體的意識。
(4)調試運行,在程序運行過程中發現問題、解決問題,尋求最佳的解決方案。此過程借助同伴互助的方式,為尋求最佳的解決方案,共同探討,在智慧的碰撞中產生知識的火花。
最后,以項目交流形式總結知識點,讓學生通過不同的呈現方式表達自己或本組的作品,并在不同組的對比中提出修改意見與建議。同時,升華學生的認知,培養學生正確的人生觀、價值觀。
在高速發展的信息時代,信息技術學科教學成為學生提升信息素養的重要途徑,教師除了在課堂上教授課本新知外,更重要的是培養學生在日常生活中借助已學的信息知識分析、解決遇到的問題,在問題解決中增強信息技能,提升個人整體信息素養。初中Python教學應將計算思維的培養融入到微項目學習方式中,幫助學生在知識學習與技能應用的過程中形成獨特的學科思維,在合理的學習形式中真切感受信息學科的魅力,全面理解生活中的數字世界。但在實際教學中,筆者認為有幾點應注意:首先,應當注重教師引導,發揮好“腳手架”功能,讓學生學習起來有的放矢;其次,任務應緊緊圍繞微項目主題,通過分解、抽象、模型建立、算法等微項目解決問題的流程,逐層剖析問題,讓學生能夠建立分析問題、解決問題的模式;再次,在評價中綜合考量算法的優劣性,以達到培養學生高階思維的教學效果,在對比中發揮教師的主導作用,引導學生學會主動探究;最后,在知識的遷移中提升學生信息社會責任意識,增強信息技術服務社會的責任感,從而提高學生信息技術核心素養。