閔慜
高中信息技術(shù)新教材的編程和算法教學(xué)注重培養(yǎng)學(xué)生的計(jì)算思維,強(qiáng)調(diào)讓學(xué)生從生活出發(fā),利用所學(xué)編程知識(shí)來解決生活中的實(shí)際問題。因此,教師在創(chuàng)設(shè)教學(xué)任務(wù)時(shí),需考慮學(xué)生認(rèn)知的實(shí)際情況,創(chuàng)設(shè)情境,引發(fā)學(xué)生興趣,從生活數(shù)據(jù)出發(fā),注重任務(wù)與任務(wù)之間的聯(lián)系與拓展,引導(dǎo)學(xué)生主動(dòng)思考,不斷分析探究,進(jìn)一步優(yōu)化學(xué)生計(jì)算思維,創(chuàng)設(shè)高效課堂教學(xué)模式。下面,筆者以教科版信息技術(shù)必修1《數(shù)據(jù)與計(jì)算》中的《周而復(fù)始的循環(huán)》一課為例,從生活中的數(shù)據(jù)出發(fā),優(yōu)化課本中的項(xiàng)目案例,探究課堂項(xiàng)目式案例布局與設(shè)計(jì),探尋學(xué)生信息技術(shù)學(xué)科素養(yǎng)的培養(yǎng)。
● 分析探究生活數(shù)據(jù),優(yōu)化項(xiàng)目案例設(shè)計(jì)
在《周而復(fù)始的循環(huán)》這節(jié)課中,如何通過典型的項(xiàng)目式案例讓學(xué)生體驗(yàn)Python語言中循環(huán)的意義以及兩種循環(huán)結(jié)構(gòu)的區(qū)別,從而使學(xué)生在面對(duì)不同實(shí)際問題時(shí)選擇合適的編程語言結(jié)構(gòu)體系,是需要突破的一個(gè)難點(diǎn)。怎樣既能吸引學(xué)生的興趣,引發(fā)學(xué)生對(duì)同一種項(xiàng)目不同問題的思考與總結(jié),又能更好地融合信息技術(shù)學(xué)科素養(yǎng)呢?筆者認(rèn)為,課堂項(xiàng)目式地引入案例尤為重要。
在計(jì)算機(jī)程序中,某些代碼的反復(fù)執(zhí)行稱為循環(huán)。Python中既有重復(fù)一定次數(shù)的計(jì)數(shù)循環(huán),也有重復(fù)到某種情況結(jié)束的條件循環(huán)。本節(jié)課主要圍繞“別小看循環(huán)的魅力”項(xiàng)目展開學(xué)習(xí),分成子項(xiàng)目一“別小看一張紙的高度”和子項(xiàng)目二“別小看0.01的作用”。兩個(gè)項(xiàng)目的案例均來源于學(xué)生能接觸到的生活案例。子項(xiàng)目一主要通過不斷折紙的方式,探究能達(dá)到怎樣的高度;子項(xiàng)目二主要以網(wǎng)絡(luò)中的雞湯公式1.01365=37.8和0.99365=0.03為基礎(chǔ)進(jìn)行變式,探究人的成長依據(jù)網(wǎng)紅公式的計(jì)算方式,多久能達(dá)到夢(mèng)想的高度。
筆者通過子項(xiàng)目一幫助學(xué)生復(fù)習(xí)for循環(huán),并設(shè)立條件,引入while循環(huán)的使用。問題如下:假設(shè)現(xiàn)有一張白紙的厚度大約是0.1毫米,對(duì)折一次,厚度變?yōu)?.2毫米,再對(duì)折一次,厚度變?yōu)?.4毫米……每對(duì)折一次,其厚度均變?yōu)閷?duì)折前的2倍。假設(shè)這張紙有足夠大,可對(duì)折任意次,那么把它折疊20次,求出折疊20次后的厚度h(米)。學(xué)生利用Python中for循環(huán)的語法結(jié)構(gòu)求出厚度后,教師再提出疑問:折疊多少次,紙的厚度能超過珠穆朗瑪峰的高程?學(xué)生已有的知識(shí)無法解決該問題,因此筆者自然引入新的知識(shí)要點(diǎn)——while循環(huán)語句的語法結(jié)構(gòu),學(xué)生獲得新知后再進(jìn)一步解決項(xiàng)目問題。
項(xiàng)目中設(shè)立對(duì)立的條件讓學(xué)生思考新舊知識(shí)的聯(lián)系與異同,同時(shí)擴(kuò)充生活中的實(shí)時(shí)數(shù)據(jù),讓學(xué)生進(jìn)一步感受利用編程語句解決實(shí)際生活問題的過程,初步融入信息技術(shù)核心素養(yǎng)的培養(yǎng)。
● 總結(jié)提煉,突破編程語言難點(diǎn)
本節(jié)課中,通過子項(xiàng)目一突破了區(qū)分計(jì)數(shù)循環(huán)和條件循環(huán)的不同之處,學(xué)生對(duì)兩種循環(huán)的使用及程序編寫有了一定認(rèn)知,但仍停留于教師引導(dǎo)下的被動(dòng)思維與被動(dòng)的程序編寫。如何更好地引導(dǎo)學(xué)生運(yùn)用新知解決新的問題,從而實(shí)現(xiàn)新知識(shí)的遷移?項(xiàng)目案例的設(shè)計(jì)需要提升難度,同時(shí)又要與子項(xiàng)目一的思維方式有一定的聯(lián)系,在聯(lián)系的基礎(chǔ)上進(jìn)行拓展,進(jìn)一步促進(jìn)學(xué)生的思維遷移,強(qiáng)化編程語言的難點(diǎn)內(nèi)容。
基于此,本節(jié)課中引入了子項(xiàng)目二“別小看0.01的作用”。該項(xiàng)目中以網(wǎng)絡(luò)中的雞湯公式1.01365=37.8和0.99365=0.03為基礎(chǔ)進(jìn)行變式,把學(xué)生分成100組和0.01組,分別利用Python程序去探究,按照網(wǎng)絡(luò)中的雞湯公式的計(jì)算方法:如果你每天比原來多做一點(diǎn)點(diǎn)(+0.01),每天以原來的1.01倍成長,多久之后,你就達(dá)到你原來水平的100倍?(100組研究內(nèi)容)如果你每天比原來少做一點(diǎn)點(diǎn)(-0.01),每天以原來的0.99倍成長,多久之后,你達(dá)到了原來水平的0.01?(0.01組研究內(nèi)容)
筆者與學(xué)生共同總結(jié)提煉出了項(xiàng)目中的核心要素:①判斷循環(huán)執(zhí)行的條件是什么?②重復(fù)執(zhí)行的語句又是什么?學(xué)生在新知學(xué)習(xí)的基礎(chǔ)上進(jìn)一步思考如何將新知進(jìn)行遷移,融合新知難點(diǎn),解決新項(xiàng)目中的相關(guān)問題。例如,100組要解決如何通過Python語句實(shí)現(xiàn)“達(dá)到原來水平的100倍”“每天以原來的1.01倍成長”“天數(shù)增加”?0.01組要解決如何通過Python語句實(shí)現(xiàn)“達(dá)到原來水平的0.01”“每天以原來的0.99倍成長”“天數(shù)增加”?看似兩組內(nèi)容相似,其實(shí)不然。對(duì)比兩組程序語句,學(xué)生要思考增長與負(fù)增長對(duì)應(yīng)的編程語句和運(yùn)算符號(hào)的正確使用,需要在總結(jié)中合理遷移,突破編程語言難點(diǎn)。
● 融合升華,拓展學(xué)生計(jì)算思維
Python編程語言的使用能幫助學(xué)生更好地進(jìn)行數(shù)據(jù)的計(jì)算,但在計(jì)算的過程中,需要學(xué)生對(duì)現(xiàn)實(shí)生活中的項(xiàng)目數(shù)據(jù)進(jìn)行論證,辨別數(shù)據(jù)的真?zhèn)危@也是學(xué)生計(jì)算思維的體現(xiàn)。本節(jié)課中,在學(xué)生解決子項(xiàng)目二的基礎(chǔ)上,教師結(jié)合100組和0.01組的編程語句,升華提煉,優(yōu)化成一個(gè)小程序,讓學(xué)生輸入每天努力或退步的因素以及夢(mèng)想達(dá)到的倍數(shù),程序系統(tǒng)給出答案:多少天后能達(dá)到夢(mèng)想的高度。讓學(xué)生測試運(yùn)行程序,同時(shí)讓學(xué)生思考:人的努力或成長用這種計(jì)算方式是否可行?學(xué)生通過測試發(fā)現(xiàn),指數(shù)級(jí)別的成長速度是不可取的。網(wǎng)絡(luò)中的雞湯公式只能是表面上的激勵(lì),通過程序語句深思推敲后,可能就會(huì)漏洞百出。教師給出案例,讓學(xué)生進(jìn)一步思考:1.01365=37.8,1.02365=1377.4和0.01*365=3.65,0.02*365=7.3兩組計(jì)算方式,讓學(xué)生發(fā)現(xiàn)計(jì)算的方式不一樣,編寫程序的算法不一樣,得到的結(jié)果往往是千差萬別的。當(dāng)然,不論是累乘指數(shù)級(jí)的上升還是累加一點(diǎn)一滴的進(jìn)步,它都是人不斷進(jìn)步、積少成多的綜合體現(xiàn)。
筆者設(shè)計(jì)子項(xiàng)目二的目的,不僅是讓學(xué)生掌握while循環(huán)的基本使用,更是讓學(xué)生體驗(yàn)循環(huán)結(jié)構(gòu)的魅力。每天積累一點(diǎn)點(diǎn),日積月累,就能有不一樣的收獲,這是人生的閱歷,也是循環(huán)帶給學(xué)生的啟示。編程不僅是更好地實(shí)現(xiàn)計(jì)算,更要注重算法的設(shè)計(jì)以及算法在實(shí)際生活中的真實(shí)運(yùn)用,這也是信息技術(shù)核心素養(yǎng)的體現(xiàn)。
本節(jié)課是基于循環(huán)結(jié)構(gòu)課例的嘗試,通過優(yōu)化課本中的項(xiàng)目案例幫助學(xué)生更好地感受Python編程語句中循環(huán)的意義及使用方法,同時(shí)希望通過案例的設(shè)計(jì)及優(yōu)化,進(jìn)一步幫助學(xué)生感受發(fā)掘生活數(shù)據(jù)的魅力,更好地培養(yǎng)學(xué)生的信息技術(shù)素養(yǎng)。在信息技術(shù)教學(xué)中,教師應(yīng)結(jié)合項(xiàng)目案例帶領(lǐng)學(xué)生激發(fā)學(xué)習(xí)的主動(dòng)性,主動(dòng)地對(duì)知識(shí)進(jìn)行深入挖掘,引導(dǎo)學(xué)生獨(dú)立思考。項(xiàng)目任務(wù)的設(shè)計(jì)要結(jié)合學(xué)生的認(rèn)知能力,合理制訂學(xué)習(xí)目標(biāo),合理設(shè)計(jì)每個(gè)項(xiàng)目的意義,確保項(xiàng)目內(nèi)容的趣味性和深刻性,讓學(xué)生掌握知識(shí)內(nèi)涵,使其能夠自主學(xué)習(xí),提升計(jì)算思維能力。