李曉霞
(廣州市從化區(qū)第七中學(xué),廣東 廣州 510000)
人工智能技術(shù)以及大數(shù)據(jù)技術(shù)的廣泛應(yīng)用,使得計算思維的培養(yǎng)越來越受到重視,成為中學(xué)信息技術(shù)課程標(biāo)準中的核心素養(yǎng)之一。廣州市教育研究院信息技術(shù)科在信息技術(shù)課程綱要中提出,初中Python教學(xué)是讓學(xué)生經(jīng)歷“問題分析-選擇算法-設(shè)計程序-調(diào)試修改”等環(huán)節(jié),體驗應(yīng)用程序開發(fā)的過程與方法,明確了計算思維的培養(yǎng)在Python 程序設(shè)計教學(xué)中的重要性。
Python 程序設(shè)計作為初中新興課程,對于培養(yǎng)學(xué)生計算思維的教學(xué)實踐并不多,教學(xué)模式和課程設(shè)計也多停留在計算思維意識的培養(yǎng),未能足夠落到具體的能力培養(yǎng)上。學(xué)生在學(xué)習(xí)過程中更多的是模仿練習(xí),對學(xué)生思維能力和問題解決能力的關(guān)注不足。初中學(xué)生計算機基礎(chǔ)知識普遍薄弱,且思維急進,在程序設(shè)計課程中,學(xué)生往往更關(guān)注程序的運行結(jié)果,而忽略程序的設(shè)計過程,很難形成有效的思維模式。如何利用Python 程序設(shè)計課程培養(yǎng)學(xué)生計算思維,我從以下幾方面進行實踐探究。
新教材提供的Python 程序案例資源非常有限,多數(shù)以求解數(shù)學(xué)類問題的教學(xué)案例為主線,對于剛剛接觸程序設(shè)計的學(xué)生來說,程序設(shè)計語言是一種全新的思維訓(xùn)練過程。然而,枯燥的程序設(shè)計語言語法學(xué)習(xí)和單一形式的問題求解實踐降低了學(xué)生的學(xué)習(xí)興趣,并使得他們對程序設(shè)計產(chǎn)生了理想和現(xiàn)實差距的困惑。這就需要教師設(shè)計出符合初中學(xué)生認知能力并感興趣的課程內(nèi)容與教學(xué)任務(wù),構(gòu)建一個可以完美解決學(xué)生在實際生活之中經(jīng)常會遇到的問題的生活情境,充分吸引學(xué)生目光,保證教學(xué)過程有序高效地進行。在制定教學(xué)情境任務(wù)時,結(jié)合Python 課程具備的帶有趣味性、工具性以及綜合性的特征,呈現(xiàn)帶有一定難度的任務(wù),為后續(xù)教學(xué)的開展打下基礎(chǔ)。任務(wù)的布置需要達到讓學(xué)生夠一夠就可以努力完成的地步,以此提高學(xué)生學(xué)習(xí)自信心。與此同時,課程任務(wù)的布置需要與學(xué)生日常生活進行緊密聯(lián)系,以此充分吸引學(xué)生學(xué)習(xí)目光,保證教學(xué)課堂的效率。
例如,編寫一個程序,由用戶輸入他的身高體重,計算他的身體質(zhì)量指數(shù)BMI=體重(kg)/身高(m)的平方,再通過BMI的值判斷體型是“標(biāo)準”“偏胖”“偏瘦”。此案例貫穿了程序設(shè)計順序結(jié)構(gòu)與分支結(jié)構(gòu)的學(xué)習(xí),并且是初中學(xué)生都比較感興趣和注重的體重與身高的相關(guān)問題,激發(fā)學(xué)生編程欲望。先雙分支,再多分支逐步掌握if 語句的應(yīng)用,推動學(xué)生自主積極思考,感受自身思維產(chǎn)生的變化,并且深刻體驗運用計算思維解決實際問題的過程。
初中Python 課程教學(xué)知識點眾多且復(fù)雜,在學(xué)習(xí)過程中,獨立完成編程任務(wù)學(xué)生會覺得十分困難。一個人的思維容易固化,一旦算法形成,即使出錯也難以找到原因,而多人組隊,協(xié)作編程是組員共同完成問題分析、算法設(shè)計、編寫代碼,調(diào)試驗證的過程,有利于提高學(xué)生們協(xié)作探究意識,集思廣益,開闊思維,編程效率明顯提高。組隊協(xié)作,還能以強帶弱,編程學(xué)困生可以及時得到幫助。因此,在教學(xué)初期,我就按照機位把學(xué)生分成三人小組或四人小組,小組成員互相協(xié)作幫助,思維碰撞,共同完成任務(wù)。同時我經(jīng)常將大任務(wù)分成幾個小任務(wù),而后交付給各個學(xué)習(xí)合作小組負責(zé),從而提高學(xué)生自主探究意識。
例如,在“現(xiàn)已知三角形的三條邊長分別為a、b、c,請你們利用Python 程序判斷三條邊是否可以形成三角形”案例中,學(xué)生分組進行嘗試編程和測試,如程序調(diào)試失敗,小組成員應(yīng)共同探究。當(dāng)一名學(xué)生編制成功后,小組成員的角色可互換,以保證班級中每一名學(xué)生都可以掌握知識點。
又如,在學(xué)習(xí)了for 循環(huán)語句之后,學(xué)生對循環(huán)程序的執(zhí)行過程已經(jīng)有所理解,當(dāng)進行while 循環(huán)語句的學(xué)習(xí)時,我直接在講述語句結(jié)構(gòu)之后,讓學(xué)生改寫for 循環(huán)程序,用while 語句實現(xiàn),交給小組討論,共同完成。小組成員一同對程序進行反復(fù)推敲、糾錯與完善,此時學(xué)生不是一個個體,每個人都有自己的思路算法,通過嘗試,組員之間的交流過程就是思維的鍛煉過程。
初中Python 教學(xué)是讓學(xué)生經(jīng)歷“問題分析-選擇算法-設(shè)計程序-調(diào)試修改”等環(huán)節(jié),體驗應(yīng)用程序開發(fā)的過程與方法。對于程序設(shè)計初學(xué)者而言,直接編寫程序是有難度的。在課堂上,每當(dāng)學(xué)習(xí)一個新語句,我會讓學(xué)生先讀懂程序,學(xué)習(xí)程序的算法思想和代碼的書寫格式,并調(diào)試驗證。在領(lǐng)悟樣例程序的執(zhí)行過程后,任務(wù)層層遞進,讓學(xué)生深入思考和分析,形成新的程序算法,改寫程序,解決類似問題,這也是一個思維訓(xùn)練的過程。
例如,在學(xué)習(xí)for 循環(huán)語句與range()函數(shù)相結(jié)合解決數(shù)字累加累乘問題時,我的任務(wù)設(shè)計是這樣的:
在Python 課程教學(xué)之中,利用流程圖可以幫助學(xué)生精準快速找到程序邏輯,了解變量的變化軌跡與程序運行過程,讓程序算法思路更加清晰地體現(xiàn)。流程圖在初中Python 課程教學(xué)中可以幫助學(xué)生對程序設(shè)計思想的理解,充分展現(xiàn)學(xué)生算法思路,提升其計算思維。
例如,猜數(shù)游戲,隨機生成一個數(shù),猜數(shù)并反饋大了小了,直到猜對。讓學(xué)生用自然語言描述過程,再利用流程圖直譯工具進行梳理,觀察運行過程和結(jié)果,最后根據(jù)理清的程序邏輯,嘗試編寫代碼,從而促使學(xué)生掌握清晰的算法思路,提高其計算思維。
利用課堂輔助軟件,學(xué)生把設(shè)計的py 程序上傳至學(xué)生網(wǎng)盤,教師即時評價學(xué)生作業(yè),通常兩種情況下進行全班展示。
一是展示運行失敗的程序。找出大部分學(xué)生容易出現(xiàn)的錯誤,全班展示,一起找錯,糾錯,提高學(xué)生程序分析、語法檢測的能力和編程水平,課堂效率同時也得到提高。
二是展示算法優(yōu)秀的程序。鼓勵優(yōu)秀學(xué)生,讓學(xué)生在優(yōu)秀作業(yè)中領(lǐng)悟別人的算法思路,對比中成長,共同提高,同時還為有編程困難的學(xué)生給予提示指引。
總之,計算思維的培養(yǎng)并不是一蹴而成,而是個循序漸進的過程。信息技術(shù)教師需要積極創(chuàng)新并尋找合適的教學(xué)手段,結(jié)合Python課程的實際特征,吸引學(xué)生學(xué)習(xí)熱情,引導(dǎo)學(xué)生學(xué)會分析問題、設(shè)計思路,提高學(xué)生解決實際問題的能力,真正達到培養(yǎng)學(xué)生計算思維能力的目的。