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