許曉璐

新課改強(qiáng)調(diào)發(fā)展學(xué)科核心素養(yǎng),其中發(fā)展計(jì)算思維是當(dāng)前k-12階段教育的重中之重。但如何能夠有效捕捉學(xué)習(xí)者的思維活動(dòng)過(guò)程,了解學(xué)習(xí)者計(jì)算思維的發(fā)展動(dòng)態(tài),提升其計(jì)算思維素養(yǎng),是本文研究的重點(diǎn)。因此,本文引入計(jì)算思維可視化表征方法,借助程序流程圖這一可視化思維工具,結(jié)合計(jì)算思維的四個(gè)要素,探索小學(xué)階段有效提升學(xué)習(xí)者計(jì)算思維的編程教學(xué)方法。
2022年4月,教育部發(fā)布的《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》文件,反映了數(shù)字時(shí)代下學(xué)科素養(yǎng)的重要性。課標(biāo)中對(duì)“計(jì)算思維”的素養(yǎng)內(nèi)涵闡述為:計(jì)算思維是指?jìng)€(gè)體運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,在問(wèn)題解決過(guò)程中涉及的抽象、分解、建模、算法設(shè)計(jì)等思維活動(dòng),具備計(jì)算思維的學(xué)習(xí)者,能對(duì)問(wèn)題進(jìn)行抽象、分解、建模,并通過(guò)設(shè)計(jì)算法形成解決方案;能?chē)L試模擬、仿真、驗(yàn)證解決問(wèn)題的過(guò)程,反思、優(yōu)化解決問(wèn)題的方案,并將其遷移運(yùn)用于解決其他問(wèn)題。計(jì)算思維屬于建構(gòu)性思維,但在學(xué)習(xí)者學(xué)習(xí)編程的過(guò)程中,其思維方式及思維加工過(guò)程很難被教師所了解,尤其在問(wèn)題的識(shí)別與分解,對(duì)問(wèn)題進(jìn)行抽象建模,以及算法設(shè)計(jì)實(shí)現(xiàn)方案這四個(gè)要素中。目前評(píng)估學(xué)習(xí)者計(jì)算思維發(fā)展水平的方法中,基本以評(píng)估學(xué)習(xí)者制作的編程項(xiàng)目為主。但只是以學(xué)習(xí)者制作的編程項(xiàng)目來(lái)評(píng)價(jià)其計(jì)算思維的發(fā)展水平,很顯然是一種輕過(guò)程重結(jié)果的做法,不利于學(xué)習(xí)者計(jì)算思維的培育。
從眾多文獻(xiàn)的研究中可以發(fā)現(xiàn),目前關(guān)于計(jì)算思維的研究,多集中于對(duì)計(jì)算思維的概念、內(nèi)涵與課程開(kāi)發(fā)設(shè)計(jì)的研究。從工程設(shè)計(jì)的角度出發(fā),目前的研究階段,更多集中在編程項(xiàng)目的方案實(shí)現(xiàn)上。我們?cè)诰幊探虒W(xué)課堂中常常可以看到,教師設(shè)計(jì)的教學(xué)環(huán)節(jié)上,在學(xué)生理解、識(shí)別情境問(wèn)題后便跳躍到腳本編寫(xiě)的環(huán)節(jié),中間缺少了對(duì)問(wèn)題的抽象、分解、建模的過(guò)程,學(xué)生也就缺乏了將問(wèn)題從現(xiàn)實(shí)轉(zhuǎn)變?yōu)槌橄蟮哪芰ΑA硗?,在?dāng)前小學(xué)階段的編程教學(xué)論文中,有關(guān)計(jì)算思維培養(yǎng)策略的實(shí)踐研究并不少,但真正關(guān)注學(xué)習(xí)者的計(jì)算思維過(guò)程并不多,這顯然不利于計(jì)算思維的培養(yǎng)。由此可見(jiàn),我們必須找到一種能夠監(jiān)測(cè)學(xué)習(xí)者思維活動(dòng)過(guò)程的工具,以此記錄他們的思維加工過(guò)程。因此,筆者在編程教學(xué)中,選擇了作為計(jì)算思維加工過(guò)程的可視化承載工具——程序流程圖,通過(guò)指導(dǎo)學(xué)習(xí)者繪制程序流程圖,先對(duì)問(wèn)題進(jìn)行識(shí)別,再將問(wèn)題分解并抽象化表示,最后尋求合理的算法優(yōu)化途徑,直至方案實(shí)現(xiàn)。學(xué)習(xí)者于整個(gè)教學(xué)過(guò)程中,在程序流程圖的輔助下,學(xué)會(huì)運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,一步一步從分析問(wèn)題到解決問(wèn)題,最后實(shí)現(xiàn)項(xiàng)目程序的編制,達(dá)成計(jì)算思維之發(fā)展。
一、現(xiàn)階段編程教學(xué)中存在的問(wèn)題
(一)教師教學(xué)理念傳統(tǒng),輕思維能力培養(yǎng)
當(dāng)前教師的教學(xué)目標(biāo)更多聚焦在編程知識(shí)與編程技能的掌握,而忽略在編程學(xué)習(xí)中,學(xué)習(xí)者計(jì)算思維的現(xiàn)有水平和發(fā)展情況。簡(jiǎn)單地說(shuō),教師的教學(xué)理念依然比較傳統(tǒng),重知識(shí)技能訓(xùn)練,輕能力思維培養(yǎng)。比如,課堂上教師使用頻次最多的任務(wù)驅(qū)動(dòng)法,教師更多地是代替學(xué)習(xí)者把學(xué)習(xí)任務(wù)劃分好,學(xué)習(xí)者只要在老師的指引下,按部就班地完成學(xué)習(xí)任務(wù)即可完成一個(gè)編程項(xiàng)目。這樣傳統(tǒng)的教學(xué)模式下,學(xué)習(xí)者能掌握編程知識(shí),但是這些零碎的知識(shí)得不到建構(gòu)統(tǒng)整。學(xué)習(xí)者失去了主動(dòng)去分析問(wèn)題、解決問(wèn)題的機(jī)會(huì),這在很大程度上阻礙了其計(jì)算思維的發(fā)展。學(xué)習(xí)者頭腦中能否梳理出程序內(nèi)含的邏輯關(guān)系?是否能夠?qū)?fù)雜的問(wèn)題分解成若干個(gè)較簡(jiǎn)單的學(xué)習(xí)任務(wù),逐個(gè)擊破從而突破難點(diǎn)?這些都是當(dāng)前小學(xué)信息技術(shù)教師比較欠缺考慮的。
(二)學(xué)習(xí)者學(xué)習(xí)方式落后,被動(dòng)學(xué)習(xí)
在編程課堂中,我們經(jīng)??吹竭@樣的課堂現(xiàn)象——學(xué)習(xí)者通過(guò)觀看學(xué)習(xí)視頻或教師演示,完成一個(gè)個(gè)學(xué)習(xí)任務(wù),最后完成整個(gè)編程項(xiàng)目的制作。而在這樣的學(xué)習(xí)中,學(xué)習(xí)者有時(shí)候會(huì)出現(xiàn)忘記下一步要解決什么問(wèn)題的困惑,說(shuō)明學(xué)習(xí)者缺少對(duì)問(wèn)題的統(tǒng)整認(rèn)知,沒(méi)有理解程序內(nèi)在的邏輯關(guān)系,只是在視頻或他人的示范下搭建積木腳本,知其然而不知其所以然。可見(jiàn),在整個(gè)學(xué)習(xí)過(guò)程中,學(xué)習(xí)者缺失了以計(jì)算的視角和方法參與問(wèn)題解決的全過(guò)程,而這個(gè)過(guò)程正是計(jì)算思維的發(fā)展過(guò)程,它涉及思維加工過(guò)程在問(wèn)題的識(shí)別與理解、問(wèn)題的分解與重構(gòu)、方案的設(shè)計(jì)與實(shí)施等多個(gè)環(huán)節(jié)的綜合發(fā)展。由此可見(jiàn),傳統(tǒng)的被動(dòng)學(xué)習(xí)方式正在阻礙學(xué)習(xí)者計(jì)算思維的養(yǎng)成。
二、流程圖“捕捉”計(jì)算思維的實(shí)踐研究
對(duì)學(xué)習(xí)者計(jì)算思維素養(yǎng)的培育是否有效,極大程度上取決于教師能否真正理解計(jì)算思維的內(nèi)涵。那么,計(jì)算思維的要素有哪些?如何運(yùn)用程序流程圖將隱含的計(jì)算思維要素表達(dá)出來(lái)呢?
由圖1可看出,計(jì)算思維的四大要素分別是:?jiǎn)栴}識(shí)別、問(wèn)題分解、抽象與問(wèn)題解決。其中“問(wèn)題解決”要素包含了算法與邏輯兩個(gè)方面。計(jì)算思維是學(xué)習(xí)者在項(xiàng)目學(xué)習(xí)中不斷建構(gòu)出來(lái)的思維,從問(wèn)題的分析環(huán)節(jié)(包含問(wèn)題識(shí)別、問(wèn)題分解、抽象)到問(wèn)題的解決環(huán)節(jié)(算法與邏輯),每一個(gè)環(huán)節(jié)、每一個(gè)要素都可以通過(guò)程序流程圖呈現(xiàn)出來(lái)。下面筆者將結(jié)合案例《猜數(shù)游戲》進(jìn)行具體的分析闡述。
《猜數(shù)游戲》項(xiàng)目過(guò)程說(shuō)明:
用戶輸入所猜的數(shù),當(dāng)計(jì)算機(jī)提示所猜的數(shù)比答案大,用戶再輸入一個(gè)比上一次小的數(shù);反之,則輸入一個(gè)比上一次大的數(shù),直到猜中答案(1到10之間的隨機(jī)數(shù)),游戲結(jié)束。
(一)項(xiàng)目中的問(wèn)題識(shí)別與問(wèn)題分解
在繪制該項(xiàng)目流程圖之前,學(xué)習(xí)者需要先掌握程序流程圖各類(lèi)符號(hào)的含義與使用方法,流程線的連接以及簡(jiǎn)單的文字表述,這直接關(guān)系到學(xué)習(xí)者能否對(duì)問(wèn)題進(jìn)行正確的界定。程序流程圖的圖形符號(hào)一共分為五類(lèi):
1. 起止框:外觀形狀是圓角矩形,表示程序的開(kāi)始或結(jié)束。
2. 輸入/輸出框:外觀形狀是平行四邊形,表示數(shù)據(jù)輸入或輸出的結(jié)果。
3. 處理框:外觀形狀是矩形,表示程序中的一般過(guò)程。
4. 判斷框:外觀形狀是菱形,表示程序中的條件選擇。
5. 流程線:外觀形狀是單向箭頭指向,它是以上四類(lèi)圖形符號(hào)之間的連線,箭頭方向表示工作流程。
在本項(xiàng)目的學(xué)習(xí)中,學(xué)習(xí)者首先從“猜數(shù)游戲”的情境中識(shí)別出計(jì)算機(jī)生成的隨機(jī)數(shù)是一個(gè)不確定的數(shù),用處理框來(lái)表示這個(gè)隨機(jī)數(shù)。用戶輸入的數(shù)用輸入框來(lái)表示,它也是不確定的數(shù)。該游戲的機(jī)制就是比較這兩個(gè)數(shù)字的大小關(guān)系,如果用戶第一次沒(méi)有猜中,程序出現(xiàn)相應(yīng)的提示語(yǔ)“大了”或“小了”,用戶再次輸入,以此循環(huán)直到猜中。如果用戶第一次便猜中,提示“恭喜你,猜中啦!”,游戲結(jié)束。程序的整個(gè)過(guò)程中涉及兩數(shù)大小關(guān)系的判斷,需要使用判斷框表示。過(guò)程中的提示語(yǔ)用處理框表示即可。在選擇流程圖的圖形符號(hào)過(guò)程中,學(xué)習(xí)者已經(jīng)完成了對(duì)問(wèn)題的界定。通過(guò)對(duì)游戲機(jī)制的分析梳理,最后使用流程線連接各個(gè)圖形符號(hào),完成流程圖的繪制,將一個(gè)大問(wèn)題分解成不同部分的小問(wèn)題,流程圖的呈現(xiàn)十分直觀。
(二)抽象建模
情境中用戶往往不可能第一次便猜中,那么如何表示用戶反復(fù)猜測(cè)這一過(guò)程?關(guān)于兩數(shù)的大小關(guān)系一共有幾種結(jié)果?不同的條件判斷關(guān)系如何體現(xiàn)?為了讓學(xué)習(xí)者能夠順利地進(jìn)一步將現(xiàn)實(shí)的情境要素轉(zhuǎn)變?yōu)槌橄?,教師要適時(shí)地引導(dǎo)學(xué)習(xí)者將其抽象為流程圖中的基本結(jié)構(gòu),懂得使用順序、選擇、循環(huán)的結(jié)構(gòu)來(lái)建構(gòu)它們之間的關(guān)系,從而建立起同類(lèi)型問(wèn)題的抽象化模型。比如,用戶反復(fù)猜測(cè)涉及基本結(jié)構(gòu)中的重復(fù)循環(huán),那么要啟發(fā)學(xué)生觀察流程圖的流程走向,思考猜錯(cuò)之后,流程應(yīng)該走到哪個(gè)步驟,用戶才可以繼續(xù)猜測(cè)?學(xué)生很快便能發(fā)現(xiàn),只要在用戶猜錯(cuò)提示之后,將流程線往上畫(huà),回到“用戶輸入數(shù)字”的步驟,就可以表示重復(fù)執(zhí)行。再看情境中兩個(gè)數(shù)的大小關(guān)系一共有3種:a=b或a>b或a
(三)問(wèn)題解決(算法與邏輯)
同一個(gè)問(wèn)題可以由不同的算法來(lái)解決,但是多種算法中,總是存在相對(duì)優(yōu)質(zhì)的算法。比如能夠利用三種基本結(jié)構(gòu),盡可能減少運(yùn)算的步驟,便是比較好的算法。到這個(gè)環(huán)節(jié)為止,學(xué)習(xí)者已經(jīng)能夠較完整地繪制出整個(gè)項(xiàng)目的程序流程圖。教師可從中觀察出他們的算法優(yōu)劣之分。算法思維是計(jì)算思維中非常重要的一部分,因此教師很有必要積極地引導(dǎo)學(xué)習(xí)者不斷反思流程圖解決問(wèn)題的思路,找出問(wèn)題所在,從而優(yōu)化流程圖的設(shè)計(jì),尋求最佳的解決方案。經(jīng)過(guò)這一階段優(yōu)化后的流程圖,能夠?yàn)楹罄m(xù)的方案實(shí)現(xiàn)提供更大的指導(dǎo)價(jià)值。
總而言之,在小學(xué)編程教學(xué)中,借助程序流程圖來(lái)“捕捉”學(xué)生的思維,具有一定的指導(dǎo)意義。學(xué)習(xí)者在問(wèn)題的各個(gè)環(huán)節(jié)繪制流程圖,教師便可直觀地了解學(xué)習(xí)者的計(jì)算思維發(fā)展水平,針對(duì)不同環(huán)節(jié)與不同的計(jì)算思維要素,對(duì)學(xué)習(xí)者進(jìn)行針對(duì)性地指導(dǎo)。另外,教師注重引導(dǎo)學(xué)習(xí)者對(duì)存在問(wèn)題進(jìn)行反思,修改流程圖,尋求最合理的算法來(lái)實(shí)現(xiàn)方案,完成項(xiàng)目程序的編制,能夠進(jìn)一步促進(jìn)他們計(jì)算思維的發(fā)展。而對(duì)學(xué)習(xí)者而言,繪制程序流程圖可以幫助他們分解問(wèn)題,梳理編程的思路,理清程序中各部分之間的邏輯關(guān)系,將問(wèn)題逐個(gè)擊破,最終完成一個(gè)完整項(xiàng)目的程序編寫(xiě),發(fā)展計(jì)算思維的同時(shí),提升學(xué)習(xí)的深度。