如何向 6 歲的孩子解釋何為程式設計

飛哥的咖啡發表於2017-09-07

任務:向一組六歲的孩子解釋你的工作(我自己的女兒也在其中)。

難度等級:高。

如何向 6 歲的孩子解釋何為程式設計

關於這個任務/主題,之前網上已有許多人分享了他們對這種“講座”的想法,你可以在 Stack Overflow 上找到一些非常有趣的例子(例如這裡)。其中許多人的想法是關於計算機是多麼愚蠢,因為要取得成功,你需要非常準確地告訴它做事的方法和規律。我保證這樣很有趣,但我也很懷疑,過後孩子們能對程式設計有什麼瞭解。

一個成功的演講在我心裡應該是這樣的:

  • 讓他們通過提問和畫畫來持續參與其中。我在談話期間畫下的原畫(白板紙)相當大。順便一提,畫畫是一個能讓年輕觀眾參與進來的好方法(他們玩得很開心,嘲笑代表程式設計師的稻草人,或者指出粉紅豬小妹(Peppa Pig)長得不是這樣的等等)。我沒有原始圖紙(忘了拍照),但我又畫了一次,讓你看到這個想法。
  • 所有演講的內容要基於他們已知的事物(比如:YouTube、筆記本、平板、DVD)。現在每個孩子都在 YouTube 上觀看卡通片,在平板上玩遊戲,看到爸媽在筆記本上工作。他們也知道電影是儲存在 CD/DVD 上的,以及(在涉及遊戲和電影時)智慧手機和平板非常相似。

我從一個最基本的問題開始,“誰知道程式設計師是做什麼的?”我知道他們昨天討論過這個問題,所以對他們提出的一些想法,我並不感到驚訝。我給了他們我自己的定義:“程式設計師是編寫計算機程式的人,他們掌握和計算機交流的語言,而且對計算機懂得很多。“

然後我畫了一個工作中的程式設計師。

如何向 6 歲的孩子解釋何為程式設計

下一步是討論計算機。所有的孩子都開始談論他們父母的筆記本(他們反覆提到同樣的東西,這樣真的很可愛)。討論了一段時間後,我打斷他們並指出,在不同地方還有很多計算機,比如智慧手機或手錶,還包括汽車和電梯。我把上面提到的每一項都畫了出來,並用幾個字簡單地概述每一種情況下計算機的用途。我還問他們他們如何看待天氣預報的工作(這時一個聰明的孩子回答:“衛星知道第二天的天氣”),並告訴他們計算機得出的預測,基於上千的測量裝置給出的測量結果。

如何向 6 歲的孩子解釋何為程式設計

為了轉到下一個話題計算機程式,我提到計算機之所以能做很多事,要歸功於指導它們做這些事情的程式。

話題隨之轉向 YouTube,我知道他們很瞭解它,我從他們熟悉的 UI 開始。

我問他們 YouTube 上有多少部電影。有些人比較困惑,而有些人高喊“數百萬”或“無限”。我問所有的電影是否都可以放在一張光碟上。然後我畫出許多光碟,問他們“在給 YouTube 下達觀看 《粉紅豬小妹》某一集的指令後,你瞭解它是如何找到那個正確的光碟嗎?”他們以沉默迴應,所以我畫了一個資料庫,並快速描述了它的作用。

如何向 6 歲的孩子解釋何為程式設計

我想讓他們知道,他們所看到的只是冰山一角,而程式設計師們還有很多要做的。我解釋了我們必須如何處理以下各種事情:

  • 保護電影免受壞人的篡改(“如果有人改變了資料庫會發生什麼事情,你會看到一些足球比賽,而不是粉紅豬小妹。”,底下的孩子一片死寂 ? )
  • 製作備份(“一個光碟破裂了怎麼辦?那你永遠不會在粉紅豬小妹中,看到豬爸爸設法掛畫這一情節了。“,底下又是一片死寂 ? )
  • 使得 YouTube 可以在不同的裝置上執行(智慧手機、平板、筆記本)
  • 展示廣告
  • 計算觀看每一部電影的人數
  • 顯示相似電影的縮圖,等等

這是一個提醒他們程式設計是團隊合作的好時機。這些專案很大,需要不同領域的知識,所以很多人都參與了創作。在這一點上,我更新了第一張圖,新增了另一個程式設計師,讓他們倆坐得很近。

下一個主題是計算機的工作原理,當然我一筆帶過,沒有詳細展開。我是這樣告訴他們的:

  • 滑鼠和鍵盤是供人們傳送命令給計算機的
  • 計算機螢幕是供計算機響應(命令)的
  • 每臺計算機裡都有一個處理器(你可以把它當成計算機的大腦)
  • 還有一些磁碟允許計算機儲存資訊

如何向 6 歲的孩子解釋何為程式設計

我把注意力集中在處理器上,告訴他們計算機使用一種只包含 0 和 1 的有趣語言。當我假裝只用 A 和 B 開頭的詞說話時,我們獲得了一點樂趣。然後我解釋程式設計師之所以使用程式語言,是為了更容易與處理器溝通對話。

然後我使用了一些最簡單的程式語言進行示例(使用一些虛擬碼)。我本想再給他們看一些東西,但我覺得他們正在失去注意力,所以我甚至沒有提出 for 迴圈。

如何向 6 歲的孩子解釋何為程式設計

為了完成我的演講,我再次畫出了我們所談論過的符號。我一個一個地畫出來,問他們“這是什麼?”、“你還記得什麼?”這樣的問題。整個過程都非常棒。

如何向 6 歲的孩子解釋何為程式設計

額外的說明、注意事項、提示及技巧:

  • 這比我想象的要有趣得多!我認真地對待這件事,進行了很好的準備,結果也得到了回報。孩子們很感興趣,我想他們可能會記得一些事情。
  • 畫畫是正確的方式。它能抓住他們的注意力。通過指著某一幅畫,能讓我提醒他們幾分鐘前我們就此討論過的事情。
  • 要做好一遍遍重複的準備。當我問他們知道的語言時,一個孩子舉起手說:“我知道一點英語”,然後他的同伴也一樣,這一個,那一個,然後組裡剩下的人一個接一個(或幾個同時)舉手,但幾乎所有人說的都是英語。當你談到他們喜歡的主題,比如卡通片時,場面會變得更加混亂。
  • 不管你做什麼,有些孩子會變得無聊,因為他們的注意力週期實在太短了。
  • 注意書寫。舉個例子,當你寫 1 時,他們會抗議這看起來像 7。
  • 在這次演講中,我明白了糾正他們是毫無意義的。例如,我認為在他們眼中, YouTube 會將卡通片儲存在 DVD 上,當你要求某個卡通片時,計算機會選擇正確的光碟並播放。我個人覺得這種想法很好,我想讓他們理解的是概念(搜尋是怎樣的,資料庫做什麼的),而不是技術細節,這才是我認為正確的方法。
  • 演講花了大約 25 分鐘,感覺沒必要更長了。

相關文章