秦琦
信息技術(shù)學(xué)科核心素養(yǎng)包含了信息意識(shí)、計(jì)算思維、數(shù)字化學(xué)習(xí)與創(chuàng)新和信息社會(huì)責(zé)任四個(gè)方面的內(nèi)容。其中,計(jì)算思維是指計(jì)算機(jī)科學(xué)領(lǐng)域內(nèi)關(guān)于形式化問(wèn)題解決的一種思想方法,包含了問(wèn)題界定、抽象特征、建立模型和設(shè)計(jì)算法等方面的內(nèi)容,它是信息技術(shù)學(xué)科核心素養(yǎng)的重要內(nèi)涵之一,是信息技術(shù)學(xué)科思維的精髓所在,是信息技術(shù)學(xué)科能力的主要體現(xiàn)。而程序設(shè)計(jì)課程是培養(yǎng)學(xué)生“怎么像計(jì)算機(jī)科學(xué)家們一樣去思維”的課程,《設(shè)計(jì)無(wú)人駕駛小車》是程序設(shè)計(jì)課程中的重要一課,其教學(xué)目標(biāo)、教學(xué)指向均體現(xiàn)了計(jì)算思維的重要性。下面,筆者以此課為例展示計(jì)算思維在可視化程序設(shè)計(jì)教學(xué)過(guò)程中的應(yīng)用思路和過(guò)程。
● 提出大任務(wù),分解任務(wù)
課堂大任務(wù):在可視化程序中實(shí)現(xiàn)無(wú)人駕駛小車功能。
教師設(shè)置生活問(wèn)題情境,提出探究性問(wèn)題“你想設(shè)計(jì)無(wú)人駕駛小車哪些功能”,以此調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,激發(fā)其學(xué)習(xí)動(dòng)機(jī)。面對(duì)這樣的任務(wù),學(xué)生可能從操控性、安全性、智能化等方面進(jìn)行發(fā)散性思考,如汽車感知到?jīng)]油后會(huì)自動(dòng)去尋找加油站或者汽車會(huì)自行規(guī)劃路線導(dǎo)航……課堂在中師生共同理解和分析任務(wù)后,教師引導(dǎo)學(xué)生將大任務(wù)拆分出可管理、可實(shí)行的小任務(wù)。這就是計(jì)算思維中解決問(wèn)題的思維,將復(fù)雜問(wèn)題化繁為簡(jiǎn),由外到內(nèi)逐層分解,通過(guò)篩選、識(shí)別,進(jìn)而保留可執(zhí)行的小任務(wù)。最終,學(xué)生在課堂中分解出小任務(wù):小車在馬路上行駛、小車遇到行人或者其他障礙物會(huì)自動(dòng)避障、小車遇到紅綠燈會(huì)自主識(shí)別判斷……在這一環(huán)節(jié)中學(xué)生充分體驗(yàn)、經(jīng)歷了問(wèn)題的分解過(guò)程,學(xué)習(xí)目標(biāo)更加明確,構(gòu)建出無(wú)人駕駛小車功能的框架結(jié)構(gòu),教師可以在接下來(lái)的課堂中引導(dǎo)學(xué)生完成一個(gè)個(gè)小任務(wù)。
● 歸納梳理,建立模型
“感知小車在馬路上行駛”是作為復(fù)習(xí)內(nèi)容,再次鞏固思維過(guò)程,并且挖掘深層信息,為本節(jié)課的思維展開(kāi)進(jìn)行鋪墊。因此,如何引導(dǎo)學(xué)生抽象出解決問(wèn)題的關(guān)鍵點(diǎn),是課堂教學(xué)中的難點(diǎn)也是核心。為解決“感知小車在馬路上行駛”這一任務(wù),筆者構(gòu)建了“生活語(yǔ)言描述—提煉關(guān)鍵詞—轉(zhuǎn)化—搭建控件”的學(xué)習(xí)流程,目的是讓學(xué)生能將對(duì)現(xiàn)實(shí)生活場(chǎng)景的描述在可視化編程場(chǎng)景用腳本實(shí)現(xiàn),初步建立抽象能力和構(gòu)造能力。
學(xué)生最開(kāi)始借助生活經(jīng)驗(yàn),用自然語(yǔ)言描述“小車行駛到馬路邊緣,會(huì)轉(zhuǎn)彎”,但這樣的語(yǔ)句計(jì)算機(jī)是不能理解、不能識(shí)別的,那怎樣轉(zhuǎn)化成形式化描述,讓計(jì)算機(jī)識(shí)別并計(jì)算呢?筆者引導(dǎo)學(xué)生根據(jù)語(yǔ)句描述的信息來(lái)剔除不必要信息,提煉重要信息,找到了“紅色‘虛擬傳感器、碰到、左側(cè)白色、右轉(zhuǎn)”等關(guān)鍵詞,但學(xué)生發(fā)現(xiàn),這些關(guān)鍵詞還是屬于現(xiàn)實(shí)生活中的表達(dá),仍然無(wú)法連接可視化編程場(chǎng)景中的控件。于是,筆者再引導(dǎo)學(xué)生對(duì)關(guān)鍵詞進(jìn)行歸納、分析,發(fā)現(xiàn)“紅色‘虛擬傳感器、碰到、左側(cè)白色”這三個(gè)關(guān)鍵詞表達(dá)了“探測(cè)、感知”的作用,而“右轉(zhuǎn)”則表達(dá)了“決定、決策”的作用。
通過(guò)厘清關(guān)鍵詞的過(guò)程,建立了有效的操作步驟:先探測(cè)再?zèng)Q策,也符合可視化編程場(chǎng)景中“先偵測(cè)再?zèng)Q策”的編程思想。這一過(guò)程將現(xiàn)實(shí)世界的問(wèn)題進(jìn)行抽象,成為計(jì)算機(jī)能夠理解或?qū)崿F(xiàn)的表達(dá)形式,也構(gòu)造出了解決問(wèn)題的框架,得到了解決問(wèn)題的模型。
● 整理關(guān)鍵詞,抽象事物關(guān)系
得到了方法模型,但表示探測(cè)作用的三個(gè)關(guān)鍵詞“紅色‘虛擬傳感器、碰到、左側(cè)白色”,還是不能直接在可視化編程場(chǎng)景中找到控件。計(jì)算思維中的抽象是省略不必要的細(xì)節(jié),留下需要強(qiáng)調(diào)的環(huán)節(jié)的過(guò)程。所以,還需要引導(dǎo)學(xué)生進(jìn)行“轉(zhuǎn)化”,這時(shí)的關(guān)鍵點(diǎn)轉(zhuǎn)為:在事物與事物的本質(zhì)中找到可聯(lián)系的相通點(diǎn),因?yàn)槭挛锏谋举|(zhì)是事物本身固有的,決定事物性質(zhì)、面貌和發(fā)展的根本屬性。學(xué)生通過(guò)討論,發(fā)現(xiàn)關(guān)鍵詞中有“紅色”“白色”這兩個(gè)表現(xiàn)顏色的詞語(yǔ),挖掘到顏色這一本質(zhì)屬性,自然就和可視化編程中的“偵測(cè)顏色”控件聯(lián)系上了。關(guān)鍵點(diǎn)解決了,再進(jìn)行腳本搭建,實(shí)現(xiàn)自動(dòng)化。
● 化歸思想,尋求最優(yōu)化方案
“感知行人”解決問(wèn)題的方法模型是參考“感知小車在馬路上”的模型:先探測(cè)后決策,用化歸思想解決問(wèn)題(如下頁(yè)圖1)。當(dāng)學(xué)生掌握這一思想方法后,教師再啟發(fā)學(xué)生運(yùn)用所學(xué)方法自主探究解決更深層次的問(wèn)題,分別用三種方法來(lái)實(shí)現(xiàn)無(wú)人駕駛小車感知行人后避障的功能,并比較三種方法的可行性,通過(guò)小組合作的方式運(yùn)用計(jì)算思維達(dá)到知識(shí)鞏固和遷移的目的。
學(xué)生在分析“感知行人”的問(wèn)題時(shí),會(huì)運(yùn)用之前的模型來(lái)解決,即從“探測(cè)顏色”考慮,如小車紅色傳感器碰到男孩的上衣的顏色、小車的顏色碰到男孩頭發(fā)的顏色、小車的顏色碰到男孩褲子的顏色、小車角色碰到男孩上衣的顏色……學(xué)生在運(yùn)用“偵測(cè)顏色”控件搭建腳本進(jìn)行調(diào)試的過(guò)程中,在使用“小車角色碰到男孩上衣顏色”腳本時(shí),并不能實(shí)現(xiàn)無(wú)人駕駛小車感知行人后避障的功能。學(xué)生自主發(fā)現(xiàn),要考慮碰到男孩多種顏色的可能性,用原有“探測(cè)顏色”思路來(lái)解決問(wèn)題出現(xiàn)了不確定性。
接著,學(xué)生利用已有的知識(shí)和經(jīng)驗(yàn),提出用“碰到男孩角色”的方法來(lái)實(shí)現(xiàn)。在筆者的追問(wèn)中學(xué)生能明確:顏色是男孩角色本身顯示出來(lái)的特征屬性,碰到男孩角色了,男孩顯示出來(lái)的各種顏色也就考慮進(jìn)去了。通過(guò)這樣的分析,學(xué)生利用“偵測(cè)角色”控件,快速搭建腳本,經(jīng)過(guò)調(diào)試實(shí)現(xiàn)了小車感知行人后避障的功能。隨后,對(duì)“偵測(cè)顏色”腳本和“偵測(cè)角色”腳本進(jìn)行對(duì)比,學(xué)生能說(shuō)出使用“偵測(cè)角色”腳本的方案更加簡(jiǎn)潔、明了,考慮問(wèn)題更加全面的優(yōu)點(diǎn),這體現(xiàn)了對(duì)學(xué)生算法思維的培養(yǎng)。
問(wèn)題解決了,但通過(guò)觀看視頻,回到現(xiàn)實(shí)生活,學(xué)生發(fā)現(xiàn),從安全性考慮,小車和男孩之間不能碰到,從而再次分析明確:小車和男孩之間要有一段距離,從兩個(gè)角色的關(guān)系中又抽象出“可以探測(cè)距離”。距離是一個(gè)抽象的概念,還要進(jìn)行具體化,用具體的數(shù)值來(lái)表示。課堂中,學(xué)生對(duì)距離值應(yīng)該采用“大于、等于、小于”不明確,調(diào)試中出現(xiàn)了錯(cuò)誤。當(dāng)搭建的腳本出錯(cuò)時(shí),調(diào)試中出現(xiàn)的問(wèn)題是生成性的,調(diào)試也需要更多的思維能力,學(xué)生在這一過(guò)程中嘗試診斷和修正,查找出錯(cuò)的緣由,設(shè)計(jì)調(diào)試腳本的“解決方案”,直到腳本能正常運(yùn)行,從而理解了計(jì)算的過(guò)程,發(fā)展了計(jì)算思維。
隨后,學(xué)生對(duì)“偵測(cè)角色”腳本和“偵測(cè)距離”腳本進(jìn)行了對(duì)比,認(rèn)為使用“偵測(cè)距離”腳本的方案更加合理。在這個(gè)過(guò)程中,學(xué)生將抽象方法搭建的腳本放到生活實(shí)際認(rèn)知狀態(tài)中檢測(cè)是否與原來(lái)的設(shè)想一致,發(fā)現(xiàn)腳本匹配現(xiàn)實(shí)生活場(chǎng)景,從而得出正確的答案。
本環(huán)節(jié),筆者通過(guò)三種實(shí)現(xiàn)方法,帶動(dòng)學(xué)生去發(fā)掘,去探索、對(duì)各種解決方案比較選優(yōu),去尋求更好的解決途徑,這樣不但可以提高學(xué)生分析和解決問(wèn)題的能力,還可以盡可能逼近解決實(shí)際問(wèn)題的模式。
● 構(gòu)建知識(shí)體系,遷移應(yīng)用
1.知識(shí)建構(gòu)
結(jié)合本節(jié)課所學(xué),談?wù)勅绾螌⑸钪械膶?shí)際問(wèn)題通過(guò)可視化程序設(shè)計(jì)來(lái)實(shí)現(xiàn)(如圖2)。
筆者通過(guò)以上知識(shí)結(jié)構(gòu)圖的回顧,引導(dǎo)學(xué)生梳理本節(jié)課的主要內(nèi)容,運(yùn)用計(jì)算思維來(lái)解決問(wèn)題,總結(jié)出解決問(wèn)題的一般方法,從而建構(gòu)出知識(shí)的方法模型,并引導(dǎo)出具體的學(xué)習(xí)方法(如圖3)。通過(guò)這一流程,發(fā)現(xiàn)并確定了問(wèn)題,分析了問(wèn)題的構(gòu)成要素,對(duì)問(wèn)題進(jìn)行了分析、分解,為問(wèn)題的解決提供了相對(duì)有效的途徑和方法,滲透了算法思維。
2.遷移應(yīng)用
本節(jié)課構(gòu)建出的知識(shí)體系和方法模型,同樣適用下節(jié)課無(wú)人駕駛小車“感知紅綠燈”的情境。教師可引導(dǎo)學(xué)生通過(guò)“先探測(cè)后決策”的模型以及“探測(cè)事物的哪個(gè)屬性”來(lái)展開(kāi)教學(xué)。而“探測(cè)事物的哪個(gè)屬性”體現(xiàn)了計(jì)算思維的抽象,促使學(xué)生透過(guò)現(xiàn)象繼續(xù)挖掘本質(zhì),抽象出事物的共同特征和屬性,也就是下節(jié)課的難點(diǎn)和關(guān)鍵點(diǎn),相信通過(guò)本節(jié)課的學(xué)習(xí)鋪墊,下節(jié)課的解決問(wèn)題會(huì)水到渠成。
總之,體現(xiàn)程序設(shè)計(jì)的“思想”和“方法”,實(shí)現(xiàn)學(xué)習(xí)程序設(shè)計(jì)的目的就是讓學(xué)生學(xué)會(huì)解決問(wèn)題,而計(jì)算思維提供了解決問(wèn)題的思維,能拓寬學(xué)生的思路,因此在教學(xué)中有必要讓計(jì)算思維成為學(xué)生應(yīng)具備的基本能力。
基金項(xiàng)目:本文系江蘇省教育科學(xué)“十三五”規(guī)劃立項(xiàng)課題“指向計(jì)算思維的‘程序設(shè)計(jì)初步教學(xué)實(shí)踐研究”(課題批準(zhǔn)號(hào):B-b/2020/02/159)研究成果。