2016年11月12日 星期六

如何建構孩子的程式能力

其實寫程式, 就是 maker。從有興趣的主題出發、發現真實世界的問題,克服各種技術與知識上的困難,努力找出解答方案。 換句話說,maker 的培養沒有標準課程。你可以教會孩子許多工具、許多知識,但是不給孩子時間與空間來嘗試錯誤、思考,他/她很難成為 maker。 曾有孩子的朋友問我,學過了 C 和 java。學程式到底能做什麼? 這樣的學習者很多,因為他們被制式的課程帶著走,無法理解自己的需要與課程有什麼關聯,所以找不到應用點。另一方面,這兩種程式語言要寫出應用並不容易,課程教了一大堆語法與架構,學生找不到著力點。 既然是從小學習,方法不應該與大人學習方法相同。孩子應該從有興趣的應用下手,讓他持續嘗試,發現不足,然後再往下學習。 以我兒子最近的學習為例。 他在大學旁聽了資訊研究所的「雲端運算」,教授說「你們應該都寫過 socket 程式,這很基本。」他沒學過,於是回家 google 了一下,應用 python,兩天就寫出了一個以 socket 做溝通的應用程式。 有了這個基礎,加上他對於寫遊戲很有興趣,所以他開始構思如何製作多人線上遊戲。 前幾天他問我,「一個點到一條直線的最短距離」怎麼算?這是他高二上應該學習的數學課程,但我讓他跳過,直接學微積分。沒想到需求竟然產生了,有了學習動機,短短幾小時,他就運用程式寫了一個小工具,讓電腦算出「一個點到一條直線的最短距離」,而且是以動態的圖像來展示。 大多數的 maker,絕對不是養足了知識才開始動手,而是邊學邊動手,邊動手邊學。程式能力也是這樣培養出來的。而這些學習的印記,絕對是帶得走的能力。

沒有留言:

張貼留言