摘要:本文以Python學(xué)習(xí)為例,嘗試用直觀形象的可視化支持策略破解初中生計算思維培養(yǎng)過程中的難題,即通過可視化算法演示、可視化調(diào)試、可視化數(shù)據(jù)呈現(xiàn)、可視化概念理解等策略輔助學(xué)生分析問題、解決問題,培養(yǎng)其計算思維能力。
關(guān)鍵詞:初中生;計算思維;Python程序設(shè)計;可視化支持策略
中圖分類號:G434 文獻(xiàn)標(biāo)識碼:A 論文編號:1674-2117(2024)16-0036-03
初中生計算思維培養(yǎng)之困境
程序設(shè)計是實現(xiàn)計算思維的一種實踐方式,它通過編寫代碼可以將計算機(jī)思維應(yīng)用于實際問題的解決中。Python語言因其簡潔、易讀、高效的特點而受到廣泛歡迎,它是培養(yǎng)學(xué)生計算思維的良好著力點,但在實際的學(xué)習(xí)過程中,學(xué)生遇到了較多的困難:①資源匱乏,興趣不持續(xù);②概念抽象,理解有困難;③實踐不足,成果難顯現(xiàn);④學(xué)習(xí)被動,意識未轉(zhuǎn)變。
可視化支持策略的實踐應(yīng)用
心理學(xué)家赤瑞特拉通過大量的實驗證實人類獲取的信息有83%來自視覺。這一研究結(jié)果強(qiáng)調(diào)了視覺在人類感知和信息獲取中的主導(dǎo)地位。皮亞杰認(rèn)知發(fā)展階段理論表明,初中學(xué)生的思維發(fā)展處于從形象思維邁入抽象思維的階段,他們可以進(jìn)行假設(shè)性思考,解決復(fù)雜的問題,并處理抽象的概念,但是抽象思維的能力還不強(qiáng)。因此,教師在培養(yǎng)學(xué)生計算思維的過程中可適當(dāng)應(yīng)用一些可視化支持策略,以輔助學(xué)生學(xué)習(xí)。
1.可視化算法演示
“算法”是信息科技課程中最基礎(chǔ)的邏輯主線之一,對學(xué)生來說,分析問題、生成算法是學(xué)習(xí)的難點。教師可采用流程圖、表格、動畫視頻等方式引導(dǎo)學(xué)生進(jìn)行探究。實踐證明,這些可視化工具可以有效幫助學(xué)生理解程序的三大結(jié)構(gòu),并輔助其分析復(fù)雜的算法問題。
流程圖對描述算法有著重要的作用。例如,分支結(jié)構(gòu)的變換多樣,它可以分為單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)、嵌套分支結(jié)構(gòu),難度也依次遞增。在遇到復(fù)雜問題時如果不借助流程圖,很容易出現(xiàn)條件遺漏、邏輯不符等問題。例如,輸入一個正整數(shù)n(n<10000),輸出時該數(shù)是幾位數(shù)?在學(xué)生認(rèn)知范圍內(nèi)分析該問題是一個多條件的判斷,所以可以用分支結(jié)構(gòu)解決,先繪制算法流程圖,再編寫代碼,最后調(diào)試運行。
表格列舉變量的值有助于學(xué)生理解程序的運行過程。例如,計算1到100的和,教師將循環(huán)變量i及累加器S的值通過表格列舉出來??梢郧宄乜吹?,循環(huán)變量的取值為1、2、3……100,累加器的值相應(yīng)地為1、3、6……5050。對剛接觸循環(huán)語句的初中生來說,表格比較清楚地展示了程序執(zhí)行過程中變量的變化,有助于其理解循環(huán)語句。
圖形和坐標(biāo)結(jié)合可以有效解決圖形打印的難點。例如,經(jīng)典的圖形打印*號三角形問題。在學(xué)生的認(rèn)知范圍內(nèi),解決這一圖形打印需用到二重循環(huán),內(nèi)、外循環(huán)變量的取值是解決問題的關(guān)鍵。在實踐過程中,教師發(fā)現(xiàn)用講解法和流程圖的方式進(jìn)行引導(dǎo),效果不佳。于是,將圖形放到表格中,給行和列標(biāo)上序號,循環(huán)變量的取值規(guī)律就容易被發(fā)現(xiàn)了。
如圖1所示為要打印的5行*號圖形,用rows表示總行數(shù),用循環(huán)變量i表示行數(shù),用循環(huán)變量j表示列數(shù)。通過觀察不難發(fā)現(xiàn),i的取值為1~5,j的取值為1~i。當(dāng)找到循環(huán)變量的變化規(guī)律后,程序的難點也就突破了。值得注意的是,range函數(shù)在取值時,終值是取不到的,因此range函數(shù)的終值可以寫到rows+1。
動畫和視頻模擬算法執(zhí)行的過程有助于學(xué)生理解比較抽象的復(fù)雜算法,如排序問題等。排序的方法有很多種,如冒泡排序、選擇排序、插入排序、桶排序等。這些算法實現(xiàn)排序的過程是不同的。以冒泡排序為例,教師可以用實物演示或視頻展示的方式,讓n個不同身高的學(xué)生隨意排成一排,從第一個學(xué)生開始兩兩比較,如果前一個學(xué)生比后面一個高,則兩者交換位置,第一輪結(jié)束后最高的學(xué)生就被排到了最后。接著重復(fù)之前的操作,把第二高的學(xué)生排到倒數(shù)第二個,依此類推。通過模擬過程,學(xué)生可以直觀地理解冒泡排序是從第1個數(shù)開始往后兩兩比較,較大的數(shù)往后排,這樣經(jīng)過n-1輪冒泡后,實現(xiàn)身高從小到大的排序。
再如,桶排序的原理和其他幾種排序有較大不同,要對A數(shù)組排序,先將A數(shù)組的每個元素作為B數(shù)組的下標(biāo),進(jìn)行標(biāo)記,凡是標(biāo)記過的,則B數(shù)組該下標(biāo)值元素的值+1,最后輸出B數(shù)組中標(biāo)記過的下標(biāo)值即可,如被標(biāo)記過2次,則輸出2次。如果這樣描述,學(xué)生無法理解,教師用動畫來呈現(xiàn)A和B兩個數(shù)組的值以及如何通過A數(shù)組的值來對B數(shù)組對應(yīng)的下標(biāo)元素進(jìn)行標(biāo)記。如圖2所示,對數(shù)組A中的7個元素進(jìn)行從小到大排序。B數(shù)組作為標(biāo)記的數(shù)組,先把所有元素置零。桶排序開始,A數(shù)組第一個元素是1,將B數(shù)組中下標(biāo)為1的元素加1,即B[1]+1,則B[1]變?yōu)?,A數(shù)組第二個元素也是1,則B[1]+1,此時B[1]為2,依此類推,將A數(shù)組的元素到B數(shù)組中進(jìn)行標(biāo)記。最后,只要根據(jù)B數(shù)組元素的值,輸出對應(yīng)的下標(biāo)即可,如B[1]為2,則輸出2個1,B[2]為0,則不用輸出,B[3]為1,則輸出1個3,最后實現(xiàn)1、1、3、5、5、6、6、7從小到大排序。
2.可視化數(shù)據(jù)呈現(xiàn)
Python有著豐富的可視化庫,如Matplotlib、Seaborn、Turtl等。其中Turtle庫的設(shè)計初衷是為了方便學(xué)生編程和圖形設(shè)計,因此其語法和接口簡單易懂,適合初中生學(xué)習(xí)。Turtle庫是Python的標(biāo)準(zhǔn)庫,使用它不需要額外安裝庫,只需要在Python環(huán)境中引入Turtle模塊就可以開始繪制圖形。它提供了一種簡單、直觀的方法來實現(xiàn)圖形化的繪制,通過控制海龜?shù)囊苿雍托D(zhuǎn)來繪制各種形狀和圖案。使用Turtle庫可以將抽象的編程概念與具體的圖形操作相結(jié)合,幫助學(xué)生更好地理解和掌握編程的基本原理和方法。例如,教師引導(dǎo)學(xué)生用Turtle庫繪制圖形,從簡單正方形到稍復(fù)雜的五角星,再通過循環(huán)生成動態(tài)圖形的創(chuàng)作過程。由于圖形生成的過程直觀可見,學(xué)生對變量、函數(shù)、循環(huán)這些概念的理解便迎刃而解了。如下頁圖3所示為繪制正方形的過程,“向前移動100像素和右轉(zhuǎn)90度”的代碼重復(fù)執(zhí)行四次,就繪制了正方形的四條邊。通過繪制過程,學(xué)生能直觀地理解代碼的含義。
3.可視化調(diào)試工具
在程序設(shè)計過程中,一般的語法錯誤編譯器會進(jìn)行報錯,學(xué)生只需根據(jù)錯誤提示查找錯誤,進(jìn)行修改即可。有時會遇到語法正確但是程序的執(zhí)行結(jié)果不正確的情況,這樣的錯誤比較隱蔽,很難發(fā)現(xiàn)。此時可以用可視化的調(diào)試工具對程序設(shè)置斷點,單步執(zhí)行代碼,觀察變量的取值,從而精準(zhǔn)發(fā)現(xiàn)錯誤的代碼。Python IDLE自帶的Debuger、PyCharm集成開發(fā)環(huán)境等都可以進(jìn)行單步調(diào)試。通過單步調(diào)試的方法可以直觀地逐步執(zhí)行程序,找到循環(huán)語句中的邏輯錯誤。
4.可視化概念理解
隨著學(xué)習(xí)的深入,復(fù)雜概念也隨之而來,如數(shù)組、鏈表、棧、隊列、樹、圖等各種數(shù)據(jù)結(jié)構(gòu),它們有著不同的特點和適用場景。對于初中生來說這些抽象的概念很難理解,而可視化數(shù)據(jù)結(jié)構(gòu)展示可以將抽象的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為圖形化的形式,使學(xué)生更好地理解數(shù)據(jù)結(jié)構(gòu)的組織和操作。
可視化支持策略應(yīng)用的實踐反思
1.防止依賴過度
在教學(xué)實踐中,教師往往傾向于通過各種可視化工具來呈現(xiàn)知識,以幫助學(xué)生理解和記憶。然而,如果過度依賴可視化工具,可能會導(dǎo)致學(xué)生對抽象概念的理解能力下降,甚至喪失獨立思考和解決問題的能力。因此,在應(yīng)用可視化支持策略時,教師需要合理控制使用頻率和方式,引導(dǎo)學(xué)生從多維度思考問題,培養(yǎng)其獨立思考能力。
2.注重實踐應(yīng)用
在計算思維培養(yǎng)中,理論知識的傳授固然重要,但更重要的是讓學(xué)生通過實際操作,將理論知識應(yīng)用到實踐中,培養(yǎng)解決問題的能力。因此,教師在設(shè)計可視化支持策略時,可以結(jié)合實際案例,引導(dǎo)學(xué)生動手實踐,加深對知識的理解,提高計算思維水平。
3.優(yōu)化資源呈現(xiàn)
初中學(xué)生已具備一定的抽象思維能力,教師應(yīng)選擇適合的教學(xué)內(nèi)容,設(shè)計合理的可視化支持工具,采用合理的可視化支持策略,避免信息的冗余。
結(jié)束語
實踐證明,可視化支持策略應(yīng)用可以讓學(xué)生更好地理解和掌握抽象概念和復(fù)雜問題,并在一定程度上激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生的參與度和積極性。但是,教師在應(yīng)用可視化支持策略時一定要適宜,這樣才能更好地培養(yǎng)學(xué)生的計算思維能力。
參考文獻(xiàn):
[1]中華人民共和國教育部.義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)[S].北京:北京師范大學(xué)出版社,2022.
[2]任友群,隋豐蔚,李鋒.數(shù)字土著何以可能?——也談計算思維進(jìn)入中小學(xué)信息技術(shù)教育的必要性和可能性[J].中國電化教育,2016(01):2-8.
[3]王佑鎂,宛平,南希烜,等.實體編程促進(jìn)計算思維發(fā)展:工具與策略[J].中國電化教育,2021(08):92-98.
[4]林椿,顧喆純.指向計算思維發(fā)展的Python語言學(xué)習(xí)任務(wù)群的構(gòu)建與實施——以“一帶一路”主題學(xué)習(xí)任務(wù)群為例[J].小學(xué)教學(xué)研究,2024(15):27-28+31.
本文系江蘇省中小學(xué)教學(xué)研究課題“指向計算思維發(fā)展的Python語言學(xué)習(xí)支持策略的研究”(課題編號:2021JY14-L32)的階段性研究成果。