編程課不用電腦?因為芬蘭教師將編程當做一種思想來教
看點 人工教育時代來臨,在未來彷彿不會編程就相當於「會讀不會寫」。家長們紛紛給孩子配備上電腦,學習大熱的編程課。作為全球熱捧的教育國家,芬蘭當然沒有落下這門課。下文中浙江大學教育學院的李璨,屠莉婭帶我們走進了芬蘭的編程課堂,在他們的教室里,編程不用電腦,是將複雜而龐大的問題系統分解為一個個具體的問題單元,一起來看看芬蘭的編程課是如何從技術到思想來改變孩子的思維方式。
文丨李璨 屠莉婭 編輯丨李臻
教室里,老師正領著學生們做「西蒙說」遊戲——
老師與學生們面對面站立,每個學生都全神貫注地等待著老師的指令。「西蒙說,7 !」聽到指令後,學生們迅速地坐到了地上。「西蒙說,12 !」接到下一條指令後,學生們又立刻將手放到了頭上。
因為根據教師的規定,當「西蒙說」後面的數字為奇數時,學生要立刻坐在地上;當「西蒙說」後面的數字為偶數且該數字大於10 時,學生則要將手放在頭上;如果兩者都不符合,學生則保持原狀不動。如果哪個學生聽到指令後做了錯誤動作,他就要出局。
隨著教師的語速越來越快,出局的學生越來越多,堅持到最後的一到兩名學生將贏得這場遊戲。
看到這裡,你可能在想,這大概是一節教學生判斷奇偶數的數學課。但事實上,這卻是芬蘭的一節教學生體會「IF 語句」的計算機編程課。
這只是芬蘭編程課的一個片段,讓我們來看看芬蘭思維下的編程課是如何進行的!
1
從技術到思想
芬蘭思維下的電腦編程課程
電腦編程在信息化的今天已經成為學校課程中不可或缺的部分,而將技術教育作為國家目標之一的芬蘭,更是高度重視對學生的編程教育。
大部分人常識中的編程課依舊是一門傳統的計算機技術課程,學生要通過編程課程了解程序設計的基本概念,掌握程序設計中的基本技巧和常用演算法,建立起程序設計的基本思路,以最終通過計算機程序設計語言來控制計算機完成某種特定的任務。但對走在教育改革和創新前沿的芬蘭來說,編程課程要達到的教學效果遠不止這些。
關注學生的可持續性發展和重視學校學習聯繫生活實際是芬蘭教學最顯著的兩個特點。芬蘭相信,學習的目的除了掌握知識本身,更要讓學生能夠主動地思考和靈活地運用知識以解決更多實際的問題和更好地應對未來多變的生活。
受這樣的教育理念的影響,芬蘭認為編程課程要做的絕不僅僅是對學生的技術訓練,學校更應該關注如何讓學生理解和掌握編程背後的思想。
因為如果將編程學習僅當做一門技術來學習,那學生最終獲得的就將是使用計算機的能力;但如果將編程學習看做是計算機編程思想的學習,那學生所獲得的就將是計算機編程的本質原理和可遷移的思維方式,而這種思維方式也將能夠被用來開展更多的研究和解決生活中更為複雜的問題。
例如,計算機編程的過程實際是通過抽象和分解來完成複雜任務的過程,傳統的以技術學習為目標的編程課更關注的可能是具體的語句編寫、程序調試和最終的運行結果。
但如果將編程看做是一種思想來學習,那除了基本的程序設計,教學還應該關注編程過程中給學生帶來的思維方式的啟示。
如何將複雜而龐大的問題系統分解為一個個具體的問題單元,如何用合適的方式來闡釋和歸納同類型的問題,如何選擇恰當的方法對問題進行轉換以使其更易處理等,都是編程課應當關注的內容。
如此一來,學生除了學習到了具體的編程技術,更培養了化整為零的思維習慣。這種習慣一旦養成,受益的將不僅僅是編程學習,其能夠為學生生活的各個方面帶來積極的影響。
因此,芬蘭希望學校的編程教育要能夠做到:教授相關編程知識的同時,有意識地對編程思想進行解釋,構建其與學生生活之間的各種聯繫,讓學生體驗到科技與生活是息息相關的,實現用編程和代碼來激發學生各方面的學習興趣。
2
創想無極限
沒有電腦的編程課
一提到學習編程,多數人腦中出現的畫面一定是學生一邊聽老師的講解,一邊敲擊鍵盤進行練習的畫面。但學習編程真的要用到電腦嗎?我們不妨先看看芬蘭的教師們是如何做的。
案例一:人體B-Box
這是一節學習循環結構的編程課。循環結構是對某一演算法的重複執行,其大大減少了相同語句重複書寫的工作量,是最能發揮計算機設計特長的程序結構之一。很多看似複雜的程序設計,實則都是由一個個循環運行的循環體構成的。
就如同現實生活中很多看似複雜的大工程,其實也都是由各個小工作任務按照不同的方式循環而成的,B-Box 音樂就是一個典型的例子。
B-Box 是口技的一種形式,人們利用唇、齒、舌等不同的部位模仿出不同樂器的聲音,再按照一定規律對不同的聲音元素進行重複和疊加以彙編成一段富有節奏感的音樂。得益於B-Box 和循環結構所體現出的相似的工作原理,教師設計了這樣一個人體B-Box遊戲來幫助學生更好地領會循環思想——
如下圖所示,教師先對學生進行分組,每組學生負責演奏一種聲音,如第一組學生負責拍手,第二組學生負責用嘴發出「嗶嗶」聲,第三組同學負責用嘴發出「嘣嘣」聲等。而後為每組學生設計一個演奏圖式,並給出圖式的循環次數和開始下一個動作循環的指令。
根據上圖的要求,整個演奏從負責拍手的小組開始,並在拍手小組完成一個循環體後,負責發出「嗶嗶」聲的第二小組加入進來;第二小組完成一個循環體後,負責發出「嘣嘣」聲的第三小組再加入進來,從而實現不同聲音的疊加和重複,形成了一段完整的B-Box 音樂。
在熟悉了遊戲規則後,學生可以自己添加其他的平行循環或嵌套循環,或是改變各組的演奏圖式和循環方式,創作出自己喜歡的音樂。
案例二:機器人操場
「IF 語句」是計算機編程中最常用的判斷語句之一,其要按照給定的判斷要求,根據判斷結果的真假來執行對應的操作步驟。
「IF 語句」對學生的邏輯思維能力提出了較高的要求,如何用簡潔明了的判斷條件及其對應的操作步驟來代替重複而煩瑣的單個執行語句是學生在學習「IF 語句」的過程中要重點掌握的內容。
在這節課的教學過程中,芬蘭教師帶領學生做了個名為「機器人操場」的遊戲——
教師將學生分為兩組,一組學生扮演機器人,另一組學生扮演機器人的操控者,幫助機器人越過各個障礙物。
首先,教師帶領學生來到空曠的操場,並讓學生共同完成對障礙訓練場的布置。他們可以利用如下圖所示的直觀的引導符號,也可以利用學校里的桌椅板凳等設施來布置供「機器人」穿越的障礙訓練場。
各個障礙物布置好以後,學生分成兩組,一組學生扮演機器人,一組學生扮演機器人的操控者。其中扮演機器人的學生要將眼睛蒙起來,這樣他們就真的像機器人一樣——缺乏操控者的指令就無法行動。
「機器人操場」引導符號
與一般的遊戲不同,該遊戲中教師要求學生用簡短的「IF 語句」來代替繁雜而重複的獨立語句。
例如,一般情況下操控者可能會對機器人說:「先前走兩步,而後從板凳上爬過去,再前走三步,接著從桌子下面鑽過去。」但在這個遊戲里,教師要求學生用這樣的「IF 語句」向機器人發出指令:「接下來你要面對六個障礙物,在碰到下一個障礙物之前你先保持直走,如果那個障礙物很高,你就從它下面鑽過去;如果比較矮,你就從它上面爬過去。」
在這兩個教學案例中,學生所看到的、學到的不僅僅是「Do…」或「IF…Else…」等直白的計算機語句和編程技術,他們更理解了如何在解決具體問題的過程中使用循環思想和條件判斷來對問題進行加工和處理。
第一個案例中,學生最後要共同創作出一段B-Box 音樂。一段音樂里有不用的樂器和音節的排列組合和重複,看似是個十分複雜的工程。但通過最開始教師指導下的「循環程序」的演示,學生知道再複雜的任務也是由一個個部分組成。
要形成完整的音樂,就要先找到音樂里所包含的各個元素和片段,而後對這些小的部分進行重複和循環設計,便能形成最後的完整的樂章。
第二個案例中,學生被要求用盡量簡短的「IF 語句」來發號施令,這使得學生不僅僅學到了「IF 語句」的一般用法,更從走一步、看一步、做一步的短視性思維轉換為從整體出發的全局性思考,無形中鍛煉了學生的邏輯思維能力。
值得一提的是,芬蘭教師並不反對在編程教學中使用計算機。在學生掌握了編程背後的思想之後,芬蘭教師也會讓學生在電腦上進行相關程序的編寫練習。他們只是強調,不要讓計算機限制了編程學習的範圍。除了常規的編程技術的學習,編程過程中所體現出的各種思維方式和解決問題的方法也是教學過程中應當關注的內容。
「學編程真的要用到電腦嗎?」到這裡,這個問題的答案已經顯而易見了:如果將計算機編程看做是門單獨的技能學科,那麼計算機編程當然得有電腦才能學習。
如果認為學習計算機編程更為重要的是理解其背後的概念,理解計算機與生活的關係,理解計算機與人的思維方式的區別,那麼就要先在生活中理解和體會計算的本質,然後再去用像計算機這樣的工具來實現計算目標,這樣才算是達到了學習目標。
3
打破課程的窠臼
發現學習的樂趣
芬蘭的教學注重創新、注重學生興趣
與傳統的計算機編程課相比,這種沒有電腦的編程課因不受授課形式的約束而大大增添了學生學習的趣味性。遊戲化課程是芬蘭編程課的最常見形式,在遊戲的過程中,學生全身心投入。
一個個精心設計的與學習目標相關的遊戲任務,除了讓學生在輕鬆的氛圍中自然而然地學習和體會到編程背後的本質思想之外,還充分調動起了學生的腦力、創造力和動手能力。
這種寓教於樂的教學方式,在增強學生的學習參與度的同時,讓學生收穫了愉快的學習體驗,從而讓學生更加積極地投入到學習過程中來。
除了增強課程本身的趣味性外,讓學生髮現學習與其自身的聯繫和意義,也是幫助學生髮現學習樂趣、提高學習積極性的重要方式。
曾在美國波士頓公立學校工作過的亞冉? 明茨在哈佛大學教育研究生院攻讀博士學位時,對美國26 個州共110 所中學的81,499 名學生進行了調查,她發現,大約三分之二的在校學生有厭學的情緒。
為什麼會這樣呢?最主要的原因是學習材料枯燥無味,缺乏針對性,挑戰性也不強。有的學生說:「學校學習很乏味,大家昏昏欲睡,一點都提不起勁來。」更有60% 的學生說:「我不知道課堂上學習這些東西有什麼用。」
同樣地,如果只將編程作為一門技術來學習,多數在校學生,尤其是低年級的學生,仍然難以理解學習編程於其自身的意義所在。這時學習就會變成一種機械的、被動的行為,一旦脫離了學校的環境和教師的指導,學生將不再想要學習,甚至對學習感到無從下手。這種學習與芬蘭所追求的可持續性的學習顯然是相悖的。
因此,芬蘭的編程課程關注程序背後的原理,將編程學習與學生的實際生活聯繫起來。原本孤立而深奧的編程語句,因為一個個與學生相關並讓學生真實參與進來的活動而變得親切又充滿生氣。
此時的編程課程或許依舊神秘,但是對學生而言它已經充滿吸引力,因為學生開始理解編程背後的原理和依據了,學習編程已經變成一項有趣而有意義的事情。
正如最初開發Linux 系統的芬蘭人林納斯? 托瓦茲所說:「程序就像是一種魔法,由你來開發程序以告訴計算機要做什麼。如果你要理解的是編程的本質,那學校的編程教育就將會是一件有趣的事,而不再是一件因為大家都要學所以我也必須要學的事情。」
註:本文轉載自公眾號「第一教育」