近年教育界頗流行一組關鍵字:STEM,以及由 STEM 衍生而成的 STEAM,概念最早由美國國家科學委員會提出,為了提升美國科技與經濟競爭力,特別重視 Science(科學)、Technology(科技)、Engineering(工程)及 Math(數學)等領域的發展,STEM 就是這 4 個領域的英文單字首字母組合而成。
2011 年時,歐巴馬政府甚至在白宮成立專司其職的STEM 教育委員會(CoSTEM);2015 年,美國國會更發表《STEM 教育法》,落實到教學場域,培育相關 STEM 教育人才,透過跨學科整合,培養解決問題與創新能力,近年來新加坡、香港等地,也都積極發展 STEM 教育,並列入官方教育政策。
加入人文思維的 STEAM
或許 STEM 太重視理工學科,教育界因此產生新的意見,要求將 Arts(藝術)納入 STEM 教育,強調科技不能失去人性,同時必須具備藝術及美感,因此加入 Arts 之後,STEM 就變成了 STEAM。目前許多創新科技的出現,如 3D 列印、虛擬實境、無人機、智慧積木等,都不脫 STEM、STEAM 的範疇。
如果要舉最成功的例子,大概就是賈伯斯時代的蘋果了吧!那個時期推出的 iPhone、iPod 及 iPad 等產品,除了具備優秀的硬體設計,為不同情境提供最佳解決方案,也精準掌握人們對美感、功能及直覺性介面的要求。
運算思維的養成
STEM 打破了傳統學科的界線,學習方式當然也隨之改變,要求學生解決問題的過程中,運用不同領域的知識,那傳統單向式、一個蘿蔔一個坑的思考方式顯然不夠,而需要整合性的「運算思維」。運算思維(Computational Thinking)一詞由美國華裔學者周以真提出,主旨是運用電腦科學的基本概念來解決問題、設計系統、了解人類行為。鑑於 STEM 教育在台灣仍在起步階段,要培養運算思維,有個最簡單的方式,就是學習程式設計。
每個人都能學會寫程式
雖然程式設計亦屬於 STEM 涵蓋範圍,但它更像一張串連起不同領域學科的網路,因為在解決問題、實現創意的過程中,無可避免經常要用到電腦這工具,而電腦是一種二進位制系統,所以我們只能藉助程式碼,把想法轉化成電腦能理解的語言,讓它依照我們的需求,執行某些特定條件的任務、測試目前還未發明的概念,這就是「程式設計」的目的。近年坊間出現「每個人都該學習程式設計」的聲音,包括今年 9 月將上路的 108 課綱,也把程式設計列入中學必修課程,無論對孩子或父母,這種與電腦「對話」的能力,未來將成為生活基本技能。
程式語言的發展
程式語言的種類不下成千上萬種,依特性可區分為高階、低階程式語言,低階代表較接近電腦底層的運作模式,缺點是對人類來說相當難以判讀;高階程式語言則是把人類的語詞文法帶入程式語言,在編寫程式時更直覺方便,雖然電腦需要經過多一道編譯流程,才能理解高階程式語言的指令,但電腦硬體發展飛快,效能已不算是大問題。常見的高階程式語言如 Python、C++、JavaScript、Ruby 等,應用環境也不盡相同,不是簡單可說完,因此我們把焦點放在較入門的視覺化程式語言。視覺化程式語言進一步把人類語言及指令加以圖像化,以拼圖或積木形式呈現,利用滑鼠便能輕鬆堆疊,不必再手動輸入一堆程式碼,例如樂高機器人的 EV3 編輯程式,MIT Media Lab 開發的 Scratch 均可為代表。
其實視覺化程式語言本身亦算一套程式,只是功能有限,無法設計出較複雜的功能,但即便如此,與所有程式語言都有共通的核心概念,例如迴圈、條件陳述以及變數等,這些概念由現實世界的電腦科學、邏輯、數學發展出來,藉由 Google Blockly Games 或 Code.org 的 1 小時玩程式等應用,我們可學到程式設計師如何思考、如何運用這些概念建立程式雛形,等到你覺得它們無法達到你所設定的目標,再進入主流程式設計的領域學習也不遲。
留言列表