點閱率 | 800 次

從小開始邏輯思考 淺談小朋友的程式設計

文/陳俊廷


 

近年來,在科技大廠各巨頭與新聞媒體的推波助瀾下,興起了人人學程式設計的風潮,前美國總統歐巴馬在2016年時所提出的政策「Computer Science for All」將投入40億美元資金,提供各州從幼兒園到高中完整的電腦科學教育,而學習程式語言是這一切的基礎;同時,英國政府也投入50萬英鎊,發展「Year of Code」計畫,從5歲開始推廣學習程式語言。在這股學習「寫程式」的風潮中,台灣政府也搭上這股風潮,準備在今年上路的「12年國教課綱」中納入程式設計課程,希望台灣也趕上這波教育趨勢,培養未來人才。本文將以一個程式設計師的角度。為讀者們說明這股程式設計的新浪潮。

 

Q1. 為什麼各國都要讓孩童學習寫程式:

一開始我想先提一下,為什麼各國都開始推廣孩童學習寫程式,主要的原因有以下三點:

  1. 未來將會有大量軟體相關工作需求

在軟體逐漸主導的世界,以往人們對程式設計的印象是「程式設計只與電子產業有關」,但其實現在還有更多不直接和電腦資訊科學有關聯的工作,像是金融業、醫學界、新聞界、甚至娛樂業,也都需要懂程式語言和程式設計的人才,根據美國勞工局調查,到2024年全美將有100萬個電腦科學專業相關職缺,但卻只有40萬名相關系所畢業生能勝任。

  1. 新的表達方式和創造能力

MIT Media Lab團隊的計劃執行長Mitch Resnick在一場TED的演講< Lets teach kids to code >中提到1980年後出生「N世代」的年輕族群由於成長過程與網路、智慧型手機及平板電腦等科技產品緊緊相依,常被認為是擅長運用數位科技的世代。但Mitch Resnick對這些說法提出質疑,他認為年輕人使用這些科技產品上網、打電動、傳簡訊,並不代表『精通』了這些科技。他認為所謂的「精通科技」,並不是指人們與新科技「互動」的能力,而是「創造」新科技的能力。前者好比閱讀,後者卻像寫書一樣,不僅需要高度的創造力和表達力,也如其字面所形容的一樣,涵蓋了「寫作」的技能,想創造新科技,就必須學習撰寫程式語言。

  1. 掌控數位生活的便利

美國思科(Cisco)及洋基通運公司(DHL)合作所提出的趨勢報告指出,現在全球約有一百五十億個科技產品,隨著資通科技的進步,到2020年將有五百億個物聯網產品(Internet of Things)出現在市面上,未來的日常生活,也只會愈來愈走向數位化。之初創投管理顧問公司的創辦人林之晨也認為「20世紀的現在,每個人身邊至少已經有2、3個電腦相關的用品。未來,生活中的一切,車、冰箱、電視都會透過網路驅動,了解程式語言會讓設備來服務你,更符合你的需要,而不是受限於他人的設計」。

 

Q2. 我是爸媽,我希望我的小孩不要輸在起跑點,那我應該要讓他學什麼:

以前我在學習程式設計,首先要從認識語法開始,必須要先知道什麼是變數、判斷式、迴圈、函式,進一步則會進入到OOP (Object-oriented programming),然後可能還需要了解什麼是UML(Unified Modeling Language)、Unit Test等…,這些連大人都覺得困難的東西,要讓孩童要學這些猶如天方夜譚。所幸,隨著科技的進步以及政策的確立,科學家們開始研究如何讓智力發展尚未成熟的孩童以及沒有程式寫作經驗的人學會寫程式,這些聰明的科學家們想出來的方法就是將寫程式的步驟給視覺化,因此便誕生了「視覺化程式設計」。

視覺化程式設計是近幾年一個很熱門的研究項目,基本想法是透過將專業的程式指令轉換成簡單的積木方塊,只要將積木方塊拖曳組合就能簡單的完成程式設計,除了大大降低了程式設計的門檻,對於邏輯訓練也有一定程度的幫助,相當適合教育用途。目前在台灣最具知名度的當推由MIT(Massachusetts Institute of Technology )所推出的「Scratch」。

 

圖片來源:wiki(https://zh.wikipedia.org/wiki/Scratch)

 

Q3. Scratch是什麼?

Scratch是由麻省理工大學媒體實驗室終身幼稚園組(the Lifelong Kindergarten group at the MIT Media Lab)在2006年研發出來,主要是協助8-16歲的兒童學習創意思考、協同合作及系統性思考,所發展的一套開源的程式設計自由軟體,當然也適用於各年齡層的人使用。

 

Scratch專案:The Pico Show: Intro(圖片來源:https://scratch.mit.edu)

 

Scratch的想法是透過舞台劇的呈現方式,根據孩子的創意發想,應用程式積木來展現角色的行為與互動,也可以依著劇情的需要變化場景,再結合口白、音樂、特效,讓每個孩子都是導演。

 

適合5歲孩童的ScratchJr (圖片來源:https://www.scratchjr.org)

 

MIT開發團隊希望能用Scratch來幫助孩童發展資訊教育的學習技能,學生可以從中學習得重要的數學、電腦的概念,同時也學到如何做有創意的思考、邏輯化的推理。

 

網路上目前也有許多的Scratch教學資源,下面介紹兩個還不錯的網站,提供各位讀者參考:

  1. 胡信忠老師:「Scratch 程式設計教學(http://blog.ilc.edu.tw/blog/blog/1279)」

 

圖片來源:http://blog.ilc.edu.tw/blog/blog/1279/post/83249/590729胡信忠老師的blog

 

  1. 橘子蘋果程式設計學苑:「橘子蘋果開放教材(https://orangeapple.co/csr/open-material)」

 

圖片來源:橘子蘋果程式設計學苑https://orangeapple.co/csr/open-material

 

│結語│

Ruby語言的設計者-松本行弘先生曾在他的著作中提到:「未來還沒用上電腦的地方,也有可能會開始嵌入電腦」,可以預測的,未來程式設計能力將有可能成為求職的基本條件,蘋果的執行長庫克(Tim Cook)甚至認為學會寫程式比學會英文來的重要(來源:https://9to5mac.com/2017/10/10/tim-cook-interview-video/)。台灣的基礎教育在全球一直名列前茅,而台灣也是全球第二波將程式設計列為基礎課綱的國家之一,相信未來台灣在程式設計領域上應該能有不錯的發展空間。