文 李 璨 屠莉婭(浙江大學教育學院)
教室里,老師正領(lǐng)著學生做“西蒙說(Simon Says)”游戲——
老師與學生面對面站立,每個學生都全神貫注地等待著老師的指令?!拔髅烧f,7!”聽到指令后,學生迅速地坐到了地上?!拔髅烧f,12!”接到下一條指令后,學生又立刻將手放到了頭上。因為根據(jù)教師的規(guī)定,當“西蒙說”后面的數(shù)字為奇數(shù)時,學生要立刻坐在地上;當“西蒙說”后面的數(shù)字為偶數(shù)且該數(shù)字大于10時,學生則要將手放在頭上;如果兩者都不符合,學生則保持原狀不動。如果哪個學生聽到指令后做了錯誤動作,他就要出局。隨著教師的語速越來越快,出局的學生越來越多,堅持到最后的一到兩名學生將贏得這場游戲。
看到這里,你可能在想,這大概是節(jié)教學生判斷奇偶數(shù)的數(shù)學課。但事實上,這卻是芬蘭的一節(jié)教學生體會“IF語句”的計算機編程課。
提到學習編程,多數(shù)人腦中出現(xiàn)的一定是學生一邊聽老師的講解,一邊敲擊鍵盤進行練習的畫面。但學習編程真的要用到電腦嗎?來看看芬蘭的教師是如何做的。
這是一節(jié)學習循環(huán)結(jié)構(gòu)的編程課。
循環(huán)結(jié)構(gòu)是對某一算法的重復執(zhí)行,其大大減少了相同語句重復書寫的工作量,是最能發(fā)揮計算機設(shè)計特長的程序結(jié)構(gòu)之一。很多看似復雜的程序設(shè)計,實則都是由一個個循環(huán)運行的循環(huán)體構(gòu)成的。就如同現(xiàn)實生活中很多看似復雜的大工程,其實也都是由各個小工作任務(wù)按照不同的方式循環(huán)而成的,B-Box音樂就是一個典型的例子。
B-Box是口技的一種形式,人們利用唇、齒、舌等不同的部位模仿出不同樂器的聲音,再按照一定規(guī)律對不同的聲音元素進行重復和疊加以匯編成一段富有節(jié)奏感的音樂。得益于B-Box和循環(huán)結(jié)構(gòu)所體現(xiàn)出的相似的工作原理,教師設(shè)計了這個“人體B-Box”游戲來幫助學生更好地領(lǐng)會循環(huán)思想——
如“人體B-Box”流程圖所示,教師先對學生進行分組,每組學生負責演奏一種聲音,如第一組學生負責拍手,第二組學生負責用嘴發(fā)出“嗶嗶”聲,第三組學生負責用嘴發(fā)出“嘣嘣”聲等。而后為每組學生設(shè)計一個演奏圖式,并給出圖式的循環(huán)次數(shù)和開始下一個動作循環(huán)的指令。
根據(jù)圖中的要求,整個演奏從負責拍手的小組開始,并在拍手小組完成一個循環(huán)體后,負責發(fā)出“嗶嗶”聲的第二小組加入進來;第二小組完成一個循環(huán)體后,負責發(fā)出“嘣嘣”聲的第三小組再加入進來,從而實現(xiàn)不同聲音的疊加和重復,形成了一段完整的B-Box音樂。
在熟悉了游戲規(guī)則后,學生可以自己添加其他的平行循環(huán)或嵌套循環(huán),或是改變各組的演奏圖式和循環(huán)方式,創(chuàng)作出自己喜歡的音樂。
◎“人體B-Box”流程圖
“IF語句”是計算機編程中最常用的判斷語句之一,其要按照給定的判斷要求,根據(jù)判斷結(jié)果的真假來執(zhí)行對應(yīng)的操作步驟?!癐F語句”對學生的邏輯思維能力提出了較高的要求,如何用簡潔明了的判斷條件及其對應(yīng)的操作步驟來代替重復而煩瑣的單個執(zhí)行語句是學生在學習“IF語句”的過程中要重點掌握的內(nèi)容。
在這節(jié)課的教學過程中,芬蘭教師帶領(lǐng)學生做了名為“機器人操場”的游戲——
教師將學生分為兩組,一組學生扮演機器人,另一組學生扮演機器人的操控者,幫助機器人越過各個障礙物。
首先,教師帶領(lǐng)學生來到空曠的操場,并讓學生共同完成對障礙訓練場的布置。他們可以利用如“‘機器人操場’引導符號”圖所示的直觀的引導符號,也可以利用學校里的桌椅板凳等設(shè)施來布置供“機器人”穿越的障礙訓練場。各個障礙物布置好以后,學生分成兩組,一組學生扮演機器人,一組學生扮演機器人的操控者。其中扮演機器人的學生要將眼睛蒙起來,這樣他們就真的像機器人一樣——缺乏操控者的指令就無法行動。
◎“機器人操場”引導符號
與一般的游戲不同,該游戲中教師要求學生用簡短的“IF語句”來代替繁雜而重復的獨立語句。例如,一般情況下操控者可能會對機器人說:“先向前走兩步,而后從板凳上爬過去,再向前走三步,接著從桌子下面鉆過去?!钡谶@個游戲里,教師要求學生用這樣的“IF語句”向機器人發(fā)出指令:“接下來你要面對六個障礙物,在碰到下一個障礙物之前你先保持直走,如果那個障礙物很高,你就從它下面鉆過去,如果比較矮,你就從它上面爬過去?!?/p>
在這兩個教學案例中,學生所看到的、學到的不僅僅是“Do…”或“IF…Else…”等直白的計算機語句和編程技術(shù),他們更理解了如何在解決具體問題的過程中使用循環(huán)思想和條件判斷來對問題進行加工和處理。
第一個案例中,學生最后要共同創(chuàng)作出一段B-Box音樂。一段音樂里有不用的樂器和音節(jié)的排列組合和重復,看似是個十分復雜的工程,但通過最開始教師指導下的“循環(huán)程序”的演示,學生知道再復雜的任務(wù)也是由一個個部分組成。要形成完整的音樂,就要先找到音樂里所包含的各個元素和片段,而后對這些小的部分進行重復和循環(huán)設(shè)計,便能形成最后的完整的樂章。
第二個案例中,學生被要求用盡量簡短的“IF語句”來發(fā)號施令,這使得學生不僅學到了“IF語句”的一般用法,更從走一步、看一步、做一步的短視性思維轉(zhuǎn)換為從整體出發(fā)的全局性思考,無形中鍛煉了學生的邏輯思維能力。
值得一提的是,芬蘭教師并不反對在編程教學中使用計算機。在學生掌握了編程背后的思想之后,芬蘭教師也會讓學生在電腦上進行相關(guān)程序的編寫練習。他們只是強調(diào),不要讓計算機限制了編程學習的范圍。除了常規(guī)的編程技術(shù)的學習,編程過程中所體現(xiàn)出的各種思維方式和解決問題的方法也是教學過程中應(yīng)當關(guān)注的內(nèi)容。
“學編程真的要用到電腦嗎?”到這里,這個問題的答案已經(jīng)顯而易見了:如果將計算機編程看作是門單獨的技能學科,那么計算機編程當然得有電腦才能學習。如果認為學習計算機編程更為重要的是理解其背后的概念,理解計算機與生活的關(guān)系,理解計算機與人的思維方式的區(qū)別,那么就要先在生活中理解和體會計算的本質(zhì),然后再去用像計算機這樣的工具來實現(xiàn)計算目標,這樣才算是達到了學習目標。
與傳統(tǒng)的計算機編程課相比,這種沒有電腦的編程課因不受授課形式的約束而大大增添了學生學習的趣味性。游戲化教學是芬蘭編程課的最常見形式,在游戲的過程中,學生全身心投入。一個個精心設(shè)計的與學習目標相關(guān)的游戲任務(wù),除了讓學生在輕松的氛圍中自然而然地學習和體會到編程背后的本質(zhì)思想之外,還充分調(diào)動了學生的腦力、創(chuàng)造力和動手能力。這種寓教于樂的教學方式,在提高學生的學習參與度的同時,讓學生收獲了愉快的學習體驗,從而讓學生更加積極地投入到學習過程中來。