黃小敏
[摘 要]計算思維是信息科技課程所要培養(yǎng)的核心素養(yǎng)之一,也是高中信息技術(shù)學科核心素養(yǎng)之一,同時也是中學信息技術(shù)教育教學研究的熱點課題之一。Python程序設計是廣州市初中信息技術(shù)必修課,在計算思維引領下的Python程序設計教學,能激發(fā)學生的學習興趣,訓練學生分解、抽象、算法設計、建模等多方面的思維能力。文章結(jié)合初中Python程序設計教學的現(xiàn)狀,探索基于計算思維的初中Python程序設計教學的一般流程與方法,以培養(yǎng)學生的計算思維與提高學生的學習效率。
[關鍵詞]計算思維;初中;Python程序設計
[中圖分類號] ? ?G633.67 ? ? ? ?[文獻標識碼] ? ?A ? ? ? ?[文章編號] ? ?1674-6058(2023)02-0095-04
2018年初,教育部發(fā)布《普通高中信息技術(shù)課程標準(2017 年版)》,將計算思維定為高中信息技術(shù)學科核心素養(yǎng)之一,要求高中信息技術(shù)課程教學著重培養(yǎng)學生的計算思維?!读x務教育信息科技課程標準(2022年版)》也指出,計算思維是信息科技課程所要培養(yǎng)的核心素養(yǎng)之一。對此,初中信息技術(shù)教學也應注重培養(yǎng)學生的計算思維。初中階段是學生抽象邏輯思維快速發(fā)展的重要階段,而計算思維是一種集合多種思維的綜合性思維,它可以促進學生抽象邏輯思維、辯證思維的發(fā)展。因此,培養(yǎng)初中生的計算思維非常重要且必要。
一、初中Python程序設計教學的現(xiàn)狀
程序設計不僅是培養(yǎng)學生計算思維的理想平臺,而且是培養(yǎng)學生計算思維的最佳切入點與途徑。近年來,Python教學迅速興起,山東、四川、浙江等地早已把Python納入初中信息技術(shù)課程體系。2021年,廣州市也將Python納入初中信息技術(shù)教材。面對新教材,教師在教學過程中總會有一些困惑與疑問。下面筆者結(jié)合教材內(nèi)容和自身的教學實踐,分析本校學生學習Python程序設計和教師教學Python程序設計的現(xiàn)狀。
學生層面:我校位于城鄉(xiāng)接合部,大部分學生來自農(nóng)村以及來穗務工家庭,他們沒有Python程序設計基礎,信息技術(shù)知識與技能基礎薄弱。一方面,學生普遍認為Python 程序設計內(nèi)容深奧,難以理解與掌握,只是機械地模仿教師的程序代碼,未能深刻理解程序設計語言,出現(xiàn)畏難心理。另一方面,由于信息技術(shù)并不是中考科目,一些學生不重視信息技術(shù)的學習,學習態(tài)度也不夠端正,因而學習效果并不理想。
教師層面:Python剛進入初中信息技術(shù)教材,相關教學參考資料不夠豐富,課堂同步教學資源較少,這就需要教師花大量的時間和精力來收集教學素材與教學資源。信息技術(shù)教材將VB語言改為Python語言,但教師還是沿用VB語言的思維習慣來組織教學,這不利于體現(xiàn) Python 語言的獨特優(yōu)勢。傳統(tǒng)的程序設計教學以講練結(jié)合為主,即教師把知識點講清楚,然后讓學生進行相關練習。這種教學方法忽視了對學生計算思維的培養(yǎng),使得學生對Python程序設計理解不深刻,導致有的學生只是簡單地模仿,未能達到運用程序去解決問題的要求。
根據(jù)本校學生Python程序設計學習以及教師Python程序設計教學的現(xiàn)狀,筆者積極研究與探索基于計算思維的Python程序設計教學方法,旨在培養(yǎng)學生的計算思維和提高學生的學習效率,促進學生信息技術(shù)學科核心素養(yǎng)不斷發(fā)展。
二、基于計算思維的初中Python程序設計教學實踐
在初中Python程序設計教學中,教師不能枯燥地講解算法、程序設計語言格式以及其他知識點,更不能讓學生只停留在模仿教師的操作上,應當把各個知識點融入具體的生活案例當中,讓學生通過分析實例、抽象模型、編寫代碼、調(diào)試與解決問題等一系列活動,體驗一個完整的程序的設計過程,掌握運用程序解決問題的方法,從而培養(yǎng)學生的思維能力。下面筆者立足于自身的教學實踐,談談如何基于計算思維有效開展初中Python程序設計教學。
(一)展示生活案例,引導學生分析問題,培養(yǎng)學生的分解思維能力
廣州初中信息技術(shù)新教材中有許多生活案例,比如“分支結(jié)構(gòu)”中的蘋果打折、階梯電價、平年閏年、停車場收費等案例。這類生活案例能夠激發(fā)學生的學習興趣,同時讓學生明白程序設計與生活密切相關,且能夠解決生活中各種各樣的問題。當然,信息技術(shù)教材中也并非所有內(nèi)容都是與生活相關的,如《Python編程基礎》教材就注重知識點講解,內(nèi)容較為枯燥,對此筆者利用學生熟悉的主題內(nèi)容“我的校園”去貫穿課堂教學。如筆者通過“我的校園”來引導學生學習賦值語句,再通過 “介紹我們班”“統(tǒng)計班級人數(shù)變化”等任務引導學生理解和應用賦值語句。而對于輸入語句input( ),筆者則通過 “班級表彰”的活動來引導學生學習。最后是賦值語句與輸入語句的綜合應用,把課本練習“求長方形的面積”改為“求學校教室的面積”“求學校圓形花壇的面積”,讓學生去分析、去探索、去學習。這樣,利用生活案例,讓原來枯燥的教學內(nèi)容變得富有趣味,且讓學生了解到程序設計既來源于生活,又為生活服務,從而大大激發(fā)學生的學習興趣。
生活案例能激發(fā)學生的學習興趣與熱情,可生活案例中的情景卻是較為煩瑣、復雜的,因此需要引導學生對生活案例進行分析與分解。分解是計算思維的組成部分之一,一般是指將一個復雜的問題分解為更小、更簡單的幾個問題。面對復雜的問題,學生要對它進行分析,將它化繁為簡。學生在分析與分解問題的過程中初步形成了分解思維。
首先針對我校學生信息技術(shù)知識與技能基礎薄弱的情況,筆者設計了相關習題,引導學生分析與分解問題,培養(yǎng)學生的分解思維。比如學生做有關階梯電價的課后習題時無從下手,對此筆者引導學生用數(shù)學的分段函數(shù)來分解問題:(1)計算用電200度以內(nèi)的電費;(2)計算用電200~500度的電費;(3)計算用電500度以上的電費。學生能較好地理解用電200度以內(nèi)的電費,可是求解用電200~500度以及用電500度以上的電費時卻無從下手了。對此,筆者引導學生再次分解,用電200~500度的電費分解為用電200度的電費和用電超過200度的電費。同理,用電500度以上的電費則可分解為用電200度的電費、用電200~500度的電費和用電超過500度的電費。學生用自然語言分析與分解完題目后,便很容易得出表達式,再通過教師引導,學生基本能理解階梯電價的求解過程。學生把實際問題分解成幾個可操作的步驟,初步算式已經(jīng)在腦海中形成,提高了分解思維能力。
(二)利用流程圖,厘清學生的抽象思維
抽象與建模思維是計算思維的重要組成部分。抽象是指從眾多的事物中提取出共同的、本質(zhì)的特征。在廣州初中信息技術(shù)新教材中程序設計的開篇第一課便講到了流程圖以及fChart流程圖直譯器,目的在于輔助學生理解算法,體驗程序執(zhí)行過程。在學生分解探討上述的階梯電價問題后,教師可引導學生使用fChart流程圖直譯器完善“階梯電價”流程圖(如圖1)。學生完善流程圖的過程,是學生用科學的概括性的符號來表示現(xiàn)實問題的求解步驟的過程,也是建立抽象思維的過程。通過利用流程圖,學生厘清了算法,提升了抽象思維能力。學生完善流程圖后,還可以用fChart流程圖直譯器來執(zhí)行流程圖,觀察其執(zhí)行過程與結(jié)果,厘清抽象思維。
(三)突出核心算法,體驗程序設計方法,訓練算法設計思維
算法是指解決問題的步驟和方法。算法設計是計算思維的核心部分之一,也是初中Python程序設計教學中最為關鍵與重要的環(huán)節(jié),初中階段的Python程序設計教學應以算法為核心。在上一步驟中,學生已經(jīng)通過流程圖厘清了算法??墒?,對我校學生而言,提煉算法形成程序代碼難度依然很大,有的學生會在程序語句表達中出錯,有的學生未能完全理解算法。因此,在程序設計的過程中,教師需要提供程序設計半成品,只讓學生對程序的核心部分進行加工,同時結(jié)合流程圖進行思考。大部分學生都能學會程序設計的方法,體驗算法思想。在“階梯電價”案例中,教師給出了程序設計半成品(如圖2),學生只需要集中精力完成if...elif...else條件句結(jié)構(gòu)程序設計即可。這樣,既能突出重點條件句程序設計結(jié)構(gòu),降低程序設計學習難度,又能達到訓練算法設計思維的目的。
(四)自主調(diào)試與小組糾錯相結(jié)合,鞏固計算思維
調(diào)試是程序設計中的一個重要環(huán)節(jié),貫穿于程序設計的各個過程。學生從設計程序開始,就需要不斷地進行調(diào)試。學生在調(diào)試程序的過程中進行分析與分解、抽象與建模,然而并不是每名學生都能如愿調(diào)試出正確的程序結(jié)果。對部分計算思維能力較弱的學生而言,他們的程序設計可能錯漏百出,有的學生中英文標點符號出錯,有的學生忘記縮進,有的學生不能理解程序代碼,而當這部分學生不能獨立調(diào)試出程序時,他們的學習積極性就會下降。因此,在學生獨立調(diào)試后,教師可采用小組糾錯的方式,給計算思維能力較弱的學生提供支持與幫助,提高他們的課堂練習參與度,增強他們學習程序設計的自信心,而計算思維能力強的學生則可通過教授與幫助他人,再次鞏固自己的計算思維。
(五)歸納拓展,遷移思維
在初中Python程序設計教學中,教師除了要讓學生梳理與回顧所學的知識,還要讓學生通過類比等方式將一個問題的解決方法拓展、遷移應用到同類型的問題中。學生在歸納知識與完成拓展任務的過程中,需再次經(jīng)歷分解、抽象、算法設計等思維訓練,從而提升了計算思維能力。在“分支結(jié)構(gòu)”的學習中,學生完成階梯電價的求解后,教師引導學生繼續(xù)按照上述流程與方法,自主探究與小組合作設計“平年閏年”程序、停車場收費程序等,引導學生學會綜合應用與思維遷移。由淺入深、螺旋式上升的學習拓展活動,能讓學生逐步遷移思維。
三、基于計算思維的初中Python程序設計教學實踐效果
為了驗證基于計算思維的初中Python程序設計教學的有效性,筆者通過易學系統(tǒng)對教學過程和結(jié)果進行了分析。其中3班、4班為實驗組,采用的是基于計算思維的程序設計教學方法;1班、2班為對照組,采用的是“講練結(jié)合”教學方法。筆者一共做了兩次分析,第一次分析是在“二選一、多選一結(jié)構(gòu)”教學中的即時反饋,本次檢測內(nèi)容以課本例題以及課后習題為主。第二次分析是在完成了“分支結(jié)構(gòu)”教學后的一個星期,再次對學生分支結(jié)構(gòu)知識的掌握情況進行評價,本次檢測內(nèi)容與第一次大致相同,只做了簡單的變式。
實驗數(shù)據(jù)顯示第一次檢測實驗組與對照組差異不大(如圖3),學習效果也相當,正確率高達90%。使用同類型題目進行第二次檢測,實驗組與對照組的數(shù)據(jù)出現(xiàn)明顯差異(如圖4),實驗組正確率在80%以上,而對照組正確率卻低于70%。
通過兩次檢測數(shù)據(jù)可以看出,傳統(tǒng)的“講練結(jié)合”教學方法與基于計算思維的程序設計教學方法在課堂即時反饋中都取得較好的效果,原因是在當堂的教學過程中學生能通過模仿教師的程序范例,較好地完成練習(這其中包括完全能理解與應用該知識的學生,也包括只會簡單模仿教師的程序范例的學生)。而在第二次檢測中,我們發(fā)現(xiàn)兩組學生的答題正確率都有所下降,但對照組學生的答題正確率出現(xiàn)較大幅度的下降,實驗組學生的答題正確率下降的幅度較小。分析其原因有兩個:第一,學生對知識存在遺忘;第二,學生對知識的掌握不夠扎實。實驗組的學生對知識掌握得較好,大多能理解并運用程序去解決問題,知識遺忘率也較低。于是,在脫離課堂范例的情況下,依然能應用知識去解決同類問題。而采用傳統(tǒng)的“講練結(jié)合”教學方法,學生的知識掌握不夠扎實,有部分學生只會模仿程序,不理解程序,更不會運用程序去解決問題,知識遺忘率較高。綜合兩次檢測的數(shù)據(jù),筆者發(fā)現(xiàn)基于計算思維的程序設計教學方法比“講練結(jié)合”教學方法更好。
四、小結(jié)與展望
對初中生來說,程序設計是相對較為復雜且枯燥的內(nèi)容,計算思維的引領能讓學生的程序設計思路清晰,并透徹理解知識。因此,筆者在探索課程標準與計算思維理論的基礎上提出了初中Python程序設計教學的一般流程與方法,該流程與方法的應用對學生計算思維的培養(yǎng)起著積極的促進作用。首先,學生分析與分解問題的思維能力得到了提升。通過對生活案例的分析,學生了解到程序設計與生活密切相關,能夠自主發(fā)現(xiàn)問題、分析分解問題,初步形成分解思維。其次,學生抽象思維能力有一定的提高,學生學會抓住問題核心,化繁為簡并且厘清思維,提升抽象思維能力。再次,學生的算法設計思維能力得到了提升。在算法提煉與程序設計過程中訓練了計算思維,在調(diào)試糾錯與歸納拓展過程中鞏固了計算思維。最后,學生學習程序設計的態(tài)度發(fā)生了改變,過去學生對程序設計的態(tài)度是“害怕”“不理解”“機械模仿”,而在計算思維的引領下,學生對程序設計有了更為深刻的認識,能夠靈活運用程序解決生活中的問題,對程序設計也產(chǎn)生了濃厚的學習興趣,能積極參與課堂活動,提高學習效率。然而,由于Python剛納入廣州市初中信息技術(shù)教材,關于計算思維在初中Python程序設計中的培養(yǎng)方法的研究還需要在實踐中不斷總結(jié)、不斷思考、不斷探索,只有這樣,才能形成適合本校學生并具有區(qū)域推廣意義的教學方法。
[ ? 參 ? 考 ? 文 ? 獻 ? ]
[1] ?WING J M. Computational thinking[J].Communication of the ACM,2006(3):33-35.
[2] ?中華人民共和國教育部.教育部關于印發(fā)《普通高中課程方案和語文等學科課程標準(2017年版)》的通知[EB/OL].(2017-12-29)[2018-01-20].http://www.moe.gov.cn/srcsite/A26/s8001/201801/t20180115_324647.html.
[3] ?段青.《基礎教育信息技術(shù)課程標準(2012版)》義務教育階段基礎模塊內(nèi)容標準解讀[J].中國電化教育, 2012(10):28-32.
(責任編輯 黃春香)