2018年12月17日 星期一

不用電腦學編程


文.黃逸恆 

圖片來源:https://gocode.academy/importance-
of-coding-and-technology/
    最近數年,歐美各國均在課程中推動諸如STEMCoding等教育改革新方案,此一教改熱潮亦隨即在亞洲各國各地開始得到廣泛的關注。現在我們不難發現,澳門不少學校已在不同程度地開展不同方案的“STEM”“Coding”教育。機械人、立體列印、學習實驗模型等STEM教具,以及ScratchArduino等編程軟件等如雨後春筍般在學校課室生根發芽。
    編程教育(Coding為例,有人可能會問,電腦程式設計不是早已在澳門學校電腦科目中開展了嗎?事實上,筆者在中學時期就已學習了當年相當流行的電腦程式設計軟件,例如入門級的LOGO,以及稍為進階的BasicC語言等等。大部分人認知中的編程教育,仍舊是一門傳統的電腦技術課程。傳統的編程教育,學生要通過程式設計課程了解程式設計的基本概念,掌握程式設計中的基本技巧和常用演算法,建立起程式設計的基本思路,以最終通過電腦程式設計語言來控制電腦完成某種特定的任務。
    芬蘭早年已將技術教育作為國家目標之一,並在學校課程中高度重視對學生的編程教育。而其鄰國愛沙尼亞,更是最早將編程教育納入中小學課程大綱的國家,全民從七歲起就開始學習編程。
    重要的是,與傳統編程教育不同,芬蘭認為編程教育的任務不單是對學生進行技能訓練,而是應關注如何讓學生理解和掌握編程背後的思想。如果只將編程學習當成電腦技能來學,那最終獲得的就只能是運用電腦的能力;但如果將編程學習看作是編程思維的學習,那他們所能獲得的就將是編程的本質原理和可遷移的思維方式,而這種思維方式也將能夠被用來開展更多的研究和解決生活中更為複雜的問題。例如,如何將複雜而龐大的問題系統分解為一個個具體的問題單元;如何用合適的方式來闡釋和歸納同類型的問題;如何選擇恰當的方法對問題進行轉換以使其更易處理等,都是編程教育應當關注的內容。
    讀者可能會對愛沙尼亞孩子七歲就開始學習編程感到疑惑,對於編程教育大多數人第一反應是電腦上顯示的密密麻麻的代碼,覺得枯燥、複雜、難懂。就算是圖形化程式設計語言Scratch,對於孩子來說也不一定有趣,更何況普遍家長亦會關心長時間對着電腦產生的視力問題。實際上,編程教育近年已發展出不少不插電編程教程。不插電編程強調以開放式的學習方式,將編程知識和計算思維融入到有趣的活動中,讓小朋友不需要使用電腦就能理解編程,培養計算思維。更重要的是,孩子們在遊戲的過程中享受到學習的樂趣。大家只需要在Google中輸入不插電編程CS Unplugged,就可以找到很多有趣的方案。甚至,下圍棋或是一些傳統的桌遊,只要多加思考都可成為編程教育的方式。
    說到這裡,筆者想帶出的是,如果我們沒了解教改推動“STEM”“Coding”的初心和本意,結果就只會淪為設備的購置和產品的使用。學生素養的培育是目的,“STEM”“Coding”是達至目的之教育模式,至於用何種方法去開展,最重要仍然是教師所擁有的教育專業,而非產品。