佘友軍
【摘 要】《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》提倡以身邊的算法問(wèn)題為載體開(kāi)展算法教學(xué),培養(yǎng)學(xué)生用算法解決問(wèn)題的能力。本研究嘗試將編寫(xiě)可執(zhí)行的流程圖融入算法教學(xué),在掌握算法的同時(shí)確保了學(xué)生的實(shí)踐操作,在觀察流程圖動(dòng)態(tài)走向的過(guò)程中提升計(jì)算思維,為新課標(biāo)理念下信息科技算法教學(xué)提供新的實(shí)踐樣態(tài)。
【關(guān)鍵詞】算法教學(xué);跨學(xué)科;計(jì)算思維;思維可視
【中圖分類(lèi)號(hào)】G434? ?【文獻(xiàn)標(biāo)識(shí)碼】A
【論文編號(hào)】1671-7384(2024)02、03-082-03
目前,在中小學(xué)開(kāi)展算法教學(xué),培養(yǎng)計(jì)算思維,存在著兩個(gè)極端現(xiàn)象:一個(gè)是反對(duì)削弱編程地位,他們認(rèn)為編程是落實(shí)課程標(biāo)準(zhǔn)中計(jì)算思維和數(shù)字化學(xué)習(xí)與創(chuàng)新的有效載體,編程是數(shù)字時(shí)代的基石,學(xué)生理解編程,能更好地掌握現(xiàn)有的數(shù)字技術(shù);另一個(gè)是重視算法教學(xué),將教學(xué)的重心由編寫(xiě)程序轉(zhuǎn)變?yōu)樵O(shè)計(jì)算法,課堂教學(xué)中重點(diǎn)關(guān)注算法的描述,由此帶來(lái)的問(wèn)題是編寫(xiě)程序或者體驗(yàn)程序的時(shí)間不夠,學(xué)生缺少足夠的時(shí)間驗(yàn)證算法是否正確,大大降低了學(xué)生學(xué)習(xí)算法的熱情。第一種現(xiàn)象的編程學(xué)習(xí)脫離了算法,是一種低效的學(xué)習(xí)。新的更加簡(jiǎn)潔、更加高效、執(zhí)行性能更好的語(yǔ)言在不斷出現(xiàn),讓學(xué)生掌握特定語(yǔ)言的語(yǔ)法不應(yīng)當(dāng)成為教育的核心目標(biāo)。算法是解決問(wèn)題的核心,關(guān)注算法將注意力集中在解決問(wèn)題本身[1]。掌握了解決問(wèn)題的思維,對(duì)學(xué)習(xí)任何一門(mén)語(yǔ)言都有幫助。但同時(shí)學(xué)生的實(shí)踐操作要得到保障,驗(yàn)證算法是否正確,并進(jìn)行算法的優(yōu)化與迭代,是思維活動(dòng)中重要的一環(huán)。
“身邊的算法”教學(xué)策略探討
基于上面的分析,筆者引入Flowgorithm進(jìn)行可運(yùn)行的流程圖教學(xué),確保了計(jì)算思維的提升,并保障了學(xué)生的操作時(shí)間,取得較好的實(shí)踐效果。在教學(xué)這個(gè)模塊時(shí),教師從學(xué)生已有的生活經(jīng)驗(yàn)中,尋找運(yùn)用算法的例子,進(jìn)行抽象和概括,讓學(xué)生掌握基于流程圖或者自然語(yǔ)言描述算法的方法。在應(yīng)用環(huán)節(jié),教師創(chuàng)設(shè)學(xué)生感興趣的情境,讓學(xué)生使用手繪流程圖將解決問(wèn)題的思維進(jìn)行可視化;利用數(shù)字工具編寫(xiě)流程圖的形式,對(duì)思維的過(guò)程進(jìn)行可視化的驗(yàn)證[2]。教學(xué)過(guò)程中,注重從真實(shí)生活中提取算法問(wèn)題,讓學(xué)生經(jīng)歷問(wèn)題抽象、分解、構(gòu)建解決問(wèn)題的模型,通過(guò)手工繪制解決問(wèn)題的流程圖,將解決問(wèn)題的思維活動(dòng)顯性化[3];在學(xué)生熟悉算法描述方式的基礎(chǔ)上,開(kāi)展跨學(xué)科的項(xiàng)目學(xué)習(xí),利用數(shù)字化工具編寫(xiě)流程圖并加以執(zhí)行驗(yàn)證,無(wú)須編程即可實(shí)現(xiàn)數(shù)學(xué)問(wèn)題的自動(dòng)化求解[4]。教學(xué)實(shí)踐重在思維過(guò)程的可視,將教學(xué)的重點(diǎn)從程序編寫(xiě)轉(zhuǎn)移到流程圖的設(shè)計(jì),降低了學(xué)生的認(rèn)知負(fù)荷,有助于學(xué)生了解算法在解決問(wèn)題過(guò)程中的作用,領(lǐng)會(huì)算法的價(jià)值;有助于學(xué)生總結(jié)解決問(wèn)題的方法,并將其遷移到其他問(wèn)題求解中,有效促進(jìn)學(xué)生計(jì)算思維的發(fā)展[5]。
1.結(jié)合生活案例,了解算法的基本控制結(jié)構(gòu)
“身邊的算法”模塊,“算法”確定了學(xué)習(xí)的內(nèi)容和學(xué)習(xí)的最終目標(biāo),“身邊”明確了案例的選擇范圍,讓學(xué)生借助學(xué)習(xí)與生活中的實(shí)例,體驗(yàn)常見(jiàn)的算法結(jié)構(gòu),初步理解算法是可執(zhí)行的解決問(wèn)題的步驟。五年級(jí)的學(xué)生正處于抽象思維發(fā)展的起步階段,教師選擇學(xué)生熟悉的內(nèi)容,學(xué)習(xí)算法的描述方式、常見(jiàn)的結(jié)構(gòu),能讓學(xué)生盡快形成認(rèn)知關(guān)聯(lián),有效激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性,避免了枯燥的概念講解教學(xué)。這部分內(nèi)容的學(xué)習(xí),使學(xué)生對(duì)算法的認(rèn)識(shí)從感性上升到理性,有效建構(gòu)算法的概念。
如洗衣機(jī)洗衣服的步驟一般有:浸泡、洗滌、漂洗、脫水四個(gè)步驟,這四個(gè)步驟就組成一個(gè)順序結(jié)構(gòu);再比如,通過(guò)猜數(shù)字游戲理解分支結(jié)構(gòu),通過(guò)紅綠燈的信號(hào)控制理解循環(huán)結(jié)構(gòu)。這些源自生活的鮮活的案例,讓學(xué)生初步了解流程圖圖示,掌握流程圖的常見(jiàn)結(jié)構(gòu)。
2.手繪流程圖解決生活問(wèn)題,促進(jìn)思維可視化
學(xué)生的思維活動(dòng)、思維過(guò)程往往是不可見(jiàn)的。在學(xué)生掌握了算法描述的基本結(jié)構(gòu)后,教師可以讓學(xué)生嘗試?yán)L制算法,解決一些簡(jiǎn)單的生活問(wèn)題,以流程圖的形式將思維可視化呈現(xiàn)。思維可視化是將原本不可見(jiàn)的思維路徑、思維過(guò)程,以思維導(dǎo)圖、流程圖等形式呈現(xiàn)出來(lái)。國(guó)內(nèi)研究學(xué)者充分探討了思維可視化對(duì)教師教學(xué)和學(xué)生認(rèn)知的影響,華東師范大學(xué)劉濯源研究員較早開(kāi)展了思維可視化技術(shù)與學(xué)科整合的理論和實(shí)踐研究, 提出了“把教學(xué)關(guān)注點(diǎn)從‘知識(shí)轉(zhuǎn)移到‘思維, 從而持續(xù)提升學(xué)生的思維能力, 實(shí)現(xiàn)教學(xué)效能的倍增”的理論。井岡山大學(xué)外國(guó)語(yǔ)學(xué)院許燕討論了思維可視化工具支持學(xué)習(xí)的優(yōu)勢(shì)和應(yīng)用策略, 提出思維可視化工具對(duì)學(xué)習(xí)者提高理解能力和記憶能力, 發(fā)展邏輯思維和創(chuàng)造性思維有著較大幫助。
思維可視化的過(guò)程,是學(xué)生知識(shí)再加工的過(guò)程。將思維可視化運(yùn)用到學(xué)科教學(xué)中,有利于學(xué)生主動(dòng)地建構(gòu)知識(shí)系統(tǒng),實(shí)現(xiàn)零散知識(shí)系統(tǒng)化、隱性思維顯性化、解題規(guī)律模型化,學(xué)生的思維能力能得到有效的訓(xùn)練[6]。
3.編寫(xiě)算法實(shí)現(xiàn)數(shù)學(xué)問(wèn)題自動(dòng)求解,使用流程圖驗(yàn)證思維過(guò)程
計(jì)算思維代表了一系列解決問(wèn)題的技能,它能讓學(xué)生真正參與學(xué)習(xí),參與有價(jià)值的學(xué)習(xí),并超越信息科技課程,擴(kuò)展到更廣泛的內(nèi)容領(lǐng)域??鐚W(xué)科學(xué)習(xí)要求學(xué)生跨課程靈活地運(yùn)用概念,研究表明,學(xué)生在多種環(huán)境和跨學(xué)科中學(xué)習(xí)的知識(shí)比在單一環(huán)境中更有可能實(shí)現(xiàn)知識(shí)的遷移。
數(shù)學(xué)學(xué)習(xí)是學(xué)生生活中的重要部分,因此將數(shù)學(xué)問(wèn)題的自動(dòng)求解作為提升學(xué)生計(jì)算思維的重要學(xué)習(xí)項(xiàng)目。這個(gè)環(huán)節(jié)采用數(shù)字化的流程圖編寫(xiě)軟件Flowgorithm開(kāi)展學(xué)習(xí)活動(dòng),將學(xué)生的思維活動(dòng)顯現(xiàn)化。Flowgorithm是一種可以繪制流程圖并可以執(zhí)行驗(yàn)證的軟件,相比于圖形化編程軟件,F(xiàn)lowgorithm更符合新課標(biāo)的要求,更適合在教學(xué)中使用。
Flowgorithm由flow(流程)和algorithm(算法)兩個(gè)詞組成。與圖形化編程軟件、代碼編程軟件側(cè)重編程不同,F(xiàn)lowgorithm側(cè)重算法設(shè)計(jì)。Flowgorithm簡(jiǎn)單易用,不需要拖拽組件,通過(guò)在“開(kāi)始”和“結(jié)束”之間增加輸入、輸出、分支、循環(huán)等結(jié)構(gòu)完成算法設(shè)計(jì)。學(xué)習(xí)者通過(guò)設(shè)計(jì)流程圖,將思維過(guò)程可視化。作為一款流程圖軟件,F(xiàn)lowgorithm提供了多種常見(jiàn)的流程圖例,降低了設(shè)計(jì)流程圖的難度。與普通流程圖繪制軟件不同,F(xiàn)lowgorithm中繪制的流程圖是可以執(zhí)行的,學(xué)生可以運(yùn)行流程圖,觀看流程圖執(zhí)行的動(dòng)態(tài)走向,驗(yàn)證算法是否正確。當(dāng)算法執(zhí)行出錯(cuò),學(xué)生可以了解自己出錯(cuò)的位置和原因,并從中吸取教訓(xùn),從而提升解決問(wèn)題的能力。這個(gè)過(guò)程對(duì)學(xué)生理解算法非常重要。通過(guò)反復(fù)調(diào)試和觀看算法執(zhí)行的走向,學(xué)生的思路逐步清晰,邏輯思維能力得以提升。除此之外,F(xiàn)lowgorithm還能將流程圖轉(zhuǎn)變?yōu)槌^(guò)25種主流的編程語(yǔ)言,如Python , C++, C#, Java, JavaScript, PHP,Pascal,Swift, Lua, Perl, Ruby, Visual Basic .NET以及VBA等。
“猜物游戲中的算法”教學(xué)案例
“猜物游戲”是研究分支結(jié)構(gòu)的案例。學(xué)生從喜聞樂(lè)見(jiàn)的游戲中,提煉出算法的結(jié)構(gòu),在此基礎(chǔ)上,嘗試運(yùn)用分支結(jié)構(gòu)實(shí)現(xiàn)“判斷平年和閏年”數(shù)學(xué)問(wèn)題的自動(dòng)求解。
1.嘗試描述算法:從身邊的具體活動(dòng)抽象出解決問(wèn)題的過(guò)程
設(shè)計(jì)程序的關(guān)鍵是設(shè)計(jì)算法,直接讓學(xué)生描述算法難度較大。教師引導(dǎo)學(xué)生從真實(shí)的猜物游戲中提煉抽象出算法:從羽毛球和網(wǎng)球中選擇一個(gè)物體讓學(xué)生猜。學(xué)生猜測(cè)物體的特征,老師進(jìn)行判斷,學(xué)生再根據(jù)老師的判斷分析選中的是何種物體。如學(xué)生猜測(cè)這個(gè)物體有羽毛,老師如果判斷“真”,那么選中的物體就是羽毛球,否則就是網(wǎng)球;還可以通過(guò)增加物體的數(shù)量,掌握多分支結(jié)構(gòu)。教師通過(guò)活動(dòng)引導(dǎo)學(xué)生理解現(xiàn)實(shí)世界解決問(wèn)題過(guò)程中所蘊(yùn)含的算法、原理,改變以往一味傳授概念知識(shí)的方法,實(shí)現(xiàn)知識(shí)和思維的雙重建構(gòu)。通過(guò)這樣的活動(dòng),學(xué)生逐步抽象出解決問(wèn)題的步驟。
2.繪制流程圖
在掌握了分支結(jié)構(gòu)的繪制方法后,學(xué)生嘗試開(kāi)展跨學(xué)科學(xué)習(xí),實(shí)現(xiàn)判斷平年閏年數(shù)學(xué)問(wèn)題的自動(dòng)求解。這個(gè)過(guò)程就是對(duì)判斷方法進(jìn)行數(shù)學(xué)建模。教師挑選一些典型的流程圖,帶領(lǐng)學(xué)生一起分析,尋找問(wèn)題,最終為判斷方法建立模型。
3.編寫(xiě)可執(zhí)行的數(shù)字流程圖
通過(guò)交流互動(dòng),學(xué)生基本明確解決問(wèn)題的過(guò)程。在此基礎(chǔ)上,學(xué)生可以利用Flowgorithm進(jìn)行流程圖的設(shè)計(jì)。學(xué)生在設(shè)計(jì)完畢后,并不需要等待老師的評(píng)價(jià),F(xiàn)lowgorithm的優(yōu)勢(shì)在于可以直接執(zhí)行流程圖,學(xué)生可以根據(jù)執(zhí)行的結(jié)果,進(jìn)一步了解算法的執(zhí)行流程,對(duì)遇到的問(wèn)題進(jìn)行調(diào)整。
4.自評(píng)與互評(píng):提升合作學(xué)習(xí)能力
交流活動(dòng)能有效提升學(xué)生的批判性思維能力、合作學(xué)習(xí)的能力。教師根據(jù)學(xué)生的表現(xiàn)進(jìn)行評(píng)價(jià)。學(xué)生也對(duì)項(xiàng)目的學(xué)習(xí)情況進(jìn)行自評(píng)和互評(píng),匯報(bào)自己小組在研究過(guò)程中遇到的問(wèn)題,以及是怎么解決問(wèn)題的;對(duì)自己的研究項(xiàng)目進(jìn)行反思,提出優(yōu)化改進(jìn)的想法,對(duì)其余小組的項(xiàng)目提出建議。
在計(jì)算思維的培養(yǎng)過(guò)程中,比較重要的一環(huán)是自覺(jué)遷移算法用以解決實(shí)際問(wèn)題。教學(xué)中,教師要鼓勵(lì)學(xué)生將解決問(wèn)題的思維進(jìn)行遷移和運(yùn)用,用于解決相似的問(wèn)題,將解決問(wèn)題的過(guò)程內(nèi)化為解決問(wèn)題的能力,促進(jìn)學(xué)生計(jì)算思維的發(fā)展。
結(jié)論與建議
1.Flowgorithm讓教學(xué)專(zhuān)注于解決問(wèn)題的思維訓(xùn)練
信息科技的教學(xué)不能只關(guān)注程序設(shè)計(jì)語(yǔ)言,在信息社會(huì),程序設(shè)計(jì)語(yǔ)言本身在飛速地發(fā)展,新的高效的語(yǔ)言層出不窮,教育者的注意力應(yīng)當(dāng)回歸到解決的問(wèn)題本身。新課標(biāo)將教學(xué)重心前移,從關(guān)注程序轉(zhuǎn)變?yōu)殛P(guān)注算法。課程標(biāo)準(zhǔn)對(duì)信息科技的教學(xué)提出了新的要求,不應(yīng)局限于學(xué)生對(duì)某種特定程序設(shè)計(jì)語(yǔ)言的掌握,而是讓學(xué)生掌握使用計(jì)算機(jī)解決問(wèn)題的思維方式和實(shí)踐方法。Flowgorithm讓教學(xué)專(zhuān)注于解決問(wèn)題的思維訓(xùn)練,是學(xué)生提升計(jì)算思維的有效途徑。
2.將學(xué)生的學(xué)習(xí)活動(dòng)置于現(xiàn)實(shí)情境的豐富任務(wù)之中
知識(shí)是由學(xué)習(xí)者基于經(jīng)驗(yàn)主動(dòng)構(gòu)建的,而不應(yīng)該被動(dòng)地從外部獲得。教育者在創(chuàng)建研究任務(wù)時(shí),要通過(guò)設(shè)計(jì)豐富的任務(wù),確保所有學(xué)生都有機(jī)會(huì)進(jìn)行高層次的思考。當(dāng)豐富的挑戰(zhàn)任務(wù)與現(xiàn)實(shí)生活背景及學(xué)生的個(gè)人興趣緊密地聯(lián)系在一起時(shí),學(xué)生更有可能投入到任務(wù)的研究中,從而提升高階思維能力。通過(guò)個(gè)人或協(xié)作完成任務(wù)挑戰(zhàn),讓學(xué)生感到有能力運(yùn)用技術(shù)解決問(wèn)題,并能改進(jìn)以滿足自己的需求。豐富的任務(wù)發(fā)展了學(xué)生解決問(wèn)題和推理的能力,形成適應(yīng)未來(lái)環(huán)境的能力。這些學(xué)習(xí)經(jīng)驗(yàn)的獲得會(huì)幫助學(xué)生形成遷移到新問(wèn)題的能力[7]。
3.通過(guò)分享與交流加深理解
知識(shí)和技能在生生、師生的互動(dòng)中有效建構(gòu),分享算法還可以讓課堂上的每個(gè)學(xué)生成為積極的思考者。學(xué)生解釋自己解決問(wèn)題的想法或評(píng)估其他同學(xué)的策略,能夠加深對(duì)思維的理解,從而產(chǎn)生深度學(xué)習(xí),提升用語(yǔ)言表達(dá)對(duì)問(wèn)題理解的能力。通過(guò)對(duì)比,學(xué)生會(huì)意識(shí)到其他可能更有效、更容易執(zhí)行或更容易理解的策略。
總之,將Flowgorithm運(yùn)用于中小學(xué)算法教學(xué)具有重要價(jià)值。通過(guò)對(duì)身邊的問(wèn)題進(jìn)行抽象建模,利用Flowgorithm設(shè)計(jì)流程圖,描述解決問(wèn)題的算法并進(jìn)行驗(yàn)證,在互動(dòng)反饋中形成設(shè)計(jì)簡(jiǎn)單算法的能力,能切實(shí)有效提升學(xué)生的計(jì)算思維。Flowgorithm能將思維過(guò)程可視化,達(dá)到培養(yǎng)學(xué)生抽象、分解、建模和設(shè)計(jì)算法能力的目標(biāo),非常適合運(yùn)用于中小學(xué)開(kāi)展算法教學(xué)實(shí)踐。
參考文獻(xiàn)
任友群,隋豐蔚,李鋒. 數(shù)字土著何以可能?——也談?dòng)?jì)算思維進(jìn)入中小學(xué)信息技術(shù)教育的必要性和可能性[J].中國(guó)電化教育,2016(1): 2-8.
王娟. 基于Scratch的創(chuàng)意計(jì)算思維可視化研究[D]. 上海: 上海師范大學(xué),2015.
郁曉化,肖敏,王美玲. 計(jì)算思維培養(yǎng)進(jìn)行時(shí):在K-12階段的實(shí)踐方法與評(píng)論[J]. 遠(yuǎn)程教育雜志,2018(2).
熊秋娥, 葛越. Scratch游戲化編程培養(yǎng)小學(xué)生計(jì)算思維的實(shí)證研究[J]. 基礎(chǔ)教育,2019(6): 24-35.
WING J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-36.
張屹. 我國(guó)小學(xué)生計(jì)算思維量表研發(fā)與應(yīng)用[J]. 中國(guó)電化教育, 2020(10): 49-57.
曲茜茜,解月光,王海. 高中信息技術(shù)學(xué)科教材“三重結(jié)構(gòu)”及課堂實(shí)施建議[J]. 現(xiàn)代教育技術(shù), 2018(4): 48-54.
作者單位:江蘇海安市實(shí)驗(yàn)小學(xué)
編? ?輯:馮艷艷