黃麗娟
摘 要:培育學(xué)生的計(jì)算思維,需要不斷向理論求索、向?qū)嵺`深潛、向課堂扎根。在新課標(biāo)指引之下,要致力于把程序結(jié)果的教學(xué)轉(zhuǎn)變?yōu)槌绦蜻^(guò)程的教學(xué),以過(guò)程的夯實(shí)帶動(dòng)結(jié)果的評(píng)估應(yīng)用。蘇科版小學(xué)信息技術(shù)五年級(jí)Scratch模塊《克隆飛機(jī)大戰(zhàn)》一課,立足問(wèn)題界定、抽象建模、調(diào)試完善三大環(huán)節(jié),以問(wèn)題解決為載體,帶領(lǐng)學(xué)生在提高解決問(wèn)題能力的同時(shí),培育計(jì)算思維。
關(guān)鍵詞:小學(xué)信息科技;計(jì)算思維;Scratch;《克隆飛機(jī)大戰(zhàn)》
計(jì)算思維作為信息科技課程核心素養(yǎng)之一,是指“個(gè)體運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,在問(wèn)題解決過(guò)程中涉及的抽象、分解、建模、算法設(shè)計(jì)等思維活動(dòng)”[1]。培育學(xué)生的計(jì)算思維,需要不斷向理論求索、向?qū)嵺`深潛、向課堂扎根。筆者認(rèn)為,在新課標(biāo)指引下,要致力于把程序結(jié)果的教學(xué)轉(zhuǎn)變?yōu)槌绦蜻^(guò)程的教學(xué),以過(guò)程的夯實(shí)帶動(dòng)結(jié)果的評(píng)估應(yīng)用,培育學(xué)生的計(jì)算思維。在編程教學(xué)中,教師可以立足問(wèn)題界定、抽象建模、調(diào)試完善三大環(huán)節(jié),以問(wèn)題解決為載體,帶領(lǐng)學(xué)生在提高解決問(wèn)題能力的同時(shí),培育計(jì)算思維。本文以蘇科版小學(xué)信息技術(shù)五年級(jí)Scratch模塊《克隆飛機(jī)大戰(zhàn)》一課為例,來(lái)具體說(shuō)明。
一、問(wèn)題界定:用自然語(yǔ)言描述真實(shí)情境下的項(xiàng)目需求
《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》倡導(dǎo)真實(shí)性學(xué)習(xí),以真實(shí)問(wèn)題或項(xiàng)目驅(qū)動(dòng),引導(dǎo)學(xué)生經(jīng)歷思維過(guò)程,建構(gòu)知識(shí),提升問(wèn)題解決能力。[2]一個(gè)好的項(xiàng)目問(wèn)題,往往源于對(duì)現(xiàn)實(shí)情境中項(xiàng)目需求的深入挖掘。因此,在確立問(wèn)題時(shí)需要交代清楚需設(shè)計(jì)什么樣的問(wèn)題,根植于這樣的情境土壤,再明確項(xiàng)目的具體需求。
(一)融通生活,創(chuàng)設(shè)真實(shí)情境
一般來(lái)說(shuō),教材情境是教學(xué)內(nèi)容的重要依托。一方面,我們可以基于教材,深入理解教材的“本意”和“原汁原味”,用教材教;另一方面,我們還可以融通生活,創(chuàng)設(shè)真實(shí)情境,使教學(xué)內(nèi)容更具真實(shí)感、意義感。
《克隆飛機(jī)大戰(zhàn)》一課,教材中的情境是下落的飛機(jī)與火炮之間的大戰(zhàn)(見(jiàn)圖1),情境設(shè)置比較簡(jiǎn)單。在實(shí)際授課時(shí),教師以新冠肺炎疫情為切入點(diǎn),將教材上的飛機(jī)角色替換成駕駛飛機(jī)的病毒,將火炮角色替換成疫苗,從原來(lái)的“飛機(jī)火炮大戰(zhàn)”變?yōu)椤耙呙绮《敬髴?zhàn)”。教師出示圖2,激趣設(shè)疑:“新冠肺炎疫情停課期間,楊同學(xué)創(chuàng)新開(kāi)發(fā)了這款抗疫小游戲,你們想不想用Scratch軟件把它制作出來(lái)呢?”
通過(guò)真實(shí)情境的創(chuàng)設(shè),展示疫苗與病毒之間的頑強(qiáng)斗爭(zhēng),表達(dá)“抗疫有我,眾志成城”的堅(jiān)決,賦予課題以現(xiàn)實(shí)意義。
(二)逐級(jí)分解,描述項(xiàng)目需求
在提出問(wèn)題情境之后,教師帶領(lǐng)學(xué)生將其逐層分解為一個(gè)個(gè)小問(wèn)題,直至分解到最小的問(wèn)題單元。學(xué)生采用自然語(yǔ)言或流程圖的方式描述需求,再依據(jù)解題邏輯,自下而上逐層遞歸來(lái)解決問(wèn)題。
本課中,教師帶領(lǐng)學(xué)生從“疫苗病毒大戰(zhàn)”的問(wèn)題情境出發(fā),按照角色分解任務(wù)和需求。學(xué)生用自然語(yǔ)言分別描述出各角色的行為狀態(tài)、角色與角色之間的互動(dòng)關(guān)系等,得到下頁(yè)表1。
學(xué)生用自然語(yǔ)言描述的過(guò)程,也是思維逐步清晰的過(guò)程,為接下來(lái)程序語(yǔ)言的轉(zhuǎn)化打好了基礎(chǔ)。
二、抽象建模:用程序語(yǔ)言建構(gòu)問(wèn)題解決中的算法過(guò)程
Scratch教學(xué)中的抽象是引導(dǎo)學(xué)生將真實(shí)復(fù)雜問(wèn)題與場(chǎng)景抽象、簡(jiǎn)化,提取出相應(yīng)的角色與舞臺(tái),并進(jìn)行歸納、整理,分析它們各自的表現(xiàn)行為,用自然語(yǔ)言進(jìn)行描述。這在上述環(huán)節(jié)中其實(shí)已有提及。接下來(lái),就要通過(guò)控件轉(zhuǎn)化,將學(xué)生的自然語(yǔ)言描述變?yōu)槌绦蛘Z(yǔ)言——這就是建模。抽象建模思想是計(jì)算思維的重要本質(zhì)內(nèi)涵。
(一)理解“控件”,奠定抽象之基
要讓程序教學(xué)成為“有米之炊”的活動(dòng),則必須要以適當(dāng)?shù)闹R(shí)積累為基礎(chǔ),這樣學(xué)生才有進(jìn)一步探究的依據(jù)和資源?!翱丶弊鳛橐豁?xiàng)知識(shí),是程序腳本組成的最小單位,是學(xué)生解決問(wèn)題、發(fā)展計(jì)算思維的基礎(chǔ)材料,類似于寫作中的字和詞。
其實(shí),不僅僅局限于本課,在Scratch教學(xué)初期,我們都采用“讀一讀”“譯一譯”“歸歸類”“搭一搭”等活動(dòng),讓學(xué)生熟悉10個(gè)模塊中的具體控件,并形成整體的初步印象,使之成為學(xué)生日后進(jìn)行抽象建模隨時(shí)調(diào)用的材料。當(dāng)這些零碎的材料通過(guò)有機(jī)組合,嵌入有意義的情境中,用來(lái)解決實(shí)際問(wèn)題時(shí),它的價(jià)值就實(shí)現(xiàn)了。
(二)轉(zhuǎn)化語(yǔ)言,明晰提取之源
抽象和建模是程序設(shè)計(jì)的核心步驟,關(guān)鍵在于將問(wèn)題分解時(shí)的自然語(yǔ)言描述轉(zhuǎn)化為程序語(yǔ)言。實(shí)際教學(xué)過(guò)程中,巧妙運(yùn)用“關(guān)鍵詞—關(guān)鍵控件”的方法,找到自然語(yǔ)言中的“關(guān)鍵詞”,隨后調(diào)用先前積累的“控件庫(kù)”,提取相應(yīng)的“關(guān)鍵控件”,從而獲取搭建程序的基礎(chǔ)材料。
本課中,學(xué)生找到了“很多個(gè)病毒”“碰到地面”“消失”“變成炸毀造型”等關(guān)鍵詞,通過(guò)與“控件庫(kù)”的鏈接,提取“克隆”“當(dāng)克隆體啟動(dòng)時(shí)”“碰到邊緣”“刪除本克隆體”“切換到造型”等關(guān)鍵控件,完成了從自然語(yǔ)言到程序語(yǔ)言的轉(zhuǎn)化。當(dāng)然,能否順利提取“關(guān)鍵控件”,還取決于學(xué)生對(duì)控件的熟悉程度以及與自然語(yǔ)言的勾連程度。
(三)搭建腳本,串聯(lián)建模之線
教學(xué)至此,由自然語(yǔ)言轉(zhuǎn)化后的“關(guān)鍵控件”,依然是零散的、孤立的,是各個(gè)互為意義的控件的簡(jiǎn)單堆疊。因此,需要有一根明確的主線,串聯(lián)起這些“關(guān)鍵控件”,使之能結(jié)構(gòu)化地指向問(wèn)題解決,賦予其整體性和意義性。
一段完善的程序需要“關(guān)鍵控件”與“輔助控件”的組合?!瓣P(guān)鍵控件”由前期自然語(yǔ)言轉(zhuǎn)化而來(lái),“輔助控件”則由后期調(diào)試得來(lái),是對(duì)前期自然語(yǔ)言不完善之處的補(bǔ)充、修正與完善。本課中,圖3中的“等待”“重復(fù)執(zhí)行”等控件就起到“輔助控件”的作用。讓學(xué)生參與到程序設(shè)計(jì)的建構(gòu)中去,掌握單個(gè)控件與整體程序腳本之間的普遍聯(lián)系,可以有效促進(jìn)學(xué)生計(jì)算思維的發(fā)展。
三、調(diào)試完善:用“三化”策略迭代提升算法解決的實(shí)現(xiàn)效率
具備計(jì)算思維的學(xué)生,能嘗試模擬、仿真、驗(yàn)證解決問(wèn)題的過(guò)程,反思、優(yōu)化解決問(wèn)題的方案。[3]因此,一段程序初步編寫完成之后,還需要回溯,再調(diào)試、再加工、再打磨與再優(yōu)化,是從“細(xì)化”到“簡(jiǎn)化”“優(yōu)化”,最后到“模塊化”的逐階遞進(jìn),不斷地追求程序設(shè)計(jì)的最優(yōu)化和程序運(yùn)行的輕量化。在此過(guò)程中,循序漸進(jìn)地培育學(xué)生的計(jì)算思維。
(一)內(nèi)容細(xì)化,環(huán)環(huán)相扣
內(nèi)容細(xì)化既著眼于腳本搭建的細(xì)微之處,同時(shí)又觀照前后整體,包括每個(gè)角色之間的運(yùn)行方式、相互關(guān)聯(lián)等,更強(qiáng)調(diào)系統(tǒng)思維。以本課中的“病毒”角色為例,不僅要考慮其“克隆”后“克隆體”往下落的過(guò)程,還需要考慮其初始化時(shí)的位置,不能出現(xiàn)在“邊緣”等角色自身的細(xì)節(jié)性問(wèn)題,碰到“疫苗”角色后要切換“炸毀”造型并消失的角色間關(guān)聯(lián)性問(wèn)題。整個(gè)過(guò)程環(huán)環(huán)相扣,哪怕最微小的差錯(cuò)也不能被忽略,因?yàn)樽钗⑿〉牟铄e(cuò)也有可能出現(xiàn)結(jié)果的“謬以千里”。
(二)結(jié)構(gòu)簡(jiǎn)化,清晰精練
結(jié)構(gòu)簡(jiǎn)化主要是針對(duì)程序流程上煩瑣、冗長(zhǎng)、臃腫的問(wèn)題而提出的。例如,在對(duì)“很多個(gè)病毒從空中往下掉”這段自然語(yǔ)言進(jìn)行程序語(yǔ)言轉(zhuǎn)換時(shí),大多數(shù)學(xué)生借助原有經(jīng)驗(yàn),很容易想到用“復(fù)制”來(lái)解決,這是一種方法。但這種方法就意味著,有多少個(gè)病毒掉下,就要復(fù)制多少個(gè)病毒角色,且后續(xù)如果腳本需要微調(diào),這些復(fù)制品也一并都要修改,這無(wú)形中增加了大量重復(fù)操作的時(shí)間。而利用“克隆”控件對(duì)程序進(jìn)行簡(jiǎn)化,就巧妙地避開(kāi)了這些問(wèn)題。
(三)控件優(yōu)化,輕量適切
控件優(yōu)化更傾向于追求控件運(yùn)用的適切性。尤其是在兩類具有相似作用的控件使用上,要依據(jù)程序輕量化、適切性等原則,進(jìn)行合理選用。例如,“隱藏”與“刪除本克隆體”控件的選用,本課中,學(xué)生知道了用“隱藏”控件雖然能讓飛機(jī)消失,但它一直還在程序后臺(tái)運(yùn)行著,占用著電腦的內(nèi)存,當(dāng)飛機(jī)越來(lái)越多的時(shí)候,很可能出現(xiàn)卡頓的現(xiàn)象;而“刪除本克隆體”就能讓程序?qū)崿F(xiàn)輕量化??丶?yōu)化依賴于遷移,而遷移的實(shí)現(xiàn)有賴于遷移源和遷移目標(biāo)所共同具備的因素,而思維,恰恰“是一種自覺(jué)地理解共同因素的過(guò)程”。學(xué)生在遷移、辨析等活動(dòng)中實(shí)現(xiàn)了思維的活化與深化,有效發(fā)展了計(jì)算思維。
參考文獻(xiàn):
[1][2][3] 中華人民共和國(guó)教育部.義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)[S].北京:北京師范大學(xué)出版社,2022:5,3,5.
教育研究與評(píng)論(小學(xué)教育教學(xué))2023年6期