周運(yùn)福
【摘 要】本文通過(guò)用Scratch制作一個(gè)簡(jiǎn)單的投票器軟件,讓學(xué)生歷經(jīng)確定問(wèn)題、分解問(wèn)題、轉(zhuǎn)化問(wèn)題、算法設(shè)計(jì)及程序編寫、測(cè)試、評(píng)估等過(guò)程,在問(wèn)題的形式化描述、解決方案的表達(dá)及方案的執(zhí)行、評(píng)估方面進(jìn)行了計(jì)算思維的培養(yǎng)探索。
【關(guān)鍵詞】計(jì)算思維;信息技術(shù)教學(xué);Scratch;程序設(shè)計(jì)
在中小學(xué)的班級(jí)活動(dòng)中少不了各種選舉,如課代表選舉、少先隊(duì)干部選舉,有些時(shí)候要從多人中隨機(jī)挑選1人投票選舉,用筆、紙的方式記錄既費(fèi)時(shí)又不方便統(tǒng)計(jì),我們嘗試?yán)肧cratch來(lái)制作一個(gè)投票器軟件,幫助同學(xué)們統(tǒng)計(jì)選票。
教學(xué)目標(biāo)及重難點(diǎn)
1.教學(xué)目標(biāo)
(1)學(xué)生能新建變量,對(duì)變量初始化、賦值和運(yùn)算。
(2)在界定信息問(wèn)題,分解問(wèn)題,設(shè)計(jì)程序解決問(wèn)題中培養(yǎng)計(jì)算思維。
(3)在程序完善、修改中體驗(yàn)軟件開(kāi)發(fā)的迭代工程思想。
2.教學(xué)重點(diǎn)
新建變量,通過(guò)按鍵完成投票、計(jì)票等功能。
3.教學(xué)難點(diǎn)
變量的賦值理解。
情境導(dǎo)入,提出問(wèn)題
一是談話揭示問(wèn)題:前幾天碰到我們班同學(xué)對(duì)大隊(duì)委投票有想法,認(rèn)為不透明、不真實(shí),想要在屏幕上看到兩人的實(shí)時(shí)票數(shù),該怎么辦呢?
二是小組討論:尋找解決問(wèn)題可能性辦法。
三是引導(dǎo)聚焦技術(shù):我們能不能借助信息技術(shù)提高投票、計(jì)票的公開(kāi)性、透明度和效率?用五年級(jí)學(xué)過(guò)的Scratch設(shè)計(jì)程序幫助投票計(jì)票,實(shí)時(shí)顯示?
設(shè)計(jì)意圖:捕捉、發(fā)現(xiàn)學(xué)生生活中存在的問(wèn)題,將問(wèn)題解決與計(jì)算思維培養(yǎng)的必備知識(shí)整合在一起,在項(xiàng)目式或問(wèn)題式學(xué)習(xí)中推進(jìn)解決。
確定問(wèn)題,分解問(wèn)題
通過(guò)討論,我們明確設(shè)計(jì)一個(gè)投票器程序能夠通過(guò)按鍵點(diǎn)擊進(jìn)行投票、自動(dòng)計(jì)票,避免投票“黑幕”。
1.項(xiàng)目分解為幾個(gè)小問(wèn)題
回憶生活中投票選舉我們必須要完成哪些工作。同桌輕聲交流討論。
歸納投票工作流程:投票、計(jì)票、票數(shù)公布。
2.生活問(wèn)題轉(zhuǎn)化為信息問(wèn)題
在活動(dòng)中投票的過(guò)程可能對(duì)應(yīng)計(jì)算機(jī)中哪些操作?同學(xué)們思考一下,在括號(hào)內(nèi)填上自己的想法,如表1所示。
表1? 生活中投票問(wèn)題轉(zhuǎn)化為信息問(wèn)題
場(chǎng)景 投票過(guò)程 計(jì)票過(guò)程 結(jié)果顯示
生活中 填寫選票或同學(xué)們表決等方式 人工統(tǒng)計(jì)計(jì)算 寫在
黑板上
計(jì)算機(jī) (? ? ? ? ? ? ? ? ? ) 用“變量”來(lái)存儲(chǔ)數(shù)據(jù),程序指令進(jìn)行數(shù)據(jù)處理 (? ? ? ? )
設(shè)計(jì)意圖:引導(dǎo)學(xué)生將大問(wèn)題分解為投票、計(jì)票過(guò)程與結(jié)果顯示等幾個(gè)小問(wèn)題,同時(shí),將問(wèn)題轉(zhuǎn)化為可計(jì)算的信息問(wèn)題。
算法設(shè)計(jì),程序編寫
1.程序界面的設(shè)計(jì)
(1)背景的選擇:從背景庫(kù)中選擇一個(gè)舞臺(tái)的背景。
(2)角色的選擇:從角色庫(kù)中選擇“girl1”代表女生張麗,“boy1”代表男生王剛。
2.算法設(shè)計(jì)
編寫程序要實(shí)現(xiàn)的功能是:點(diǎn)擊人物角色或者按鍵盤字母對(duì)候選人投票,投票次數(shù)是無(wú)限的,投票票數(shù)是累加的。
如果用一句話來(lái)表述上面的想法,請(qǐng)你補(bǔ)充完整括號(hào)里面內(nèi)容:
當(dāng)(? ? ? ? ? )的時(shí)候,某同學(xué)票數(shù)增加1票。
上述功能的實(shí)現(xiàn),在Scratch中有多種實(shí)現(xiàn)方法,我們選擇按鍵實(shí)現(xiàn)方法。
在Scratch中,使用“事件”類指令中的“當(dāng)按下空格鍵”模塊和“數(shù)據(jù)”類指令中的“變量”來(lái)完成投票、計(jì)票功能(圖1)。
圖1? 簡(jiǎn)單投票器模型構(gòu)建、算法設(shè)計(jì)
設(shè)計(jì)意圖:在算法設(shè)計(jì)中,用一句話填空的方式幫助學(xué)生理解、確定算法,用表格列項(xiàng)的方式將算法與實(shí)現(xiàn)的程序模塊一一對(duì)應(yīng),培養(yǎng)學(xué)生面對(duì)生活問(wèn)題時(shí)的抽象、自動(dòng)化解決問(wèn)題的意識(shí)及能力。
3.程序腳本的設(shè)計(jì)
我們建立ZL和WG兩個(gè)變量分別代表張麗和王剛的票數(shù)。
(1)新建變量。
①選中女生角色。
②單擊“腳本”選項(xiàng)卡中的“數(shù)據(jù)”類別,再單擊“新建變量”按鈕。自定義一個(gè)“ZL”變量。這是一個(gè)全局變量,所以,腳本放在任一角色都可以用。
注意:“變量名”要使用“有意義”的英文單詞或中文、字母表示。
(2)按鍵響應(yīng)。
①在角色區(qū),單擊選擇需要搭建腳本的角色。例如先選擇“女孩”角色。
②單擊“腳本”選項(xiàng)卡中的“事件”類別,將“當(dāng)按下空格鍵”指令拖入腳本區(qū)。并將默認(rèn)的“空格鍵”修改為“Z”鍵。
思考:這里為什么建議使用“Z”鍵?
(3)變量計(jì)數(shù)(變量的賦值)。
單擊“腳本”選項(xiàng)卡中的“數(shù)據(jù)”類別,把“將變量ZL的值增加1”指令拖入腳本區(qū)。
與“按鍵響應(yīng)事件指令”進(jìn)行拼接。
完成“張麗”角色的投票、計(jì)票的腳本。隨著按鍵不斷按下,變量“ZL”也在不斷發(fā)生變化。
4.嘗試完成“王剛”角色變量制作
學(xué)生上臺(tái)演示,教師小結(jié)。
(1)新建變量。新建“WG”變量存儲(chǔ)王剛票數(shù)。
(2)按鍵響應(yīng)。指定“W”鍵作為相應(yīng)的響應(yīng)按鍵。
(3)變量計(jì)數(shù)。將腳本“將ZL增加1”拖入腳本區(qū),放在按鍵響應(yīng)語(yǔ)句下。點(diǎn)擊“ZL”下拉菜單中選擇“WG”。
現(xiàn)在,我們的投票器軟件已經(jīng)初具雛型了,請(qǐng)幾個(gè)同學(xué)上來(lái)試一試吧。試投票之前老師先把程序文檔保存為“投票器1.0”。
5.小試牛刀,自主編程
(1)自主學(xué)習(xí),完成程序編制。不清楚的地方可以觀看微課學(xué)習(xí)。
(2)教師巡視指導(dǎo)。
程序測(cè)試,優(yōu)化迭代
1.優(yōu)化程序
展示學(xué)生作品,對(duì)照評(píng)價(jià)表進(jìn)行互評(píng)、點(diǎn)評(píng),引導(dǎo)學(xué)生思考:投票器只能使用一次,要重復(fù)使用該怎么辦?
兩人的投票要清零。選擇數(shù)據(jù)模塊中的“將ZL設(shè)定為0”和“將WG設(shè)定為0”語(yǔ)句。我們把優(yōu)化后的投票器程序文檔保存為“投票器1.1”版本。
2.拓展提升
在使用“投票器”時(shí),有的同學(xué)希望能夠及時(shí)地反映出投票總數(shù),該如何進(jìn)行改進(jìn)?
總結(jié)與分享
通過(guò)學(xué)習(xí),我們把一個(gè)生活中的問(wèn)題轉(zhuǎn)化為一個(gè)信息問(wèn)題,并且利用Scratch編程實(shí)現(xiàn),解決了班級(jí)活動(dòng)投票中的基本問(wèn)題。如果要實(shí)現(xiàn)自動(dòng)統(tǒng)計(jì)票數(shù),并顯示得票多的人,我們又該如何對(duì)程序進(jìn)行升級(jí)呢?大家課后思考。
設(shè)計(jì)意圖:程序教學(xué)中要弱化“操作性”和“知識(shí)性”的內(nèi)容,注重迭代思想的滲透,要將類似迭代的這種學(xué)科核心思想和方法的培養(yǎng)貫穿問(wèn)題解決的始終。
板書:制作一個(gè)簡(jiǎn)單投票器(圖2),附參考程序(圖3)。
案例反思
1.計(jì)算思維教什么
(1)計(jì)算思維解決問(wèn)題的思維方法。
要滲透基于計(jì)算機(jī)解決問(wèn)題的學(xué)科思維方法的學(xué)習(xí),重視個(gè)體在運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法形成問(wèn)題解決方案的過(guò)程中產(chǎn)生的一系列思維活動(dòng)。面對(duì)真實(shí)情境,要掌握計(jì)算思維解決問(wèn)題的步驟方法,這種方法不是僅僅關(guān)注局部算法、程序設(shè)計(jì),而是面向問(wèn)題的計(jì)算思維解決問(wèn)題的整個(gè)思維流程。
在本案例中,讓學(xué)生經(jīng)歷確定制作簡(jiǎn)單投票器問(wèn)題,把問(wèn)題分解為投票、計(jì)票、公布票數(shù)幾個(gè)小問(wèn)題,同時(shí)將問(wèn)題轉(zhuǎn)化為計(jì)算機(jī)能夠執(zhí)行的計(jì)算問(wèn)題、用“當(dāng)按鍵按下時(shí),票數(shù)增加”的填空方法幫助學(xué)生進(jìn)行算法設(shè)計(jì)。最后在老師講解變量的知識(shí)后完成程序的編寫、測(cè)試、評(píng)估等過(guò)程。在把生活問(wèn)題轉(zhuǎn)化為信息問(wèn)題并用編程解決的過(guò)程中培養(yǎng)了學(xué)生的計(jì)算思維,滲透了計(jì)算思維解決問(wèn)題的思維方法。
(2)計(jì)算思維的核心要素。
計(jì)算思維的核心要素有分解、抽象、算法等概念,在教學(xué)中幫助學(xué)生學(xué)會(huì)分解問(wèn)題、體驗(yàn)抽象、掌握基本算法結(jié)構(gòu)。借助思維導(dǎo)圖,將問(wèn)題最終分解為投票、計(jì)票、顯示票數(shù),逐個(gè)解決。在問(wèn)題抽象方面,告訴學(xué)生抓住問(wèn)題主要特征,通過(guò)提取關(guān)鍵信息的方法,培養(yǎng)抽象能力。比如,本案例中投票事件,關(guān)鍵流程就是投票、計(jì)票、展示票數(shù),其他用什么方式投票,如何計(jì)票等可以不管。在算法設(shè)計(jì)方面,通過(guò)一句話“當(dāng) (? ?)的時(shí)候,某同學(xué)票數(shù)增加1”幫助學(xué)生分析算法、理解程序結(jié)構(gòu)。
在編程算法實(shí)現(xiàn)方面,選擇按鍵實(shí)現(xiàn)方式,同時(shí)也可讓學(xué)生嘗試點(diǎn)擊角色實(shí)現(xiàn)方式,讓學(xué)生體會(huì)不同模塊可以實(shí)現(xiàn)相同的算法。但是,重視這些元素不意味著計(jì)算思維的培養(yǎng)就只是對(duì)這些元素的理解掌握,而是一定要有計(jì)算思維解決問(wèn)題的流程意識(shí),各元素的掌握學(xué)習(xí)是為了更好地落實(shí)用計(jì)算思維去解決問(wèn)題的能力。單獨(dú)掌握這些核心元素而不談如何解決具體情境問(wèn)題,就偏離了計(jì)算思維的培養(yǎng)。
2.計(jì)算思維怎么教
(1)要盡量運(yùn)用真實(shí)的問(wèn)題情境。
教師要善于捕捉、發(fā)現(xiàn)學(xué)生生活中存在的問(wèn)題,在問(wèn)題解決中讓學(xué)生獲得成就感,真正感受到技術(shù)改變學(xué)習(xí)、服務(wù)生活。例如案例中的投票程序,學(xué)生就在班會(huì)中進(jìn)行了投票嘗試,獲得了班主任的贊賞。激發(fā)了學(xué)生興趣,更加積極尋找可計(jì)算的現(xiàn)實(shí)問(wèn)題,通過(guò)編程完成。要注意把真實(shí)情境中的大問(wèn)題引導(dǎo)分解成每節(jié)課能完成的小問(wèn)題,逐個(gè)解決。本節(jié)課是設(shè)計(jì)可投票的程序,下節(jié)課是在此基礎(chǔ)上設(shè)計(jì)自動(dòng)顯示得票獲勝的人,再后面是自動(dòng)點(diǎn)名上臺(tái)投票的程序,在一次次優(yōu)化迭代中完成問(wèn)題解決。
(2)在“雙主線”教學(xué)中培養(yǎng)學(xué)生計(jì)算思維能力。
信息技術(shù)學(xué)科有自己的內(nèi)在邏輯知識(shí)體系,要完成基礎(chǔ)知識(shí)和基本技能的學(xué)習(xí),這是一條“顯性主線”。計(jì)算思維的培養(yǎng)需要借助信息技術(shù)學(xué)科知識(shí)的載體來(lái)實(shí)施。我們更要關(guān)注應(yīng)用學(xué)科知識(shí)解決問(wèn)題時(shí)的計(jì)算思維能力的培養(yǎng),即分解、抽象、程序設(shè)計(jì),這是教學(xué)中計(jì)算思維培養(yǎng)的“隱性主線”。
我們不能習(xí)慣于“操作”和“技能性”內(nèi)容教學(xué),更不能只對(duì)計(jì)算思維要素概念進(jìn)行教學(xué),強(qiáng)調(diào)概念知識(shí)的理解和記憶,而是要在教授解決問(wèn)題所需的學(xué)科知識(shí)時(shí),滲透、培養(yǎng)基于計(jì)算思維解決問(wèn)題的思維方法,讓孩子們形成一種思維習(xí)慣,當(dāng)自己再遇到一個(gè)真實(shí)問(wèn)題時(shí),能夠運(yùn)用已有資源和素養(yǎng)獨(dú)立解決。所以,雙主線教學(xué)中應(yīng)該是“隱性”主線為主導(dǎo),圍繞其組織教學(xué)內(nèi)容進(jìn)行“顯現(xiàn)”的學(xué)習(xí),最終在知識(shí)技能的習(xí)得中提升計(jì)算思維能力。
(3)計(jì)算思維教學(xué)小學(xué)階段重點(diǎn)關(guān)注問(wèn)題的確定和分解。
計(jì)算思維教育關(guān)注的是利用信息技術(shù)解決問(wèn)題的能力。這種能力既表現(xiàn)為“結(jié)構(gòu)分解、實(shí)體抽象、模型建設(shè)、自動(dòng)化實(shí)施”等信息技術(shù)應(yīng)用特征,也包括“明確問(wèn)題、設(shè)計(jì)方案、實(shí)施反饋、修訂完善”等一般性解決問(wèn)題方法。而發(fā)現(xiàn)問(wèn)題、確定問(wèn)題是現(xiàn)階段學(xué)生們較弱的方面,我們習(xí)慣將現(xiàn)有問(wèn)題拋給學(xué)生,讓學(xué)生在指定的問(wèn)題中進(jìn)行練習(xí),而學(xué)生一旦面臨真實(shí)世界時(shí),發(fā)現(xiàn)不了問(wèn)題,或者找不到問(wèn)題的主要矛盾,也就談不上解決問(wèn)題了。
在計(jì)算思維的培養(yǎng)中,引導(dǎo)學(xué)生發(fā)現(xiàn)問(wèn)題,確定信息問(wèn)題,學(xué)會(huì)分解問(wèn)題是需要我們重點(diǎn)關(guān)注的。如生活中的投票行為有很多環(huán)節(jié),投票、計(jì)票、檢票等,哪些行為是投票工作所必須的?哪些是可要可不要的?把這些必要行為沉淀下來(lái),思考能否被“計(jì)算”?如果可以,那么再進(jìn)行問(wèn)題分解、模型構(gòu)建等系列流程。
注:本文系國(guó)家出版融合重點(diǎn)實(shí)驗(yàn)室、人民教育出版社人教數(shù)字教育研究院規(guī)劃課題“計(jì)算思維在小學(xué)創(chuàng)客類課程-Scratch教學(xué)中培養(yǎng)的實(shí)驗(yàn)研究”(課題批準(zhǔn)號(hào)RJB0520001)成果