教孩子程式設計的 6 個小建議

段昕理發表於2015-12-08

程式設計是一項任何孩子都可以參與的創造性活動。你的孩子或許不喜歡編寫資料處理演算法,但他們可能會喜歡創造遊戲、對音樂程式設計、設計網站、或只是擺弄程式碼。

我曾經寫過幾本程式設計的入門書籍,適合各個年齡段的初學者,根據我的經驗,你不必認為自己是技術人員或”擅長數學“才能學習程式設計。實際上,孩子學習程式設計要比成年人更快,因為他們不知道程式設計的“困難”所在。

如果你不會編寫任何程式碼,但想通過學習來教你的孩子,看看我最新的Python圖書《Automate the Boring Stuff with Python》,它適合初學者,你可以在網上免費閱讀。

不管你是軟體工程師,還是完全沒有程式設計背景,下面這六個建議都將有助於你的孩子學習程式設計:

1. Scratch 是為小孩子們準備的 , Python 則適合大孩子們。

麻省理工學院的 Scratch 是一個為兒童設計的免費程式設計工具,可以執行在任何一個現代網頁瀏覽器中。任何人都可以從 https://scratch.mit.edu 執行它。它的視覺風格受到 Logo 程式的影響,Logo 是一個為 80 和 90 年代兒童設計的主流程式設計課程。但是 Scratch 遠不止是 Logo 的山寨版那麼簡單。

8 到 13 歲的孩子們將會受益於 Scratch 簡單的圖形介面。Scratch 可以通過拖拽程式碼塊將它們拼在一起。不可計算的程式碼片段則無法組合,這樣杜絕了字面上的語法錯誤。Scratch 對那些不會打字的小孩子們來說非常有用。

當然,孩子們如果想編寫更加複雜的程式,Scratch 就不夠用了 。對於青少年來說,像 Python 這種真正的程式語言才更加適合。Python 是一種優秀的首選程式語言,因為它的語法非常簡單(不像 Java 或者 C# ),程式碼可讀性高(不像 Perl 或者 JavaScript),並且有強大友好的開發者社群 支援。如果 Scratch 已經無法滿足你的小孩,Python 是下一步的最佳之選。

2. 展示實際程式的原始碼。不要只談概念。

儘管程式設計以智力著稱,但它是個需要動手練習的技能,光靠看書可不行。Python 互動式 shell 命令列鼓勵通過實踐來發現指令的功用。

如果你直接教你的孩子,寫程式碼的效率要遠高於只跟他們談概念。即使學會了變數、迴圈、函式,坐在一個空白編輯器前面編寫一個新程式仍然讓人恐懼。你應該和他們肩並肩坐一起並講解每一行需要編寫的程式碼。

或者,如果你想分享線上資源給孩子,儘量找那種小遊戲的原始碼。最好是程式碼行數小於200的小程式。

Scratch 網站會自動共享其網站上所有專案的原始碼。多鼓勵你的孩子修改這些程式碼,然後看看這些改動如何影響了最終的程式。

3. 遊戲是充滿趣味的程式設計專案

很多年輕程式設計師往往都是從編寫視訊遊戲開始的。《憤怒的小鳥》、《Mincraft》、《Flappy Bird》、 《Five Nights at Freddy》,和其它的遊戲都是靈感的源泉。 我寫了本免費的書《Invent Your Own Computer Games with Python》,通過很多獨立小遊戲(Tic Tac Toe、Hangman 等)的完整原始碼,來展示程式設計的概念。

需要注意的是,你孩子所熱愛的這些遊戲,不一定適合作為入門學習的程式設計專案。很多遊戲是程式設計師、藝術家、設計師團隊一起協作的結果。如果一個遊戲需要大量的關卡設計和藝術工作,會嚇壞初學者。完成一個簡單的遊戲,比開始一個永遠做不完的大型專案要更容易讓人獲得滿足。在實踐中,可以參考我在《49 個簡單力學小遊戲》中的清單。

儘管遊戲是有趣的,我一般不推薦“遊戲製造器”或“遊戲生成器”之類的專用軟體。和 Scratch 類似的是,這些應用通常試圖提供簡化的程式設計環境。但是和 Scratch不同的是,它們會沖淡程式設計的概念。使用這些工具做程式設計感覺像在配置一個已有的軟體。

伯樂線上補充:去年 Flappy Bird 火熱時,Code.org 推出了一個用類似 Scratch 語言來作 Flappy Bird 遊戲的程式設計課

4. 讓你的手離開滑鼠和鍵盤

分享知識是愉快的。告訴別人你對程式設計的理解非常好。但是編碼是一個需要動手練習的技能,所以讓孩子們盡情嘗試吧。當和孩子們一同練習時一定要避免搶過孩子鍵盤的衝動,即使是短暫的也不行。如果他們需要點選一個選單或按鈕,要用手指去點螢幕去引導他們,而不是自己拿著滑鼠去點。不管他們要輸入什麼程式碼,都讓他們自己去做。如果你自己做可能會更快,但你的學生比你更需要練習啊。

5. 如果你在教一個班,保證每個孩子都有自己的電腦。

如果你在教一組學生,儘量讓每一個人都有自己的電腦。與演奏樂器一樣,程式設計技能需要動手練習而不是光看別人表演。

樹莓派是一臺便宜的準個人電腦,僅需要 70 美元(伯樂線上注:新版樹莓派 5 美元)。儘管新增新鍵盤、滑鼠和顯示器後,總價格和一個便宜的膝上型電腦接近。不要使用 Chromebooks、iPads 和平板電腦,因為 Python 很難執行在這些裝置上。

如果你要為課外小組建立一個電腦實驗室,並希望節省費用,你通過樹莓派和一些閒置的鍵盤和顯示器,就能夠達到目的。(通過 樹莓派官網和 Ben Nuttall 每月一次的 樹莓派專欄 尋找免費資源。)另一個推薦是使用便宜的膝上型電腦,尤其是當你沒有專門的場地,並且需要在課後把電腦存起來。膝上型電腦只用很少的線,存放起來更容易。

如果做不到每人一臺電腦,可以讓孩子們結對輪換。記住第 4 個建議:一開始就告訴他們要徵求同伴的同意後再使用滑鼠和鍵盤,而不是把同伴推開。

有些孩子可能比較霸道喜歡獨自佔有機器,不夠自信的孩子又願意讓他們佔據。把一個小孩設定為 ,另一個孩子設定為,明確告訴小組換位置,這樣可以確保(或者 )公平的使用鍵盤和滑鼠。

6. 跳過電腦科學

如果你是一位軟體工程師,會常常希望分享程式設計祕訣。講解遞迴泛紅填充演算法,或者解決來自 Euler Project(一個程式設計實踐問答網站,使用者群是那些想提高程式設計技巧的童鞋)的程式設計問題充滿樂趣。但讓初學者一上來就接觸這種難題,就不那麼有趣了。你在分享下面這些主題前,要三思而後行:

  • 物件導向程式設計
  • 遞迴
  • 設計模式
  • 除了lists、arrays 和 dictionaries、hash maps 以外的資料結構(例如:linked-lists、binary trees 等)
  • 網路協議(除簡單的 HTTP 請求以外的協議)
  • SQL 資料庫、或者其它特定領域語言

一個好方法:如果某些問題出現在 Google 的面試題中,最好跳過它們。開始階段,涉獵廣泛的主題好過深入技術細節。讓你的孩子自己發現他們的興趣所在。一旦孩子們嘗試了程式設計世界提供的各種可能,他們會非常高興探索自己喜歡的那部分。

推薦閱讀:

相關文章