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