2014年4月26日 星期六

我踏入了兒童程式教育

回顧我的程式設計師生涯,  第一個工作很幸運地在工研院電通所從事研發工作,  紮實的研發經驗培養了我開疆闢土的專業能力,  每當專案從無到有,  這種滿足與成就感是筆墨難以形容。

2000年,  為了照顧年幼的小孩,   我轉換跑道成為SOHO族。但沒過多久,  一家儲存系統公司願意讓我在家做全職的工作,  每星期只需要一天到公司與同事進行溝通與測試,  程式設計師的生涯對我而言是完全的自由與彈性。

2008年,  為了給孩子更大的活動空間,  全家搬到了北大特區,  也告別了從事15年的程式設計師生涯。進入桃子腳國中小擔任課輔媽媽,  輔導學生的課業;  後來進入班級帶孩子進行節能減碳「動手做科學課程。在這個過程中,   去除了帶一群小孩的恐懼,   逐漸掌握如何與孩子互動,   獲取孩子的信任。沒想到這個不經意的經歷,  對於我2012年開始的兒童程式設計教學,   竟加分不少。

2012年暑假,  因緣際會認識了Raymond老師,  由於升國中的孩子很喜歡程式設計,  Raymond老師不僅提供了免費的Scratch課程,  並邀請我幫忙修改教材。為了陪伴孩子走這段我還蠻熟悉的路,  我就這樣踏入了兒童程式教育。

孩子聽說要上 Scratch 才告訴我,  早在小學四年級,  大他一歲的表姊已教他Scratch,  而學校在五年級也教了Scratch。既然他已經會了,  還需要上課嗎?  因為聽聞教材是 MIT 所研發「創意性軟體開發:以設計為出發點來介紹軟體開發思維」(Creative Computing: a design-based introduction to computational thinking),  會將程式設計的觀念與軟體工程的方法藉由實作來教育小孩,   是前所未見的, 所以就讓孩子試一試吧!

Scratch

一般人對程式設計的刻板想法,  會覺得那是進大學資訊系才需要學的技能。但在美國麻省理工學院的媒體實驗室早已發展出適合8歲以上孩子的創意設計工具, Scratch。Scratch採用「積木」的概念,  模擬孩子玩積木的行為模式,  嘗試,  然後拆解,  嘗試, 然後拆解...,  孩子即使毫無程式經驗也能開始「組裝」程式。

Scratch超越了一般程式設計的學習,  因為一般的程式教學從語法開始,  然後是一堆邏輯設計,  學習者很難想像何時才能做出一個吸引人的作品。所以枯燥與乏味是一般人對程式設計的感想。Scratcher (寫Scratch的人) 卻很容易做出能與人互動的程式,  不只是孩子,  許多家長看到孩子的作品都想自己來學。

Scratch隱藏了許多細節,  雖然比一般的程式設計簡化,  但是當你發現小孩竟能在短短的初級班就能運用自如 loop, if-else, variable, parallelism, event, message passing 等等,   不禁要豎起大拇指說讚!  這可是與現今資訊系學生的程式觀念相去不遠啊,  這門課作為小孩程式設計的啟蒙真是太棒了!

而 Scratch 啟發孩子的創意,  並不限於數理能力優異的孩子,  而是每個孩子都可以試試看。學習 Scratch,  孩子可能發展出兩種創造力: 一種是程式設計能力,  邏輯思考強,  願意自我挑戰;  另一種是創意的表達力,  結合音樂,  文字,  動畫做情意的表達,  未來可能成為動畫設計師或電影工作者。在教學過程中,  我很清楚地看到兩種不同的創意力可以被激發出來。但可惜的是,  多數家長自我設限,  以為數理不好,  不適合上 Scratch; 其實老師若能在學習過程中不斷地鼓勵孩子,  孩子的邏輯統合能力是可以被訓練出來的。

家長常問的一個問題是,  幾歲的小孩適合來學?  雖然 Scratch 適合8歲以上的小孩學習,  但是我們教學使用的MIT課程強調互動與思考,  比較適合五年級以上到高中的學生。太小的孩子在這種互動課程下, 往往對老師帶的活動理解不足,  反而效果不好。我建議小孩在小學五年級後再來學,  才不會揠苗助長。

沒有留言:

張貼留言