談海亞
摘要:計(jì)算思維是迎接與適應(yīng)信息化社會(huì)發(fā)展的一項(xiàng)重要技能,是信息科技課程要培養(yǎng)的核心素養(yǎng)之一。在初中學(xué)段,“程序設(shè)計(jì)”教學(xué)是計(jì)算思維培養(yǎng)的重要途徑。從計(jì)算思維的“抽象”和“自動(dòng)化”內(nèi)涵視角,架構(gòu)(微)項(xiàng)目設(shè)計(jì)、問題分解、抽象建模、設(shè)計(jì)算法及評(píng)估編程等環(huán)節(jié)的“程序設(shè)計(jì)”教學(xué)框架,并以《設(shè)計(jì)垃圾分類模擬小游戲》一課為例具體說明。
關(guān)鍵詞:計(jì)算思維;程序設(shè)計(jì);初中信息技術(shù);《設(shè)計(jì)垃圾分類模擬小游戲》
一、指向計(jì)算思維培養(yǎng)的“程序設(shè)計(jì)”教學(xué)架構(gòu)
計(jì)算思維,指個(gè)體運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,在問題解決過程中涉及的抽象、分解、建模、算法設(shè)計(jì)等思維活動(dòng)。在日新月異的信息化社會(huì),計(jì)算思維是迎接與適應(yīng)社會(huì)發(fā)展的一項(xiàng)重要技能,與“讀、寫、算”能力同等重要。為此,新課程背景下,如何發(fā)展學(xué)生的計(jì)算思維,成為信息技術(shù)學(xué)科教學(xué)的新訴求。
縱觀信息技術(shù)課程,程序設(shè)計(jì)是學(xué)科的核心內(nèi)容,也是最接近計(jì)算機(jī)工作原理的內(nèi)容。同時(shí),其中的算法與編程等內(nèi)容的學(xué)習(xí)關(guān)聯(lián)學(xué)生抽象邏輯思維、創(chuàng)造思維的培養(yǎng),是計(jì)算思維培養(yǎng)的重要途徑。但是,傳統(tǒng)的程序設(shè)計(jì)教學(xué)常囿于語法知識(shí)及內(nèi)容單一的枯燥訓(xùn)練中,無法企及學(xué)生計(jì)算思維的培養(yǎng)。
有學(xué)者將計(jì)算思維的本質(zhì)特征描述為抽象(Abstraction) 與自動(dòng)化(Automation)。具體而言,抽象是以抽象思維的方式,將現(xiàn)實(shí)生活中的問題轉(zhuǎn)換為計(jì)算機(jī)可以識(shí)別的模型化問題。自動(dòng)化是計(jì)算機(jī)根據(jù)預(yù)設(shè)的算法、程序自動(dòng)執(zhí)行任務(wù),是計(jì)算機(jī)工作原理的重要屬性。顯然,抽象是方法,包含了問題分解、抽象建模及算法思想等思維活動(dòng);自動(dòng)化則是結(jié)果,包含了編程、調(diào)試、評(píng)估等思維活動(dòng)。
由此,運(yùn)用《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》提倡的項(xiàng)目學(xué)習(xí)方式,架構(gòu)“程序設(shè)計(jì)”的教學(xué)思路為(微)項(xiàng)目設(shè)計(jì)、問題分解、抽象建模、設(shè)計(jì)算法及評(píng)估編程等五個(gè)環(huán)節(jié)(如圖1)。實(shí)際教學(xué)時(shí),每一環(huán)節(jié)雖有先后次序,但環(huán)節(jié)之間又需要不斷地交叉和融合、關(guān)聯(lián)和滲透。
二、指向計(jì)算思維培養(yǎng)的“程序設(shè)計(jì)”教學(xué)實(shí)踐
下面,以《設(shè)計(jì)垃圾分類模擬小游戲》一課為例,具體說明指向計(jì)算思維培養(yǎng)的“程序設(shè)計(jì)”教學(xué)。
(一)(微)項(xiàng)目設(shè)計(jì)
(微)項(xiàng)目設(shè)計(jì)即確定項(xiàng)目主題,關(guān)鍵是創(chuàng)設(shè)貼近學(xué)生生活實(shí)際的任務(wù)情境。(微)項(xiàng)目設(shè)計(jì)創(chuàng)設(shè)的任務(wù)情境,區(qū)別于小學(xué)階段以課時(shí)內(nèi)容為指向的驅(qū)動(dòng)任務(wù),更具綜合性、實(shí)踐性、趣味性和創(chuàng)新性。
《設(shè)計(jì)垃圾分類模擬小游戲》一課的項(xiàng)目主題為“垃圾分類”,教師創(chuàng)設(shè)了如下任務(wù)情境:
為打造美麗校園,學(xué)校準(zhǔn)備啟動(dòng)“垃圾分類,保護(hù)環(huán)境”主題活動(dòng)。為了讓更多的同學(xué)熟悉垃圾分類并準(zhǔn)確進(jìn)行垃圾投放,現(xiàn)需要開發(fā)設(shè)計(jì)一款簡單明了的垃圾分類模擬小游戲,提供的部分素材見圖2。
(二)問題分解
問題分解就是把一個(gè)復(fù)雜的實(shí)際問題分解成若干可行性更強(qiáng)的小問題,通過聚焦小問題、解決小問題,實(shí)現(xiàn)整體問題的解決。這既是自上而下的設(shè)計(jì)方法,也是化繁為簡的思維抽象和創(chuàng)作過程。
教學(xué)中,略顯粗放的項(xiàng)目任務(wù)“設(shè)計(jì)垃圾分類模擬小游戲”往往讓學(xué)生一頭霧水、無所適從。為此,師生需要共同提煉出項(xiàng)目的總問題,如:圍繞“垃圾分類”主題,如何完成一個(gè)模擬游戲的設(shè)計(jì)?隨后,師生進(jìn)一步把總問題分解為若干個(gè)小問題,如:垃圾分類模擬游戲的場景是什么?游戲中出現(xiàn)幾個(gè)角色?游戲的規(guī)則是什么?每個(gè)角色負(fù)責(zé)完成哪些功能?如何結(jié)束游戲?
經(jīng)上述小問題的分解和梳理,“設(shè)計(jì)垃圾分類模擬小游戲”的項(xiàng)目任務(wù)就分解為:香蕉皮、舊電池、舊書籍等垃圾隨機(jī)出現(xiàn)、落下;垃圾箱在上下左右移動(dòng)中要變換不同的造型來準(zhǔn)確收集垃圾;等等。
(三)抽象建模
本環(huán)節(jié)需要通過抽取類似(抽象)的這一方法,剖析問題本質(zhì),消除自然語言中的二義性,形成可計(jì)算的數(shù)字代碼并建立模型。其中,抽象作為科學(xué)研究的重要方法,也是計(jì)算思維的本質(zhì)。學(xué)生雖經(jīng)歷過數(shù)學(xué)學(xué)習(xí)中的抽象,但面向計(jì)算機(jī)科學(xué)的抽象仍然是一個(gè)學(xué)習(xí)難點(diǎn),尤其是面向?qū)ο蟮某绦蛟O(shè)計(jì)。
例如,“設(shè)計(jì)垃圾分類模擬小游戲”項(xiàng)目中,“垃圾箱”角色要上下左右移動(dòng)。以“垃圾箱”向右移動(dòng)為例。學(xué)生眼里看到的是“垃圾箱”正向地往右走,就像生活中人物往前走一樣。此時(shí)的抽象,就是要把生活中“向前走”的認(rèn)知經(jīng)驗(yàn)轉(zhuǎn)化為移動(dòng)時(shí)的“方向”和“步數(shù)”兩方面的問題。而關(guān)于方向的抽象也是學(xué)生學(xué)習(xí)的難點(diǎn)。為此,借助數(shù)學(xué)中的角和角度來表示、說明。在消除了自然語言中關(guān)于“向前走”的二義性后,“垃圾箱”向右移動(dòng)的問題就迎刃而解,形成了可計(jì)算的數(shù)字代碼——面向90度,將x坐標(biāo)增加10。
學(xué)生經(jīng)歷上述行走問題的抽象和實(shí)踐體驗(yàn)后,類似的問題都可迎刃而解,適用于任何角色,而無關(guān)角色的名稱、大小、外形等。
建模是對(duì)事物或過程進(jìn)行抽象后的形式化的表現(xiàn),也就是構(gòu)造抽象的模型(模型有很多種表現(xiàn)手法,如圖形、代碼、表格等)。建模就是讓學(xué)生經(jīng)歷分析問題、解決問題的過程,也是為后續(xù)設(shè)計(jì)算法做鋪墊。
例如,“設(shè)計(jì)垃圾分類模擬小游戲”項(xiàng)目要實(shí)現(xiàn)對(duì)舊電池垃圾的分類并積分。經(jīng)抽象后,發(fā)現(xiàn)既可以是“舊電池”碰到“有害垃圾箱”觸發(fā)“隱藏”命令并積分;也可以是“舊電池”被“有害垃圾箱”碰到觸發(fā)“隱藏”命令并積分。即有些動(dòng)作行為既可以讓角色1(舊電池)去完成,也可以讓角色2(有害垃圾箱)去完成。以前者為例,借助程序設(shè)計(jì)的選擇結(jié)構(gòu),通過關(guān)系符號(hào)(>、<、=、≥、≤、≠)建立相應(yīng)的關(guān)系表達(dá)式,并設(shè)置變量,從而形成具體的積木代碼模型(如圖3)。
學(xué)生實(shí)踐后發(fā)現(xiàn),游戲如果要進(jìn)一步迭代升級(jí),當(dāng)出現(xiàn)更多不同種類的垃圾(果皮、剩菜……)時(shí),只需要復(fù)制“舊電池” 角色的腳本代碼,稍作修改,就能重復(fù)使用。
(四)設(shè)計(jì)算法
算法是解決問題的方法和步驟,更是編程的靈魂。設(shè)計(jì)算法,即對(duì)要解決的問題進(jìn)行分析,擬訂出一套解決的方法與步驟。于學(xué)生而言,對(duì)抽象的算法概念及同一問題可以有不同的算法,不同的算法在解決具體問題時(shí)又常有優(yōu)劣之分等,這倒不是很難理解,但要依據(jù)實(shí)際問題設(shè)計(jì)算法,常常需要經(jīng)歷并準(zhǔn)確調(diào)用程序設(shè)計(jì)的三種邏輯結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
例如,“設(shè)計(jì)垃圾分類模擬小游戲”項(xiàng)目中,判斷游戲是否繼續(xù)、垃圾(舊電池等)是否碰到地平線、垃圾是否碰到垃圾箱要用到分支結(jié)構(gòu),垃圾下落、垃圾隱藏、積分增加是順序結(jié)構(gòu),垃圾重復(fù)下落是循環(huán)結(jié)構(gòu)。由此,學(xué)生得到圖4所示的程序設(shè)計(jì)流程圖。
(五)評(píng)估編程
評(píng)估編程是編程的最后一個(gè)環(huán)節(jié),主要是對(duì)算法作出評(píng)估并編寫、調(diào)試程序代碼實(shí)現(xiàn)自動(dòng)化。此時(shí),學(xué)生思維由先前的抽象轉(zhuǎn)化為操作數(shù)字代碼,并體驗(yàn)計(jì)算機(jī)的自動(dòng)化執(zhí)行,感受編程的神奇魅力。實(shí)際教學(xué)中,選擇門檻低的積木式編程語言,便于學(xué)生完整經(jīng)歷垃圾分類模擬小游戲的具體編寫、調(diào)試和評(píng)估。
編寫、調(diào)試程序時(shí),學(xué)生難免會(huì)遇到各種問題。比如,游戲每一次重啟后,各角色需回到初始狀態(tài),學(xué)生最初并沒有角色“初始化”的概念,而經(jīng)歷調(diào)試后發(fā)現(xiàn)角色都“跑偏”甚至找不到了,這才建立起角色“初始化”的概念以及掌握如何進(jìn)行代碼設(shè)置。又如,對(duì)舊電池的分類,有學(xué)生反映明明寫了正確的判斷(分支)語句,卻調(diào)試失敗,究其原因是缺少循環(huán)語句下的多次判斷。由此,編寫、調(diào)試成為一個(gè)實(shí)踐求證的學(xué)習(xí)過程,學(xué)生常常需要在試錯(cuò)、迂回中作出修改,繼而生長思維。
而評(píng)估過程,又往往會(huì)發(fā)現(xiàn)項(xiàng)目的迭代升級(jí)空間,進(jìn)而創(chuàng)造出新的項(xiàng)目。比如,有學(xué)生提出,為了增加游戲的緊張感,可以設(shè)置倒計(jì)時(shí);垃圾分類可以設(shè)置不同的游戲場景、角色、玩法(積分型、迷宮型)等。
在日新月異的信息化社會(huì),發(fā)展學(xué)生的計(jì)算思維,讓他們能夠“像計(jì)算機(jī)專家一樣”思考信息化問題,是新課程背景下信息技術(shù)教學(xué)的價(jià)值擔(dān)當(dāng)?!俺绦蛟O(shè)計(jì)”教學(xué)是計(jì)算思維培養(yǎng)的重要途徑,應(yīng)努力讓學(xué)生在真實(shí)的情境中學(xué)會(huì)用計(jì)算機(jī)處理問題的方式分析問題、解決問題,進(jìn)而掌握編程思想,發(fā)展計(jì)算思維。