在信息科技課程教學(xué)中,最被大家關(guān)注的內(nèi)容之一是“算法”及算法如何認(rèn)知、驗(yàn)證及設(shè)計(jì)。本期解碼,我們一起從一線(xiàn)的視角探討低年級(jí)學(xué)生如何開(kāi)展算法教學(xué),解讀用生活中的行為模擬來(lái)提高學(xué)生算法認(rèn)知的策略與意義。
摘要:本文介紹了通過(guò)行為模擬發(fā)展低年級(jí)學(xué)生算法學(xué)習(xí)新思維的方法。該方法將編程概念與日常生活場(chǎng)景結(jié)合,通過(guò)角色扮演、故事劇場(chǎng)和互動(dòng)游戲等活動(dòng)形式具象化編程思維,通過(guò)行為觸發(fā)和問(wèn)題建構(gòu),幫助學(xué)生形成從具體行為到抽象思維的過(guò)渡,以更好地理解和應(yīng)用編程概念與結(jié)構(gòu),培養(yǎng)算法學(xué)習(xí)新思維。
關(guān)鍵詞:行為;算法;思維
中圖分類(lèi)號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A 論文編號(hào):1674-2117(2024)13-0020-04
編程,作為一種與計(jì)算機(jī)溝通的藝術(shù),要求將解決問(wèn)題的方法與步驟由自然語(yǔ)言精準(zhǔn)地轉(zhuǎn)換為程序語(yǔ)句,然而對(duì)低年級(jí)的學(xué)生來(lái)說(shuō),理解這種轉(zhuǎn)換具有一定難度。他們往往能聽(tīng)懂編程的概念,可一旦面對(duì)實(shí)際問(wèn)題,卻感到無(wú)從下手,這是因?yàn)樗麄兊某橄笏季S能力和問(wèn)題解決能力還在發(fā)展階段,對(duì)復(fù)雜的編程邏輯和抽象的編程概念還不能完全理解和掌握。因此,筆者在低年級(jí)的算法教學(xué)中利用“行為模擬”對(duì)學(xué)生進(jìn)行思維訓(xùn)練,將編程概念與學(xué)生熟悉的日常生活場(chǎng)景相結(jié)合,通過(guò)角色扮演、故事劇場(chǎng)和互動(dòng)游戲等活動(dòng)形式,降低學(xué)習(xí)門(mén)檻,幫助學(xué)生完成從具體行為到抽象思維的過(guò)渡。通過(guò)每節(jié)編程課上的“行為模擬”促進(jìn)“思維活動(dòng)”,不僅有助于學(xué)生更好地理解和掌握編程知識(shí),還能夠提高他們的編程興趣和自信心。
利用行為觸發(fā)問(wèn)題建模,發(fā)展高階抽象思維
在編程的世界里,算法不僅是解決現(xiàn)實(shí)問(wèn)題的關(guān)鍵,更是對(duì)現(xiàn)實(shí)問(wèn)題的高度抽象化和建?;恼宫F(xiàn)。問(wèn)題建模是一種將現(xiàn)實(shí)世界的問(wèn)題轉(zhuǎn)換為可以通過(guò)計(jì)算或算法來(lái)解決的模型的過(guò)程。算法教學(xué)的目標(biāo)是引導(dǎo)學(xué)生學(xué)習(xí)如何將一個(gè)復(fù)雜的現(xiàn)實(shí)問(wèn)題抽象化,識(shí)別出問(wèn)題的關(guān)鍵因素,并將這些因素表達(dá)為計(jì)算模型,這樣的教學(xué)有助于培養(yǎng)學(xué)生獨(dú)立運(yùn)用已有知識(shí)的能力,以及在面對(duì)新問(wèn)題時(shí)創(chuàng)造性地思考和解決問(wèn)題的高階抽象思維。對(duì)于低年級(jí)的學(xué)生而言,理解這些無(wú)形的編程概念與程序結(jié)構(gòu),往往是一個(gè)巨大的認(rèn)知挑戰(zhàn)。然而,通過(guò)行為模擬的方式可以將編程概念以更為直觀(guān)、生動(dòng)的方式展現(xiàn)給學(xué)生,為他們搭建一座從“具體行為”到“抽象思維”的橋梁,使其通過(guò)實(shí)踐操作和親身體驗(yàn),逐步掌握編程的精髓。
1.行為對(duì)問(wèn)題建模的增益
在學(xué)習(xí)過(guò)程中,教師可以通過(guò)設(shè)計(jì)具體的行為模擬任務(wù),為學(xué)生提供從實(shí)踐操作逐步過(guò)渡到抽象理論思維的實(shí)踐平臺(tái),通過(guò)這些任務(wù),學(xué)生可以從具體的行為操作入手,通過(guò)親身實(shí)踐逐步感知、分析和總結(jié)其中的規(guī)律,進(jìn)而轉(zhuǎn)向更為抽象的理論思維。學(xué)生在解決問(wèn)題的過(guò)程中需要?jiǎng)?chuàng)建問(wèn)題的抽象表示,這種表示可以是視覺(jué)的圖形、言語(yǔ)化的描述,也可以是通過(guò)肢體動(dòng)作來(lái)模擬的行為過(guò)程,即問(wèn)題建模。它可以幫助學(xué)生理解程序是如何反映和模擬現(xiàn)實(shí)世界中的事物和過(guò)程的,使學(xué)生能夠更好地把握編程概念并運(yùn)用它們解決問(wèn)題。同時(shí),學(xué)生可以更直觀(guān)地感受到抽象思維在解決實(shí)際問(wèn)題中的重要作用,有助于對(duì)算法語(yǔ)言的理解。
2.行為驅(qū)動(dòng)問(wèn)題建模設(shè)計(jì)范例
范例1:在講解計(jì)數(shù)循環(huán)中的累加器時(shí),學(xué)生第一次接觸for循環(huán)和s=s+1語(yǔ)句,很難理解,于是,筆者設(shè)計(jì)了如下的故事劇。
①課堂設(shè)情境。利用微機(jī)室的排布優(yōu)勢(shì),筆者站在一排電腦桌旁,拍著第一張電腦桌,說(shuō)“這是1號(hào)山洞”,并放下一朵花,繼續(xù)往前走,當(dāng)說(shuō)“這是2號(hào)山洞”時(shí),也放下一朵花,就這樣,一直走到6號(hào)山洞,學(xué)生的注意力逐漸被吸引。這時(shí)筆者突然轉(zhuǎn)身,對(duì)學(xué)生說(shuō)“我是一只小兔子”,這句話(huà)立刻引起學(xué)生的極大興趣,他們好奇地盯著我,想要知道接下來(lái)會(huì)發(fā)生什么。
②采花寓累加。筆者說(shuō):“我拿著花籃來(lái)采花,大家看,我的花籃是空的。”筆者走到1號(hào)山洞,拿起花放到花籃里,問(wèn)學(xué)生:“我的花籃里有幾朵花?”學(xué)生回答:“一朵?!惫P者往前邁一步,又拿起2號(hào)山洞的花,問(wèn)“這樣,我的花籃里有幾朵花?”“兩朵?!薄皩?duì),在一朵基礎(chǔ)上加一,共兩朵花……”
就這樣,筆者一直走到6號(hào)山洞,問(wèn)“我走到6號(hào)山洞,采了一朵花,這樣,我的花籃里一共有幾朵花?”“5+1=6,6朵花?!薄澳俏以偻斑~一步,還有花讓我采嗎?”“沒(méi)有了,因?yàn)橹挥?個(gè)山洞?!薄昂玫?,我的采花行動(dòng)圓滿(mǎn)結(jié)束!”
③繪圖理算法。就這樣,學(xué)生跟隨筆者的演繹,模擬走完了for(i=1;i<=6;i++)s=s+1的全過(guò)程。筆者又走回講臺(tái),回顧整個(gè)算法的模擬過(guò)程。
④行為轉(zhuǎn)代碼。筆者讓學(xué)生扮演小兔子模擬整個(gè)過(guò)程,有了板書(shū)與活動(dòng)參與,學(xué)生對(duì)計(jì)數(shù)循環(huán)for語(yǔ)句和s=s+1累加器有了初步的理解。筆者又提出一個(gè)問(wèn)題:“如果1號(hào)山洞1朵花,2號(hào)山洞2朵花,3號(hào)山洞3朵花……我們?cè)撊绾斡谜Z(yǔ)句來(lái)表達(dá)呢?”筆者請(qǐng)學(xué)生模擬采花過(guò)程,學(xué)生發(fā)現(xiàn)山洞里花的數(shù)量與山洞編號(hào)之間的關(guān)系,很容易總結(jié)出s=s+i的語(yǔ)句。
通過(guò)上述問(wèn)題建模方法,學(xué)生以有趣的方式參與到編程學(xué)習(xí)中,將編程概念與實(shí)際情境相結(jié)合,不僅理解了復(fù)雜編程概念,而且深化了對(duì)循環(huán)語(yǔ)句如何控制程序流程的認(rèn)知,當(dāng)學(xué)生能夠通過(guò)自己的努力,將一個(gè)復(fù)雜的現(xiàn)實(shí)問(wèn)題轉(zhuǎn)化為一個(gè)簡(jiǎn)單的編程問(wèn)題時(shí),會(huì)非常有成就感。這種成就感會(huì)激發(fā)他們的學(xué)習(xí)動(dòng)力,使他們更加積極地投入到編程學(xué)習(xí)中,從而形成一個(gè)正向的學(xué)習(xí)循環(huán)。同時(shí),通過(guò)問(wèn)題建模,學(xué)生需要將實(shí)際問(wèn)題中的關(guān)鍵信息和邏輯關(guān)系提取出來(lái),形成簡(jiǎn)潔明了的抽象模型,通過(guò)不斷地練習(xí)和反思,學(xué)生逐漸掌握了如何有效地進(jìn)行抽象概括,提高了對(duì)問(wèn)題本質(zhì)的理解和把握能力,并將具體的解決方案進(jìn)行提煉和升華,形成一般性的規(guī)律和方法,實(shí)現(xiàn)了高級(jí)抽象思維的養(yǎng)成。
利用行為激發(fā)問(wèn)題建構(gòu),發(fā)展深度邏輯思維
問(wèn)題建構(gòu)是基于問(wèn)題模型提出并實(shí)施解決方案的過(guò)程,它涵蓋了從問(wèn)題識(shí)別到解決方案實(shí)施的完整環(huán)節(jié)。在算法學(xué)習(xí)中,不僅要求學(xué)生能夠創(chuàng)建有效的程序來(lái)解決問(wèn)題,還需要他們能評(píng)估這些方案的實(shí)際效果,并做出必要的優(yōu)化調(diào)整。因此,教師應(yīng)當(dāng)引導(dǎo)學(xué)生深入分析問(wèn)題的各個(gè)層面,理解其中各組成部分之間的復(fù)雜關(guān)系,并將問(wèn)題分解為更小、更易處理的子問(wèn)題,從而完成問(wèn)題建構(gòu)。在這一過(guò)程中,行為模擬的應(yīng)用可以幫助學(xué)生更直觀(guān)地觀(guān)察算法是如何處理這些子問(wèn)題的,并理解其背后的邏輯原理。在實(shí)際問(wèn)題解決的過(guò)程中,學(xué)生需要綜合運(yùn)用所學(xué)的邏輯知識(shí),不斷嘗試和調(diào)整算法,以尋求最佳解決方案。這個(gè)過(guò)程不僅鍛煉了學(xué)生的算法應(yīng)用能力,還促進(jìn)了他們深度邏輯思維的發(fā)展。通過(guò)不斷地分析和優(yōu)化算法,學(xué)生將逐漸具備深入剖析問(wèn)題本質(zhì)、識(shí)別隱藏條件和潛在約束的能力,從而設(shè)計(jì)出更完善的算法解決方案。
1.行為輔助,實(shí)現(xiàn)思維具象化
將編程邏輯與日常生活中的具體動(dòng)作相結(jié)合,使得學(xué)生能夠更直觀(guān)地感受到編程邏輯的運(yùn)作過(guò)程,從而更容易掌握編程的核心要義,同時(shí),也能激發(fā)學(xué)生的好奇心,引導(dǎo)他們?cè)趯W(xué)習(xí)的過(guò)程中主動(dòng)探索、主動(dòng)思考。
2.行為導(dǎo)向,引領(lǐng)問(wèn)題有效建構(gòu)
范例2:針對(duì)復(fù)雜的雙重循環(huán)概念,可以借助生活場(chǎng)景和動(dòng)作幫助學(xué)生理解建構(gòu)問(wèn)題。
①運(yùn)動(dòng)體驗(yàn)雙重循環(huán)。筆者請(qǐng)全體學(xué)生起立并聽(tīng)從指令,一起完成四組運(yùn)動(dòng),每組動(dòng)作包括點(diǎn)頭、拍手、拍肩三個(gè)動(dòng)作。當(dāng)學(xué)生們開(kāi)心地做完四組動(dòng)作后,筆者開(kāi)始分析活動(dòng)流程,并板書(shū):做第一組運(yùn)動(dòng),要做點(diǎn)頭、拍手、拍肩這三個(gè)動(dòng)作,做第二組運(yùn)動(dòng),也要重復(fù)這三個(gè)動(dòng)作,第三組、第四組同樣也要重復(fù)這三個(gè)動(dòng)作,這就是雙重循環(huán)。
②角色扮演深化理解。筆者接著讓學(xué)生舉例,一個(gè)學(xué)生當(dāng)導(dǎo)演,其他五個(gè)學(xué)生搬好板凳坐到講臺(tái)上。當(dāng)導(dǎo)演的學(xué)生讓第一個(gè)同學(xué)過(guò)來(lái),給他一塊糖,讓他回去,再讓第二個(gè)同學(xué)過(guò)來(lái),給他一塊糖,讓他回去,又讓他過(guò)來(lái),又給他一塊糖,又讓他回去,接著讓第三個(gè)同學(xué)過(guò)來(lái),每次給他一塊糖,讓他回去,這組動(dòng)作重復(fù)了三次,讓第四個(gè)同學(xué)過(guò)來(lái),這組動(dòng)作重復(fù)了四次,第五個(gè)同學(xué)也重復(fù)了這個(gè)動(dòng)作五次……然后,當(dāng)導(dǎo)演的學(xué)生開(kāi)始提問(wèn):“我每次重復(fù)的動(dòng)作是什么?”“過(guò)來(lái),給糖,回去?!保ㄆ渌麑W(xué)生說(shuō))“對(duì),這就是循環(huán)體,s=s+1,第一個(gè)同學(xué)重復(fù)這組動(dòng)作一次,第二個(gè)同學(xué)重復(fù)這組動(dòng)作兩次,第三個(gè)……”學(xué)生們開(kāi)始齊聲復(fù)述剛才的活動(dòng)場(chǎng)景。
學(xué)生舉的例子更具可操作性,讓他們更加深刻地理解了雙重循環(huán)的概念,并在他們心中建立起一個(gè)關(guān)于如何識(shí)別和實(shí)現(xiàn)雙重循環(huán)的明確模型。這種互動(dòng)和實(shí)踐,不僅讓抽象的理論知識(shí)變得生動(dòng)有趣,還極大地提升了學(xué)生的學(xué)習(xí)興趣和參與度。程序結(jié)構(gòu)不再是計(jì)算機(jī)編程中的一個(gè)理論概念,它已經(jīng)深深根植于學(xué)生的日常行為和邏輯思維。
3.行為助力,搭建問(wèn)題與思維框架
為了幫助學(xué)生更好地進(jìn)行問(wèn)題建構(gòu),教師可以設(shè)計(jì)一些具有層次性和挑戰(zhàn)性的任務(wù),這些任務(wù)可以包括一些實(shí)際問(wèn)題或者有趣的編程挑戰(zhàn),旨在讓學(xué)生在實(shí)際操作中不斷嘗試、調(diào)整和完善自己的解決方案,從而有效鍛煉自己的邏輯思維和問(wèn)題解決能力。同時(shí),教師提供及時(shí)的反饋和指導(dǎo),幫助學(xué)生發(fā)現(xiàn)并糾正自己的思維誤區(qū)和錯(cuò)誤,這不僅可以讓學(xué)生在錯(cuò)誤中學(xué)習(xí),還能幫助他們建立正確的編程思維框架。通過(guò)不斷地試錯(cuò)與反思,學(xué)生可以逐漸掌握問(wèn)題解構(gòu)和思維構(gòu)建的技巧。
經(jīng)歷問(wèn)題建構(gòu)的過(guò)程,學(xué)生不僅能夠理解問(wèn)題的表面,更能深入挖掘問(wèn)題的本質(zhì)和內(nèi)在聯(lián)系。他們需要思考問(wèn)題的核心需求,并設(shè)計(jì)合適的算法和程序來(lái)實(shí)現(xiàn)這些需求,這一過(guò)程充分鍛煉了學(xué)生的邏輯推理和歸納思維能力,有助于他們?cè)诿鎸?duì)復(fù)雜問(wèn)題時(shí)能夠迅速找到突破口并制訂出切實(shí)可行的解決方案。通過(guò)問(wèn)題建構(gòu)的系統(tǒng)訓(xùn)練,學(xué)生可以逐漸形成自己的編程思維體系,形成獨(dú)立分析、解決問(wèn)題的能力,更有效地推動(dòng)深度思維能力的提升。
利用行為實(shí)踐驅(qū)動(dòng)問(wèn)題探索,系統(tǒng)發(fā)展創(chuàng)新思維
編程思維的培養(yǎng)不局限于對(duì)程序編寫(xiě)技能的訓(xùn)練,它更是一種綜合性的技能,涵蓋了邏輯推理、問(wèn)題分析與解決能力等多個(gè)方面,當(dāng)學(xué)生對(duì)程序設(shè)計(jì)有基礎(chǔ)認(rèn)知后,教師可以進(jìn)一步通過(guò)問(wèn)題實(shí)踐來(lái)引導(dǎo)學(xué)生,以實(shí)現(xiàn)其創(chuàng)新思維的系統(tǒng)養(yǎng)成。
1.行為實(shí)踐中的問(wèn)題設(shè)計(jì)
問(wèn)題實(shí)踐是將算法知識(shí)應(yīng)用于解決實(shí)際問(wèn)題的過(guò)程,教師可以設(shè)計(jì)一些具有挑戰(zhàn)性和創(chuàng)新性的問(wèn)題實(shí)踐任務(wù),讓學(xué)生綜合運(yùn)用所學(xué)的算法知識(shí)來(lái)解決實(shí)際問(wèn)題,這些問(wèn)題可以來(lái)自日常生活、科學(xué)實(shí)驗(yàn)、社會(huì)熱點(diǎn)等,具有一定的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。在解決實(shí)際問(wèn)題的過(guò)程中,學(xué)生需要迅速定位問(wèn)題的關(guān)鍵點(diǎn),并找到合適的解決方案,這不僅能夠鍛煉邏輯思維能力,還能夠提高問(wèn)題分析和解決能力。同時(shí),通過(guò)不斷嘗試和迭代,學(xué)生還可以發(fā)掘新的算法和策略,培養(yǎng)系統(tǒng)創(chuàng)新思維的能力。
2.行為實(shí)踐中的學(xué)習(xí)設(shè)計(jì)
以排列組合為例,這部分內(nèi)容對(duì)低年級(jí)的學(xué)生來(lái)說(shuō)更是思維的極限挑戰(zhàn),特別是組合公式的理解更是難上加難。為了幫助學(xué)生更好地理解這一概念,筆者設(shè)計(jì)了以下學(xué)習(xí)活動(dòng):
上課伊始,筆者對(duì)第一排的5個(gè)男生說(shuō):“老師需要3個(gè)同學(xué)幫我去總務(wù)處領(lǐng)這學(xué)期微機(jī)室的滅火器,我應(yīng)該如何選人呢?因?yàn)樾∈ナ前嚅L(zhǎng),所以,我一定要讓他帶頭,那么就是從剩下的4個(gè)同學(xué)中選2人就可以了。但如果我一定不讓小圣去,那就是從剩下的4個(gè)同學(xué)中選3位?!惫P者回到講臺(tái),利用板書(shū)和學(xué)生一起梳理這段陳述,如果一定讓小圣去,那就是,如果一定不讓小圣去,就是,那么,從5個(gè)同學(xué)里選3人去拿滅火器的方案數(shù)就是,也就是,這是組合的一個(gè)公式,也是編程中處理問(wèn)題的一種方法。
3.利用行為引導(dǎo)學(xué)生發(fā)展系統(tǒng)創(chuàng)新思維
通過(guò)理論與實(shí)踐的結(jié)合,不僅能夠增強(qiáng)學(xué)生解決實(shí)際問(wèn)題的能力,還能幫助他們深刻理解編程思維和算法設(shè)計(jì)的核心概念。學(xué)生在面對(duì)復(fù)雜問(wèn)題時(shí)需要從整體到局部,從抽象到具體,進(jìn)行全面思考和規(guī)劃。他們需要考慮到問(wèn)題的各個(gè)方面和可能的影響因素,從而設(shè)計(jì)出全面而有效的解決方案。這種系統(tǒng)性的思考方式,有助于學(xué)生在面對(duì)未知領(lǐng)域和復(fù)雜問(wèn)題時(shí),能夠迅速找到切入點(diǎn),提出創(chuàng)新的想法和解決方案。此外,問(wèn)題實(shí)踐還能幫助學(xué)生深入理解編程思維和算法設(shè)計(jì)的核心概念。通過(guò)實(shí)際應(yīng)用,學(xué)生可以更加直觀(guān)地感受到算法的力量和編程的魅力,從而增強(qiáng)對(duì)編程學(xué)習(xí)的興趣和動(dòng)力。同時(shí),他們還能在實(shí)踐中不斷調(diào)整和優(yōu)化自己的設(shè)計(jì)方案,提高算法的效率和準(zhǔn)確性。
總的來(lái)說(shuō),通過(guò)行為模擬進(jìn)行低年級(jí)算法教學(xué),不僅可以將編程思維具象化,讓學(xué)生在輕松愉快的氛圍中掌握編程的基本概念和方法,提高他們的學(xué)習(xí)興趣和積極性,讓他們充分享受編程帶來(lái)的樂(lè)趣和挑戰(zhàn),而且可以在問(wèn)題解決中培養(yǎng)學(xué)生的高階抽象思維、深度邏輯思維、系統(tǒng)創(chuàng)新思維,幫助他們實(shí)現(xiàn)自我超越和發(fā)展。在行為模擬的引導(dǎo)下,學(xué)生能夠主動(dòng)思考、積極探索,將所學(xué)算法知識(shí)靈活應(yīng)用于實(shí)際場(chǎng)景中,從具體到抽象,從簡(jiǎn)單到復(fù)雜,循序漸進(jìn)地掌握編程知識(shí),這不僅符合學(xué)生的認(rèn)知發(fā)展規(guī)律,還有助于學(xué)生建立起完整的知識(shí)體系和思維框架,全面提升信息素養(yǎng)和能力,為他們未來(lái)的學(xué)習(xí)和生活奠定堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]董永建.信息學(xué)奧賽一本通:C++版[M].北京:科學(xué)技術(shù)文獻(xiàn)出版社,2013.
[2]顧鋒.基于數(shù)學(xué)建模問(wèn)題的高階抽象思維能力培養(yǎng)探析[J].數(shù)學(xué)之友,2023,37(15):2-4.
[3]秦娟.高級(jí)思維教學(xué)的核心指向[M].上海:華東師范大學(xué)出版社,2021.