趙樂斌
基于問題解決的中學信息技術課堂教學,倡導學生在學習過程中經歷問題的理解、分析、解決、總結遷移等,達到發展計算思維的目的。將教學內容蘊藏在問題解決過程中,能夠有效地克服學生的思維惰性,避免講練式的知識傳遞、任務式的技能訓練等所導向的淺層學習。
● 基于數據組織認識問題,關注計算思維的抽象本質
1.對形象問題進行抽象特征
現實社會中的信息活動呈現出客觀物理世界和虛擬數字世界之間的相互依存,表現于具體物理量和數字量之間的轉換。例如,如果要求設計一個杯子,學生常會受到形象認識的束縛,進行具有普遍性的水杯制作,而當學習要求抽象到制作一個容器的高度時,學生設計的作品在樣式上就會呈現多樣性。因此,在信息技術課堂教學中,需要引導學生在認識問題的過程中,脫離形式上的束縛,抓住主要內容抽象其特征。以計算思維培養為目的,了解問題,以數據為抓手,基于數據界定、變量賦值、數據計算、數值判斷等角度去理解問題,抽象問題的特征,變形象問題為抽象的計算問題,這樣的問題重構,有助于學生對問題的認識從感性的情境理解,借助數據媒介,上升到計算可處理對象的理性認識,在了解問題的本質特征過程中,不斷培養抽象能力。
例如,閩教版初中信息技術《體驗分支結構》一課,要求結合“探秘無人駕駛汽車”學習主題,設計如何實現無人駕駛汽車遇到紅綠燈,執行停車等候或繼續行駛。在分支結構的第一課時,主要了解與學習經典的分支結構,即根據兩種不同的簡單條件,執行不同的指令。通過無人駕駛汽車通過紅綠燈的問題,學生明確問題的關鍵,綠燈時屏幕輸出“繼續行駛”,非綠燈時屏幕輸出“停車等候”。為了實現條件識別具有確定性和有效性,采用數據量化的方式設置條件,在約定“綠燈亮”時,“紅綠燈狀態”設定為數值1,其他數值時,就表示非綠燈狀態。將生活中根據紅綠燈行動的情境抽象成“紅綠燈狀態”變量數值的判定,讓條件語句更加確切,能夠有效得到判斷和執行。
2.由抽象問題還原具象認知
在重視抽象能力的同時,也要關注問題抽象后知識的理解和掌握。計算思維培養視閾下的程序設計和問題解決是抽象的學習過程,學生通過對抽象概念原理的理解,能夠正確認識抽象問題中關鍵的內容,包括數據關系、算法等,其中也涉及規則、約定以及相關編程技巧等。
例如,在借助Python開展“走進程序世界”教學活動中,在學生了解基本的輸出語句后,教師可以反饋具體課堂紀律的學情統計為問題,采用填空題型的方式,使學生鞏固所學內容。問題:用程序語句記錄“認真聽課的同學”是“宋同學”,“上課講話的同學”先后分別是“陳同學”“謝同學”;最后讓計算機輸出講話的總人數和最后一位講話的同學的名字。問題的理解,涉及變量類型選擇、變量內容的賦值、變量內容的修改、輸出函數等相關計算知識復習。嘗試讓學生設定相關變量名,讓學生對變量名、變量值和變量類型等產生具象認知,并觀察執行變量賦值后程序的輸出情況,讓學生清楚地認識到計算機執行的處理指令,有時是肉眼看不到的(如“認真聽課的同學”),因為它未執行輸出指令,它的結果存放在內存中,當計算機斷電后,相關變量內容信息將消失。
● 源自生活觀察分析問題,重視計算思維的培育契機
1.瞄準思維起點引發思考
以生活中的信息行為的理解為起點,能夠助推對學生計算思維能力的培養。因此,教師在教學過程中要善于利用生活中有益于計算思維培育的素材,將計算思維培育與學生已有的生活經歷緊密聯系,抓住有利的思維起點,把握契機引發學生分析問題,積極提出解決問題的假設,將初步構思的方法、步驟等與現實生活具體行為關聯,構建激發思考、促進學生潛能發展的教學活動。
例如,在結合無人駕駛小車項目進行“算法和程序設計”單元學習的過程中,針對智能小車如何避礙行駛的問題,可引導學生先學習認識超聲波傳感器、光電傳感器等,在障礙物感應、巡線問題上,結合關愛特殊群體用拐杖感應障礙物、依靠觸覺走盲道等生活行為,輔以蒙眼用手或紙板等道具實現走過班級通道的生活體驗,讓學生明白傳感器獲取相關信息的重要性,明確信息技術的變革和創新是為了更好地解決生活中的復雜問題。
2.分解問題體驗算法思維
分解問題就是把一個問題分解成若干個子問題,解決了子問題,再把解決子問題的方案合成解決原問題的方案。分解問題不同于解決問題時的分步驟實施,不同于解決復雜問題時的不同分類情況,計算思維的分解能力比較抽象,分析問題時輔助典型生活實例介紹,能夠突出對問題分解能力的培養。
例如,在分析用二分法查找有序數組中的具體數值時,教師讓學生分析生活中翻開書本第N頁的學習情境。解決這個問題的方法是,從學生呈現的逐頁翻,過渡到應用二分法的思想“對半”進行“兩手抓”翻書,然后根據翻到的頁碼,判斷在哪只手抓的部分里繼續對半查找,直到找到。在體驗后,幫助學生梳理翻書問題,其子問題算法步驟如下:①找出起始頁;②確定結束頁;③找到中間頁M;④判斷M和N的關系。諸如翻書的子問題的生活體驗,能夠培養學生通過分解子問題實現有效分析問題的思維能力,得出解決方案,感受算法思維的魅力。
● 概括解決問題的方法,增強計算思維的價值體認
1.找準要點引導深度探究
在概括問題解決方案的過程時,除了使用的算法模型外,還要深度探究解決問題的關鍵點,即問題的核心。通常以數據或數據之間的關系為突破口,進行相關計算、分類、排序、查找、轉化等相關操作。探究關鍵點在解決問題與驗證方法過程中的作用,發現應用意義,實現從實踐體驗、學習感悟到價值認同。
例如,在初中開源硬件體驗《智能小助手——噪音檢測儀》一課中,面對如何定時獲取教室環境聲音,并根據音量大小做出相關提示這個問題,在概括階段,引導學生進行深度探究,發現解決這個問題的核心就是“響度”這個變量數值的獲取,以及“指定數值”的確定,通過二者比較判定符合“環境聲音太大”情況。就計算思維的培養而言,課時內容涉及了從傳感器獲得數據并進行賦值,指定數值的確定,落實在具體數據上就是將“響度”變量的數據進行分類,然后根據具體分類情況,利用分支結構,讓計算機執行不同的操作。
2.找準錨點提升計算觀念
計算觀念是學生思維的產物,是通過問題解決,由思維活動產生的某些具體的思想。這些觀念可能會隨著知識面的拓寬、思維能力的發展而不斷成熟。在教學過程中,要尋找問題解決過程中學生思維發展的著力點,使其領悟學科思想、學科觀念。
以解決1+2+3+4+5+6的累加問題為例,根據中學生已有的認知,能夠在掌握順序結構基礎上,進行簡單的代碼編寫。方案一:用簡單語句s=0,s=s+1,s=s+2,一直到s=s+6,最后輸出s的值。方案二:在簡單算術運算基礎上,發現數列的規律,使用計數器,用相關變量的累加代替具體加數,采用語句s=0,i=1,s=s+i,i=i+1,s=s+i,i=i+1,一直到i=6,輸出s+i的值。方案三:學習新知利用循環結構。能夠發現這三個方案之間的區別,就是學生計算觀念發生飛躍的過程、基于問題解決的計算思維的領悟,以及通過問題解決實現從知識掌握到思維發展的跨越。思維發展的著力點在方案二,它是學生在能夠解決的方案一的基礎上,提出的關于i=i+1、s=s+i就是帶有普遍性和代表性的計數器、累加器的初步應用,能夠在同類型問題中繼承應用。將此作為提升計算觀念的錨點,能夠基于方法觀察、對比、探究,有效地發展學生的思維能力。在具體問題解決過程中,引導學生意識到,發現有價值的算法、提出高效的算法等,比最后的編程實現更有意義。
● 思路交流拓展問題解決,實現計算思維的能力遷移
1.交流思路內化所學
在計算思維培育過程中,圍繞解決問題的方法進行思路交流,可以讓學生發現設計的算法的優點與不足,并不斷優化改進,明白問題的解決是循序漸進的過程,也可以讓學生實現從掌握解決問題的方法到方法的創新。同時,可以幫助學生內化所學知識,為后續的遷移解決相關問題打好基礎。
例如,在解決期末成績判定等級的問題時,學生的差異性體現在會采用比較簡單的單分支語句if cj>=90 and cj<=100:print('優秀');if cj>=70 and cj<90: print('良好');if cj>=60 and cj<70:print('合格');if cj<60 and cj>=0:print('不合格')。雖然這樣的算法能夠解決問題,但不是追求的最優算法。在交流過程中,學生通過將多個單分支的流程圖的串聯,與多分支結構依據條件判斷分類執行的情形相比,明確在單個數據的判定上,采用單分支結構做了許多冗余的操作,得到其執行的效率太低,在遇到大量數據的時候,就會大大影響執行速度的結論。思路交流讓學生明確了算法的不斷改進優化需要更好的解決方法,同時內化了所學的相關知識。
2.拓展問題情境實現遷移
在教學中,學生通過交流、分享具體問題情境下的解決方法,嘗試形成普適性的問題解決模型,能夠領悟學科思想,提升思維能力。
基于具體項目或問題,初中生會學習相關開源硬件的內容,以具體傳感器應用為邏輯主線,涉及通過諸如濕度傳感器進行土壤濕度數據采集與數據處理,決定是否啟用花卉灌溉設備等,學生在比較是否使用傳感器處理同類問題的效果異同,掌握應用濕度傳感器解決問題的同時,通過學習交流,拓展到對使用光敏、聲敏、熱敏等傳感設備來解決灌溉、照明、加熱等問題的思考,以及復雜情境問題的解決,讓學習視野、思維不再局限在課時內容范圍內,而是通過一個問題的解決,可以從容面對相似的問題。
綜上所述,基于問題解決,在抽象、分解、算法、概括等方面發展中學生的計算思維,能夠讓學生了解并正確對待計算機科學、信息技術相關的系統、問題、行為,能夠從設計者的角度去思考和解決問題,理性對待問題,不斷提高問題求解能力。
本文為2019年度福建省中青年教師教育科研項目(基礎教育研究專項)“基于問題解決過程發展中學生計算思維的實踐研究”(項目編號:JZ190163)的階段性成果,福建教育學院資助。