原文:Explaining Programming to 6 Years Old Kids
作者:Tomek Kaczanowski
翻譯:雁驚寒
摘要:本文作者圖文並茂地介紹了自己給幼兒園的小朋友教授電腦基本知識的整個過程。如果你家裡也有一個年齡相仿的小孩的話,你也試一下吧。以下是譯文。
任務:向一群六歲的孩子解釋你所從事的工作。
等級:高(我自己的女兒就是六歲)。
許多人分享了他們對這個“演講”的想法:你可以在Stack Overflow上找到一些非常有趣的例子(例如,這裡)。很多人認為,首先要讓孩子們知道計算機是非常愚蠢的,然後準確地告訴他們要做什麼以及如何做才能達到自己想要的結果。但是,我很懷疑孩子們聽了這些之後能夠了解到有關程式設計的什麼東西。
關於這個成功的“演講”,我的想法是這樣的:
通過提問和繪圖的方式讓他們參與進來。原始的圖紙非常大(是活動掛圖),我一邊講解一邊畫畫。這是讓年幼的觀眾們參與進來的一個很好的方法(他們會很開心的笑話程式設計師稻草人,或指出小豬佩奇的樣子並不是這樣的,等等)。我現在手頭並沒有原始的圖紙,當時忘了拍照了,所以我又畫了一遍。
立足於他們已經知道的東西(例如:YouTube、膝上型電腦、平板電腦、DVD)。現在每個孩子都會在YouTube上看動畫片,在平板電腦上玩遊戲,看著粑粑麻麻在膝上型電腦上工作。他們也知道電影是儲存在VCD/DVD上的,智慧手機和平板電腦非常的相似(涉及到遊戲和電影)。
我首先從最基本的問題開始,“誰知道程式設計師是做什麼的?”我知道他們昨天已經討論過這個了,所以,對於他們的一些想法我並沒有感到驚訝。我告訴了他們我自己的定義:“程式設計師是編寫計算機程式的人,他們知道如何告訴計算機應該做什麼。程式設計師非常瞭解電腦。”
然後,我畫了一個正在工作的程式設計師。
下一步是談論電腦。所有的孩子都開始談論起他們父母的膝上型電腦(他們反覆談論同一樣事情的時候真的是非常的可愛)。等一小段時間之後,我打斷了他們,告訴他們:在很多不同的東西里面都有電腦,例如智慧手機和手錶,還有汽車和電梯。我把提到的每個東西都畫了出來,並用幾個字來概括在什麼情況下該用哪種電腦。我又問他們天氣預報是如何實現的(一個聰明的孩子回答道:“衛星知道第二天的天氣”),然後告訴他們是電腦根據數千個測量裝置提供的資料計算出預測結果。
我打算把話題轉移到電腦程式上來,所以,我提到,電腦之所以會幹活都要歸功於程式,是程式命令電腦去做某些事情。
我又把話題轉到了YouTube,因為我知道孩子們很瞭解它。我畫出了網站的介面,他們都很熟悉這個介面。
我問,YouTube上有多少部電影。一些小朋友開始迷糊了,但也有人喊道:“幾百萬個”或“無限個”。所以,我又問,是否有可能把所有的電影都放在一張光碟上呢。然後我畫了很多碟片,並問道:“如果你告訴YouTube要觀看小豬佩奇的某一集,它就能找到對應的光碟,這是如何做到的呢?”他們都沉默了,所以我畫了一個資料庫,並迅速描述了它的角色。
我要給他們灌輸這樣一個觀念:他們看到的只是一個冰山一角,而程式設計師負責了更多的東西。我向他們解釋了我們是如何處理各種各樣的事情的:
- 保護電影免受壞人的破壞(“*如果有人修改了資料庫會怎麼樣,你會看到足球賽,而不是小豬佩奇?” 孩子們用沉默回答了我)
- 製作備份(“*如果光碟壞了會怎麼樣?那麼你永遠都無法再看到小豬佩奇裡豬爸爸掛照片那一集了?”孩子們再一次沉默了)
- 讓YouTube可以在不同的裝置上播放(智慧手機,平板電腦,膝上型電腦)
- 展示廣告
- 計算觀看每部電影的人數
- 顯示類似電影的縮圖等
這時是告訴他們程式設計是團隊合作的最好的時機了。程式很龐大,需要具備不同領域的知識,需要很多人蔘與進來創造。在這一點上,我更新了第一幅畫,新增了另一個程式設計師,讓兩個人坐在一起。
下一個主題是計算機的工作原理,當然是非常粗略的。我是這樣告訴他們的:
- 滑鼠和鍵盤是人們用來給計算機下命令的
- 電腦螢幕用於顯示電腦的響應
- 每臺電腦裡面都有一個處理器(你可以把它看成是電腦的大腦)
- 還有一些磁碟供電腦儲存資訊
接著,我把重點放在處理器上,告訴他們它使用一種只有0和1組成的非常有趣的語言。然後,當我假裝用一種只有A和B的語言說話時,大家都笑得很開心。接著,我解釋說,程式設計師使用程式語言是為了能夠更容易地與處理器進行交流。
隨後,我給他們展示了最最簡單的程式語句的例子(使用一些虛擬碼)。我想給他們展示更多的東西,但我覺得他們的注意力開始不集中了,所以我甚至沒有講for迴圈。
為了結束我的“演講”,我再一次畫了一些符號來總結我們討論的東西。我一邊畫一邊問問題“這是什麼?”和“你還記得有關這個的一些什麼嗎?”諸如此類。一切進行得很順利。
附加內容,要做的和不要做的事情,提示和技巧:
這比我預期的要更加好玩!我很認真地對待這個任務,做了充足的準備,並取得了一定的成果。孩子們對此很感興趣,我想他們也許會記住一些內容的。
畫圖是正確的方法。它抓住了孩子們的注意力,通過對圖上的東西進行指點,讓我可以提醒他們幾分鐘前大家討論的內容。
準備好一遍又一遍地重複內容。當我問他們知道有關語言的哪些東西時,一個人舉手說:“我知道一點點英文”,然後他的夥伴也是這樣。然後還有一個,接著是另一個,其餘的人一個接一個地這麼說。所有人關於英語的說法都完全一樣。當你提到他們喜歡的主題時,例如動畫片,場面會變得更加混亂。
有些孩子不管你做什麼都會覺得無聊。他們集中注意力的時間太短了。
認真書寫。例如,當你寫的1看起來像7的時候,他們會抗議。
在演講中,我明白沒有任何必要去糾正他們。例如,我認為他們明白YouTube是將動畫片放在DVD上的,而當你要求播放一部動畫片時,電腦會選擇正確的光碟並播放它。我認為這是非常好的。我希望他們瞭解這個概念(搜尋是如何實現的,資料庫的作用是什麼),而不是技術細節。我覺得這是正確的教育方法。
我花了25分鐘的時間來做這次演講。已經夠了,沒必要再長了。