摘 ? 要:在實(shí)踐計算機(jī)課程教學(xué)中,Scratch的教學(xué)內(nèi)容由于簡單易學(xué),非常適用于初中學(xué)生的計算機(jī)程序思維培養(yǎng),尤其應(yīng)有計劃、有目的地還原程序設(shè)計語言的“難點(diǎn)”——變量。文章圍繞變量教學(xué),結(jié)合實(shí)際教學(xué)經(jīng)驗(yàn),對該課程內(nèi)容的設(shè)計過程進(jìn)行分析探究。
關(guān)鍵詞:計算思維;Scratch教學(xué);變量
作者簡介:謝劍峰,廣東省佛山市順德區(qū)勒流富安初級中學(xué)第二黨支部委員,工會副主席,研究方向?yàn)槌踔行畔⒓夹g(shù)教育、計算機(jī)編程教育。(廣東 ?佛山 ?528324)
中圖分類號:G633.67 ? ? ?文獻(xiàn)標(biāo)識碼:A ? ? ?文章編號:1671-0568(2019)02-0097-02
計算思維是近年來備受關(guān)注的話題,在一些歐美國家被譽(yù)為現(xiàn)代社會人才所必須具備的能力之一,從而引發(fā)眾多學(xué)者對青少年計算思維教育的思考與研究。由美國麻省理工學(xué)院媒體實(shí)驗(yàn)室開發(fā)的Scratch圖形化程序設(shè)計語言因其最適合作為培養(yǎng)計算思維的載體,被納入到初中課程內(nèi)容中。
Scratch的特點(diǎn)是簡單易學(xué),學(xué)生可以使用它創(chuàng)作屬于自己的動畫、游戲、模擬科學(xué)實(shí)驗(yàn)等,并且能夠輕易地將其分享至互聯(lián)網(wǎng)。在這個過程中,學(xué)生能夠激發(fā)創(chuàng)意,培養(yǎng)計算思維習(xí)慣,并且學(xué)會團(tuán)隊合作。Scratch適合8~16歲年齡段的青少年教學(xué)使用,本文主要針對13歲以上初中學(xué)段的Scratch變量教學(xué)進(jìn)行探討。
一、程序設(shè)計語言中的變量
一般來說,用計算機(jī)解決一個問題大致需要下列幾個步驟:首先要從具體問題抽象出一個適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計一個解此數(shù)學(xué)模型的算法,最后編出程序,進(jìn)行測試、調(diào)整,直至得到最終解答。簡單講,就是把現(xiàn)實(shí)問題轉(zhuǎn)化為數(shù)學(xué)問題進(jìn)行解答,這個過程中我們需要處理數(shù)據(jù),從而牽扯出一個重要的概念——變量。
相對于Scratch或類似Scratch的圖形化程序設(shè)計語言,傳統(tǒng)程序設(shè)計語言的學(xué)習(xí)基本上無法繞開變量,繁雜的數(shù)據(jù)類型往往讓初學(xué)者無從適應(yīng)。Scratch很好地規(guī)避了變量這一難點(diǎn),在學(xué)習(xí)的初期,學(xué)生幾乎不需要接觸變量的概念,因?yàn)镾cratch已經(jīng)幫我們預(yù)裝好了很多的積木,我們不需要考慮太多底層的思維就能完成作品。但是如果要培養(yǎng)學(xué)生真正具備“像計算機(jī)科學(xué)家一樣思考問題”的習(xí)慣,教師就需要有意識地設(shè)計教學(xué)模式,讓學(xué)生掌握變量的概念。
二、Scratch的變量
變量是被命名的計算機(jī)內(nèi)存區(qū)域,在Scratch中可以通過“數(shù)據(jù)”腳本區(qū)的“新建變量”積木來創(chuàng)建變量。Scratch支持的數(shù)據(jù)類型包括布爾型、數(shù)字型和字符串型,但是在變量的創(chuàng)建過程中并不需要指定數(shù)據(jù)類型。那么Scratch是如何判斷變量的數(shù)據(jù)類型的呢?答案很簡單,Scratch也不知道,因?yàn)镾cratch會根據(jù)上下文自動轉(zhuǎn)換數(shù)據(jù)類型,這無疑大大降低了變量的學(xué)習(xí)難度。
例如,Scratch變量類型識別過程是通過“新建變量”積木創(chuàng)建了全局變量“ex”,并將其設(shè)定為“適用于所有角色”,通過“將……設(shè)定為……”積木進(jìn)行數(shù)據(jù)類型的區(qū)別。當(dāng)我們將ex設(shè)定為10時,數(shù)據(jù)類型為數(shù)字型;將ex設(shè)定為Scratch時,數(shù)據(jù)類型為字符串型;將ex設(shè)定為“10>5”(使用“運(yùn)算符”腳本區(qū)的“>”積木)時,數(shù)據(jù)類型為布爾型,值為“true”。
三、關(guān)于Scratch的變量教學(xué)探究
在開展Scratch教學(xué)的過程中,筆者發(fā)現(xiàn)其中關(guān)于變量的概念是被淡化的,這對于單純地開展Scratch教學(xué)來說無疑是好事,因?yàn)檫@讓學(xué)生學(xué)得更容易。但是對于培養(yǎng)學(xué)生的計算思維卻是不利的,編程從來不該是一件容易的事情。筆者對Scratch變量的教學(xué)始終貫穿于整個課程的學(xué)習(xí),現(xiàn)對一些教學(xué)過程設(shè)計進(jìn)行梳理。
1. 基礎(chǔ)教學(xué)——計分。計分屬于一般游戲的常見項目,所以在初期的學(xué)習(xí)中學(xué)生就有機(jī)會接觸到。在這一階段的學(xué)習(xí)中,一般不會太過強(qiáng)調(diào)變量的概念與重要地位,在教學(xué)上只是以一般的積木功能來對待它:在制作好一個小游戲后,要求學(xué)生在其中添加計分項目,以便直觀地感受計分項目所帶來的游戲感的提升。很明顯,一個小小的計分顯示讓游戲的競爭感大大地加強(qiáng)了。如圖1所示,即在“貓咪收集禮物”游戲中增加計分項目,完成變量的創(chuàng)建、命名、初始化及變量值的變化教學(xué)。
2. 理解教學(xué)——布爾型變量。當(dāng)Scratch教學(xué)進(jìn)入中期,學(xué)生已能較為熟練地掌握、使用Scratch,這是學(xué)生從理論進(jìn)入實(shí)踐去掌握變量的好時機(jī),可以開始學(xué)習(xí)如何進(jìn)行程序設(shè)計,如將大程序模塊化,使其擁有清晰的邏輯結(jié)構(gòu)。在學(xué)習(xí)程序設(shè)計(算法)的過程中,數(shù)據(jù)處理出現(xiàn)的頻率明顯增多,但是由于Scratch自帶非常完善的功能積木,學(xué)生可能無法明顯體會到教師反復(fù)強(qiáng)調(diào)的變量的作用與重要性,教師應(yīng)該有意識地提及程序中出現(xiàn)的布爾型變量及其作用。例如,圖1中的“如果‘碰到Sprite1,那么……”積木組合,其中“碰到Sprite1”積木就返回布爾型變量“true”或者“false”,類似的功能積木還有很多,且都以六邊形外框出現(xiàn)。同時,布爾型變量相對應(yīng)的是分支結(jié)構(gòu),因此,明確布爾型變量的使用,可以加深學(xué)生對分支結(jié)構(gòu)的理解。
3. 強(qiáng)化教學(xué)——學(xué)習(xí)變量的原始用法。Scratch已經(jīng)將很多相對復(fù)雜且使用頻率較高的程序指令集合制作成相應(yīng)的功能積木塊,且其作為一款開源軟件,開發(fā)團(tuán)隊支持和鼓勵使用者對Scratch進(jìn)行修改和完善,這意味著Scratch的學(xué)習(xí)將會變得越來越簡單。但是在Scratch教學(xué)的后期,建議鼓勵學(xué)生以“多走彎路”的方式去完成作品,因?yàn)楹芏鄶?shù)據(jù)的獲取不是直接調(diào)用現(xiàn)有的功能積木,而是自行通過變量進(jìn)行加工、計算或傳輸。例如,在“坦克對戰(zhàn)”游戲制作教學(xué)中,如果要設(shè)置子彈方向與坦克方向一致,以Scratch的方法制作,只需要在子彈角色使用“偵測”模塊中的“‘方向of‘坦克”就可完成對子彈方向的控制了(如圖2)。但是如果我們假設(shè)沒有這個功能積木,那要怎么完成這個功能呢?我們可以通過在坦克角色設(shè)置全局變量direction,并在控制坦克方向的積木組合中對變量direction進(jìn)行值的設(shè)置即可(如圖3)。
如果僅考慮Scratch教學(xué),是可以不需要進(jìn)行這部分教學(xué)設(shè)計的,但是作為新時代的初中生,應(yīng)該有能力、有必要進(jìn)行更復(fù)雜的程序設(shè)計學(xué)習(xí),這也是對學(xué)生計算思維的一種培養(yǎng)。
四、結(jié)束語
計算思維是每個學(xué)生都應(yīng)該具備的基本技能,它不僅僅只屬于計算機(jī)科學(xué)家。我們應(yīng)當(dāng)培養(yǎng)每個孩子的解析能力,讓他們不僅掌握閱讀、寫作和算術(shù),還能擁有計算思維。計算機(jī)科學(xué)是計算的學(xué)問——什么是可計算的?怎樣去計算?數(shù)據(jù)是計算的基礎(chǔ),而變量則是數(shù)據(jù)的載體,變量之于程序設(shè)計的地位不言而喻。所以,通過一段時間的Scratch教學(xué)實(shí)踐與研究,筆者認(rèn)為,在初中階段的Scratch教學(xué)中額外補(bǔ)充“變量”這一概念是非常必要的。當(dāng)然,對于Scratch的教學(xué),筆者仍處于摸索階段,由衷希望能與各位同行互相學(xué)習(xí)交流、共同進(jìn)步。
參考文獻(xiàn):
[1] 陳國良,董榮勝.計算思維的表述體系[J].中國大學(xué)教育,2013,(12):22-26.
[2] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2000.1-1.
[3] (美)Majed Marji.動手玩轉(zhuǎn)Scratch2.0編程[M].于欣龍,李澤,譯,北京:電子工業(yè)出版社,2016.
[4] 趙蘭蘭.運(yùn)用Scratch軟件培養(yǎng)中學(xué)生計算思維的研究[D].上海:上海師范大學(xué),2013.
責(zé)任編輯 ? 袁靜琴