編程課不用電腦?因?yàn)榉姨m教師將編程當(dāng)做一種思想來教

2018-4-18 22:01 轉(zhuǎn)載 · 圖片6

教室里,老師正領(lǐng)著學(xué)生們做“西蒙說”游戲——

老師與學(xué)生們面對(duì)面站立,每個(gè)學(xué)生都全神貫注地等待著老師的指令?!拔髅烧f,7 !”聽到指令后,學(xué)生們迅速地坐到了地上。“西蒙說,12 !”接到下一條指令后,學(xué)生們又立刻將手放到了頭上。

因?yàn)楦鶕?jù)教師的規(guī)定,當(dāng)“西蒙說”后面的數(shù)字為奇數(shù)時(shí),學(xué)生要立刻坐在地上;當(dāng)“西蒙說”后面的數(shù)字為偶數(shù)且該數(shù)字大于10 時(shí),學(xué)生則要將手放在頭上;如果兩者都不符合,學(xué)生則保持原狀不動(dòng)。如果哪個(gè)學(xué)生聽到指令后做了錯(cuò)誤動(dòng)作,他就要出局。

隨著教師的語速越來越快,出局的學(xué)生越來越多,堅(jiān)持到最后的一到兩名學(xué)生將贏得這場游戲。

看到這里,你可能在想,這大概是一節(jié)教學(xué)生判斷奇偶數(shù)的數(shù)學(xué)課。但事實(shí)上,這卻是芬蘭的一節(jié)教學(xué)生體會(huì)“IF 語句”的計(jì)算機(jī)編程課。

這只是芬蘭編程課的一個(gè)片段,讓我們來看看芬蘭思維下的編程課是如何進(jìn)行的!

1

從技術(shù)到思想

芬蘭思維下的電腦編程課程

電腦編程在信息化的今天已經(jīng)成為學(xué)校課程中不可或缺的部分,而將技術(shù)教育作為國家目標(biāo)之一的芬蘭,更是高度重視對(duì)學(xué)生的編程教育。

大部分人常識(shí)中的編程課依舊是一門傳統(tǒng)的計(jì)算機(jī)技術(shù)課程,學(xué)生要通過編程課程了解程序設(shè)計(jì)的基本概念,掌握程序設(shè)計(jì)中的基本技巧和常用算法,建立起程序設(shè)計(jì)的基本思路,以最終通過計(jì)算機(jī)程序設(shè)計(jì)語言來控制計(jì)算機(jī)完成某種特定的任務(wù)。但對(duì)走在教育改革和創(chuàng)新前沿的芬蘭來說,編程課程要達(dá)到的教學(xué)效果遠(yuǎn)不止這些。

關(guān)注學(xué)生的可持續(xù)性發(fā)展和重視學(xué)校學(xué)習(xí)聯(lián)系生活實(shí)際是芬蘭教學(xué)最顯著的兩個(gè)特點(diǎn)。芬蘭相信,學(xué)習(xí)的目的除了掌握知識(shí)本身,更要讓學(xué)生能夠主動(dòng)地思考和靈活地運(yùn)用知識(shí)以解決更多實(shí)際的問題和更好地應(yīng)對(duì)未來多變的生活。

受這樣的教育理念的影響,芬蘭認(rèn)為編程課程要做的絕不僅僅是對(duì)學(xué)生的技術(shù)訓(xùn)練,學(xué)校更應(yīng)該關(guān)注如何讓學(xué)生理解和掌握編程背后的思想。

因?yàn)槿绻麑⒕幊虒W(xué)習(xí)僅當(dāng)做一門技術(shù)來學(xué)習(xí),那學(xué)生最終獲得的就將是使用計(jì)算機(jī)的能力;但如果將編程學(xué)習(xí)看做是計(jì)算機(jī)編程思想的學(xué)習(xí),那學(xué)生所獲得的就將是計(jì)算機(jī)編程的本質(zhì)原理和可遷移的思維方式,而這種思維方式也將能夠被用來開展更多的研究和解決生活中更為復(fù)雜的問題。

例如,計(jì)算機(jī)編程的過程實(shí)際是通過抽象和分解來完成復(fù)雜任務(wù)的過程,傳統(tǒng)的以技術(shù)學(xué)習(xí)為目標(biāo)的編程課更關(guān)注的可能是具體的語句編寫、程序調(diào)試和最終的運(yùn)行結(jié)果。

但如果將編程看做是一種思想來學(xué)習(xí),那除了基本的程序設(shè)計(jì),教學(xué)還應(yīng)該關(guān)注編程過程中給學(xué)生帶來的思維方式的啟示。

如何將復(fù)雜而龐大的問題系統(tǒng)分解為一個(gè)個(gè)具體的問題單元,如何用合適的方式來闡釋和歸納同類型的問題,如何選擇恰當(dāng)?shù)姆椒▽?duì)問題進(jìn)行轉(zhuǎn)換以使其更易處理等,都是編程課應(yīng)當(dāng)關(guān)注的內(nèi)容。

如此一來,學(xué)生除了學(xué)習(xí)到了具體的編程技術(shù),更培養(yǎng)了化整為零的思維習(xí)慣。這種習(xí)慣一旦養(yǎng)成,受益的將不僅僅是編程學(xué)習(xí),其能夠?yàn)閷W(xué)生生活的各個(gè)方面帶來積極的影響。

因此,芬蘭希望學(xué)校的編程教育要能夠做到:教授相關(guān)編程知識(shí)的同時(shí),有意識(shí)地對(duì)編程思想進(jìn)行解釋,構(gòu)建其與學(xué)生生活之間的各種聯(lián)系,讓學(xué)生體驗(yàn)到科技與生活是息息相關(guān)的,實(shí)現(xiàn)用編程和代碼來激發(fā)學(xué)生各方面的學(xué)習(xí)興趣。

2

創(chuàng)想無極限

沒有電腦的編程課

一提到學(xué)習(xí)編程,多數(shù)人腦中出現(xiàn)的畫面一定是學(xué)生一邊聽老師的講解,一邊敲擊鍵盤進(jìn)行練習(xí)的畫面。但學(xué)習(xí)編程真的要用到電腦嗎?我們不妨先看看芬蘭的教師們是如何做的。

案例一:人體B-Box

這是一節(jié)學(xué)習(xí)循環(huán)結(jié)構(gòu)的編程課。循環(huán)結(jié)構(gòu)是對(duì)某一算法的重復(fù)執(zhí)行,其大大減少了相同語句重復(fù)書寫的工作量,是最能發(fā)揮計(jì)算機(jī)設(shè)計(jì)特長的程序結(jié)構(gòu)之一。很多看似復(fù)雜的程序設(shè)計(jì),實(shí)則都是由一個(gè)個(gè)循環(huán)運(yùn)行的循環(huán)體構(gòu)成的。

就如同現(xiàn)實(shí)生活中很多看似復(fù)雜的大工程,其實(shí)也都是由各個(gè)小工作任務(wù)按照不同的方式循環(huán)而成的,B-Box 音樂就是一個(gè)典型的例子。

B-Box 是口技的一種形式,人們利用唇、齒、舌等不同的部位模仿出不同樂器的聲音,再按照一定規(guī)律對(duì)不同的聲音元素進(jìn)行重復(fù)和疊加以匯編成一段富有節(jié)奏感的音樂。得益于B-Box 和循環(huán)結(jié)構(gòu)所體現(xiàn)出的相似的工作原理,教師設(shè)計(jì)了這樣一個(gè)人體B-Box游戲來幫助學(xué)生更好地領(lǐng)會(huì)循環(huán)思想——

如下圖所示,教師先對(duì)學(xué)生進(jìn)行分組,每組學(xué)生負(fù)責(zé)演奏一種聲音,如第一組學(xué)生負(fù)責(zé)拍手,第二組學(xué)生負(fù)責(zé)用嘴發(fā)出“嗶嗶”聲,第三組同學(xué)負(fù)責(zé)用嘴發(fā)出“嘣嘣”聲等。而后為每組學(xué)生設(shè)計(jì)一個(gè)演奏圖式,并給出圖式的循環(huán)次數(shù)和開始下一個(gè)動(dòng)作循環(huán)的指令。

根據(jù)上圖的要求,整個(gè)演奏從負(fù)責(zé)拍手的小組開始,并在拍手小組完成一個(gè)循環(huán)體后,負(fù)責(zé)發(fā)出“嗶嗶”聲的第二小組加入進(jìn)來;第二小組完成一個(gè)循環(huán)體后,負(fù)責(zé)發(fā)出“嘣嘣”聲的第三小組再加入進(jìn)來,從而實(shí)現(xiàn)不同聲音的疊加和重復(fù),形成了一段完整的B-Box 音樂。

在熟悉了游戲規(guī)則后,學(xué)生可以自己添加其他的平行循環(huán)或嵌套循環(huán),或是改變各組的演奏圖式和循環(huán)方式,創(chuàng)作出自己喜歡的音樂。

案例二:機(jī)器人操場

“IF 語句”是計(jì)算機(jī)編程中最常用的判斷語句之一,其要按照給定的判斷要求,根據(jù)判斷結(jié)果的真假來執(zhí)行對(duì)應(yīng)的操作步驟。

“IF 語句”對(duì)學(xué)生的邏輯思維能力提出了較高的要求,如何用簡潔明了的判斷條件及其對(duì)應(yīng)的操作步驟來代替重復(fù)而煩瑣的單個(gè)執(zhí)行語句是學(xué)生在學(xué)習(xí)“IF 語句”的過程中要重點(diǎn)掌握的內(nèi)容。

在這節(jié)課的教學(xué)過程中,芬蘭教師帶領(lǐng)學(xué)生做了個(gè)名為“機(jī)器人操場”的游戲——

教師將學(xué)生分為兩組,一組學(xué)生扮演機(jī)器人,另一組學(xué)生扮演機(jī)器人的操控者,幫助機(jī)器人越過各個(gè)障礙物。

首先,教師帶領(lǐng)學(xué)生來到空曠的操場,并讓學(xué)生共同完成對(duì)障礙訓(xùn)練場的布置。他們可以利用如下圖所示的直觀的引導(dǎo)符號(hào),也可以利用學(xué)校里的桌椅板凳等設(shè)施來布置供“機(jī)器人”穿越的障礙訓(xùn)練場。

各個(gè)障礙物布置好以后,學(xué)生分成兩組,一組學(xué)生扮演機(jī)器人,一組學(xué)生扮演機(jī)器人的操控者。其中扮演機(jī)器人的學(xué)生要將眼睛蒙起來,這樣他們就真的像機(jī)器人一樣——缺乏操控者的指令就無法行動(dòng)。

“機(jī)器人操場”引導(dǎo)符號(hào)

與一般的游戲不同,該游戲中教師要求學(xué)生用簡短的“IF 語句”來代替繁雜而重復(fù)的獨(dú)立語句。

例如,一般情況下操控者可能會(huì)對(duì)機(jī)器人說:“先前走兩步,而后從板凳上爬過去,再前走三步,接著從桌子下面鉆過去?!钡谶@個(gè)游戲里,教師要求學(xué)生用這樣的“IF 語句”向機(jī)器人發(fā)出指令:“接下來你要面對(duì)六個(gè)障礙物,在碰到下一個(gè)障礙物之前你先保持直走,如果那個(gè)障礙物很高,你就從它下面鉆過去;如果比較矮,你就從它上面爬過去。”

在這兩個(gè)教學(xué)案例中,學(xué)生所看到的、學(xué)到的不僅僅是“Do…”或“IF…Else…”等直白的計(jì)算機(jī)語句和編程技術(shù),他們更理解了如何在解決具體問題的過程中使用循環(huán)思想和條件判斷來對(duì)問題進(jìn)行加工和處理。

第一個(gè)案例中,學(xué)生最后要共同創(chuàng)作出一段B-Box 音樂。一段音樂里有不用的樂器和音節(jié)的排列組合和重復(fù),看似是個(gè)十分復(fù)雜的工程。但通過最開始教師指導(dǎo)下的“循環(huán)程序”的演示,學(xué)生知道再復(fù)雜的任務(wù)也是由一個(gè)個(gè)部分組成。

要形成完整的音樂,就要先找到音樂里所包含的各個(gè)元素和片段,而后對(duì)這些小的部分進(jìn)行重復(fù)和循環(huán)設(shè)計(jì),便能形成最后的完整的樂章。

第二個(gè)案例中,學(xué)生被要求用盡量簡短的“IF 語句”來發(fā)號(hào)施令,這使得學(xué)生不僅僅學(xué)到了“IF 語句”的一般用法,更從走一步、看一步、做一步的短視性思維轉(zhuǎn)換為從整體出發(fā)的全局性思考,無形中鍛煉了學(xué)生的邏輯思維能力。

值得一提的是,芬蘭教師并不反對(duì)在編程教學(xué)中使用計(jì)算機(jī)。在學(xué)生掌握了編程背后的思想之后,芬蘭教師也會(huì)讓學(xué)生在電腦上進(jìn)行相關(guān)程序的編寫練習(xí)。他們只是強(qiáng)調(diào),不要讓計(jì)算機(jī)限制了編程學(xué)習(xí)的范圍。除了常規(guī)的編程技術(shù)的學(xué)習(xí),編程過程中所體現(xiàn)出的各種思維方式和解決問題的方法也是教學(xué)過程中應(yīng)當(dāng)關(guān)注的內(nèi)容。

“學(xué)編程真的要用到電腦嗎?”到這里,這個(gè)問題的答案已經(jīng)顯而易見了:如果將計(jì)算機(jī)編程看做是門單獨(dú)的技能學(xué)科,那么計(jì)算機(jī)編程當(dāng)然得有電腦才能學(xué)習(xí)。

如果認(rèn)為學(xué)習(xí)計(jì)算機(jī)編程更為重要的是理解其背后的概念,理解計(jì)算機(jī)與生活的關(guān)系,理解計(jì)算機(jī)與人的思維方式的區(qū)別,那么就要先在生活中理解和體會(huì)計(jì)算的本質(zhì),然后再去用像計(jì)算機(jī)這樣的工具來實(shí)現(xiàn)計(jì)算目標(biāo),這樣才算是達(dá)到了學(xué)習(xí)目標(biāo)。

3

打破課程的窠臼

發(fā)現(xiàn)學(xué)習(xí)的樂趣


芬蘭的教學(xué)注重創(chuàng)新、注重學(xué)生興趣

與傳統(tǒng)的計(jì)算機(jī)編程課相比,這種沒有電腦的編程課因不受授課形式的約束而大大增添了學(xué)生學(xué)習(xí)的趣味性。游戲化課程是芬蘭編程課的最常見形式,在游戲的過程中,學(xué)生全身心投入。

一個(gè)個(gè)精心設(shè)計(jì)的與學(xué)習(xí)目標(biāo)相關(guān)的游戲任務(wù),除了讓學(xué)生在輕松的氛圍中自然而然地學(xué)習(xí)和體會(huì)到編程背后的本質(zhì)思想之外,還充分調(diào)動(dòng)起了學(xué)生的腦力、創(chuàng)造力和動(dòng)手能力。

這種寓教于樂的教學(xué)方式,在增強(qiáng)學(xué)生的學(xué)習(xí)參與度的同時(shí),讓學(xué)生收獲了愉快的學(xué)習(xí)體驗(yàn),從而讓學(xué)生更加積極地投入到學(xué)習(xí)過程中來。

除了增強(qiáng)課程本身的趣味性外,讓學(xué)生發(fā)現(xiàn)學(xué)習(xí)與其自身的聯(lián)系和意義,也是幫助學(xué)生發(fā)現(xiàn)學(xué)習(xí)樂趣、提高學(xué)習(xí)積極性的重要方式。

曾在美國波士頓公立學(xué)校工作過的亞冉?明茨在哈佛大學(xué)教育研究生院攻讀博士學(xué)位時(shí),對(duì)美國26 個(gè)州共110 所中學(xué)的81,499 名學(xué)生進(jìn)行了調(diào)查,她發(fā)現(xiàn),大約三分之二的在校學(xué)生有厭學(xué)的情緒。

為什么會(huì)這樣呢?最主要的原因是學(xué)習(xí)材料枯燥無味,缺乏針對(duì)性,挑戰(zhàn)性也不強(qiáng)。有的學(xué)生說:“學(xué)校學(xué)習(xí)很乏味,大家昏昏欲睡,一點(diǎn)都提不起勁來。”更有60% 的學(xué)生說:“我不知道課堂上學(xué)習(xí)這些東西有什么用?!?/p>

同樣地,如果只將編程作為一門技術(shù)來學(xué)習(xí),多數(shù)在校學(xué)生,尤其是低年級(jí)的學(xué)生,仍然難以理解學(xué)習(xí)編程于其自身的意義所在。這時(shí)學(xué)習(xí)就會(huì)變成一種機(jī)械的、被動(dòng)的行為,一旦脫離了學(xué)校的環(huán)境和教師的指導(dǎo),學(xué)生將不再想要學(xué)習(xí),甚至對(duì)學(xué)習(xí)感到無從下手。這種學(xué)習(xí)與芬蘭所追求的可持續(xù)性的學(xué)習(xí)顯然是相悖的。

因此,芬蘭的編程課程關(guān)注程序背后的原理,將編程學(xué)習(xí)與學(xué)生的實(shí)際生活聯(lián)系起來。原本孤立而深?yuàn)W的編程語句,因?yàn)橐粋€(gè)個(gè)與學(xué)生相關(guān)并讓學(xué)生真實(shí)參與進(jìn)來的活動(dòng)而變得親切又充滿生氣。

此時(shí)的編程課程或許依舊神秘,但是對(duì)學(xué)生而言它已經(jīng)充滿吸引力,因?yàn)閷W(xué)生開始理解編程背后的原理和依據(jù)了,學(xué)習(xí)編程已經(jīng)變成一項(xiàng)有趣而有意義的事情。

正如最初開發(fā)Linux 系統(tǒng)的芬蘭人林納斯?托瓦茲所說:“程序就像是一種魔法,由你來開發(fā)程序以告訴計(jì)算機(jī)要做什么。如果你要理解的是編程的本質(zhì),那學(xué)校的編程教育就將會(huì)是一件有趣的事,而不再是一件因?yàn)榇蠹叶家獙W(xué)所以我也必須要學(xué)的事情?!?/p>

來源:第一教育


回應(yīng)2 舉報(bào)
贊20
收藏111
7年前
有一種程序猿從娃娃抓起的違和感
5年前
太贊了!這不只是學(xué)編程序,還是思維和邏輯的習(xí)得和內(nèi)化,酷!
發(fā)布

推薦閱讀

小花生小溪
小花生小溪
2017