編程課不用電腦?因為芬蘭教師將編程當做一種思想來教

2018-4-18 22:01 轉載 · 圖片6

教室里,老師正領著學生們做“西蒙說”游戲——

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

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

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

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

這只是芬蘭編程課的一個片段,讓我們來看看芬蘭思維下的編程課是如何進行的!

1

從技術到思想

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

電腦編程在信息化的今天已經成為學校課程中不可或缺的部分,而將技術教育作為國家目標之一的芬蘭,更是高度重視對學生的編程教育。

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

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

受這樣的教育理念的影響,芬蘭認為編程課程要做的絕不僅僅是對學生的技術訓練,學校更應該關注如何讓學生理解和掌握編程背后的思想。

因為如果將編程學習僅當做一門技術來學習,那學生最終獲得的就將是使用計算機的能力;但如果將編程學習看做是計算機編程思想的學習,那學生所獲得的就將是計算機編程的本質原理和可遷移的思維方式,而這種思維方式也將能夠被用來開展更多的研究和解決生活中更為復雜的問題。

例如,計算機編程的過程實際是通過抽象和分解來完成復雜任務的過程,傳統(tǒng)的以技術學習為目標的編程課更關注的可能是具體的語句編寫、程序調試和最終的運行結果。

但如果將編程看做是一種思想來學習,那除了基本的程序設計,教學還應該關注編程過程中給學生帶來的思維方式的啟示。

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

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

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

2

創(chuàng)想無極限

沒有電腦的編程課

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

案例一:人體B-Box

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

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

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

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

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

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

案例二:機器人操場

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

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

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

教師將學生分為兩組,一組學生扮演機器人,另一組學生扮演機器人的操控者,幫助機器人越過各個障礙物。

首先,教師帶領學生來到空曠的操場,并讓學生共同完成對障礙訓練場的布置。他們可以利用如下圖所示的直觀的引導符號,也可以利用學校里的桌椅板凳等設施來布置供“機器人”穿越的障礙訓練場。

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

“機器人操場”引導符號

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

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

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

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

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

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

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

“學編程真的要用到電腦嗎?”到這里,這個問題的答案已經顯而易見了:如果將計算機編程看做是門單獨的技能學科,那么計算機編程當然得有電腦才能學習。

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

3

打破課程的窠臼

發(fā)現(xiàn)學習的樂趣


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

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

一個個精心設計的與學習目標相關的游戲任務,除了讓學生在輕松的氛圍中自然而然地學習和體會到編程背后的本質思想之外,還充分調動起了學生的腦力、創(chuàng)造力和動手能力。

這種寓教于樂的教學方式,在增強學生的學習參與度的同時,讓學生收獲了愉快的學習體驗,從而讓學生更加積極地投入到學習過程中來。

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

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

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

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

因此,芬蘭的編程課程關注程序背后的原理,將編程學習與學生的實際生活聯(lián)系起來。原本孤立而深奧的編程語句,因為一個個與學生相關并讓學生真實參與進來的活動而變得親切又充滿生氣。

此時的編程課程或許依舊神秘,但是對學生而言它已經充滿吸引力,因為學生開始理解編程背后的原理和依據了,學習編程已經變成一項有趣而有意義的事情。

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

來源:第一教育


回應2 舉報
贊20
收藏111
6年前
有一種程序猿從娃娃抓起的違和感
4年前
太贊了!這不只是學編程序,還是思維和邏輯的習得和內化,酷!
發(fā)布

推薦閱讀

小花生小溪
小花生小溪
2017