落實程式設計教育,需跳脫傳統考試評量、更不為單純培育軟體人才

作者 | 發布日期 2017 年 06 月 30 日 10:38 | 分類 科技教育 , 軟體、系統 follow us in feedly

上週參加女兒學校舉辦的「職業生涯探索日」活動,與數百名國高中學生分享我在高科技產業多年的經驗,特別強調電腦軟體的發展,如何已經改變我們的生活;同時我強烈建議他們,擁有好的程式設計訓練,能怎樣為自己的未來生涯大大加分。



大家都已經察覺,我們的生活中,電腦軟體已經無所不在。過去只有工作或用電腦的時候才感覺到用軟體,現在從你的手機裡,上網購物、遊戲社交、音樂影視、書籍照片、叫車叫外賣、訂餐廳訂旅館、甚至指揮其他的裝置,都是經由軟體及相關的服務在進行。未來,在人工智慧/機器人、大數據分析、無人車、VR / AR 等技術的持續發展下,軟體改變人類的生活,只有更多,沒有邊界。

從找工作的現實面來看,根據美國 Business Insider 雜誌 2016 年的統計,從市場的需求量以及職位的薪資水準合併考量,未來最熱門的前 20 個工作中,跟電腦軟體相關的就有 4 個(見下圖),到了 2024 年,美國預計有 100 萬個電腦科學專業相關的職缺。最近因為人工智慧發展火紅,常有專家預測許多現在的工作不久會消失,看起來,軟體相關的工作需求只有更多,肯定不會消失。

在台灣,我們終於看到政府隨著世界的潮流(其實已經落後),在 107 課綱中將「程式設計教育」,納入中小學的必修課程當中。台灣也有一些學術及民間的組織,已經積極配合這個趨勢,提供各種工具及形式,希望能幫助程式教育的普及推廣(可參考我 3 年多前的文章:連 5 歲小孩都會:英國將寫程式列為中小學必修,台灣卻連大學生都不想學)。

不少人擔心在台灣推廣程式教育,有關師資培養,課程設計、僵化的考試思維,以及基礎環境不足的諸多問題會是難題,不過我認為技術問題還好解決(文末推薦兩本書籍有描述國內外的經驗做法,即使國內都已有不錯的縣市推廣案例),關鍵還是在於學習者(包括家長)在面對程式教育時的心態,是不是夠開放,能不能抓到重點。以下我分 3 個方面分享一些觀點,希望協助大家更成功地理解這個趨勢:

一、程式設計是綜合性的學習,不應用傳統的方式來教學、考試、及評量

多數專家已有共識,學習程式設計的最大重點,在於建構 「計算性思維」(Computational Thinking)的能力。寫程式的目的,不分大小,即使在學習的階段,都是以解決問題的專案為導向,並且經常可以需要立即展現結果 (比如說你寫一個簡單的小人跳舞程式,他的舞步就是你程式的結果)。因此,傳統的單向式教法、記憶式學法、口頭或紙上談兵法,都不能在這裡發揮功效。

問題導向的學習,也是訓練學生理解問題、解構問題、尋求解決方案、以及不斷試驗改進的最好模式。在學習程式的過程中,學生一定會碰到很多問題(包括程式的 bugs),老師應適時引導他們如何有效尋找資料、跟網路上的專家/程式人員溝通、自主思考解決方案、或是經由團隊合作來完成這個問題專案。

透過一個又一個的程式專案,學生累積了解決問題的經驗與能力,而且通常不僅是技術問題,而是生活或現實上的問題。評量程式學習的成果,可以從軟體產出的展現(有無做出功能目的、UI 設計是否友善、效能是否流暢、是否有延伸應用等),到一些演算概念的檢核(可用開放式問題,避免抄襲),若把評價軟體作品想像成評鑑美術習作,包含一定程度的客觀理性,但也有一點主管喜好,倒有幾分類似。

二、不是每個人都能成為厲害的軟體開發人才,但是在跨領域的學習及應用發展上,絕對會加分

把程式設計當作數學或物理等基礎科目來訓練,雖然呈現方式有些不同(如前述),但是能結合其他領域,應用的廣度,絕對不小於數學物理。

從簡單的軟體工具應用,例如在 Excel 中用 Macro 語言來計算財務模型,或是架設基本的網站/網頁,撰寫瀏覽和銷售服務(電子商務)的分析,到複雜的系統整合或專業領域應用,例如 Maker 潮流下 3D 列印的軟硬體設計,或是需要龐大運算的基因定序分析,幾乎所有領域,都因為能善用軟體開發,來達到前所未有的效果(與效率)。

隨著軟體及服務創新事業層出不窮,具備深厚的軟體開發經驗,在參與創業的機會上也大幅增加,甚至對於許多創業團隊來說,打造軟體方面的差異化,會是成功的關鍵因素。

我認為台灣在智慧生活以及軟硬整合兩個領域,具備培育及發展軟體人才的空間。前者與社會精緻化與創意化的演進密切相關,後者是台灣(電子)硬體產業累積實力的延續。並且,我相信多數的軟體創新會發生在新創公司,因此創業環境的再進步,高端軟體人才的多培育,以及跨產業/跨領域的創意整合,都是我們要努力的方向。

三、學寫程式越早越好,而且不是男生的專利,女生或許更適合

隨著程式開發工具的多樣化、視覺化、套裝化演進,各個年齡族群,各個開發目的的人們,可以選擇的軟體語言與學習路徑,已經相當多。

我在大學及研究所修習電腦軟體的年代,還是以複雜的文字語法,接近機器運行的低階語言邏輯為主,確實需要比較多的專業學習,也讓許多人(特別是自認數理邏輯比較弱的人)感到卻步。然而,今天的軟體世界非常多元,有很大程度的程式開發是運用視覺化的介面環境,讓開發者迅速設計及展現程式結果。例如 MIT 媒體實驗室開發的 Scratch 語言已經風靡全球,連 5 歲兒童都能容易上手(Scratch Jr.)。

若是有些家長不喜歡孩子太早接觸電腦,還有所謂「Unplugged」的學習方式,利用非電子設備(例如卡片、蠟筆、杯子等小工具)設計出來的遊戲或活動,來學習程式設計的部分技巧,適合親子共學,也相當有趣。

另外,女生從事軟體設計的工作趨勢越來越盛,為什麼呢?因為撰寫的程式十分需要細膩的思維,甚至有些藝術天分,若是開發的軟體著重在終端用戶體驗,在介面及流程設計上,女生的敏銳度及美感能力有時還有優勢。此外,軟體工作在空間和時間上比較自由,也不是靠體力來支撐,適合女性若是要兼顧家庭的彈性工作型態。因此我們應該鼓勵也會看到更多女性工程師,在職場帶來貢獻,宅男工程師的形象,就不應再過度強調及固化了。

說句不是太誇張的話,我認為這一波科技與程式教育的成果,將會對於產業、社會、及國家的發展及競爭力有決定性的影響。當前各行各業都受到科技巨大的衝擊,組織裡各個階層的人員若有更多運算思維的訓練,以及對軟體科技趨勢的理解,將大大提升他們在面對變局、處理問題的能力,以及於競爭中勝出的機會。

有專家宣稱,未來世界可以分成兩種人,一種人會寫程式,能參與許多創新事業與領域的發展;另外不會寫程式的人,在許多方面屈於劣勢,成為與社會進步不太相關、逐漸邊緣化的人。你想成為那一種人?

文末推薦讀者兩本新書,我這裡不少的想法,在書中都有更精闢的描述與精彩的案例,閱讀他們,相信可以幫助大家更認同此一趨勢,也激起大家更多推廣科技教育的熱情。

最後,我用前美國總統歐巴馬(Barack Obama)在推廣程式教育時的一段話,與大家共勉:

學寫程式,不再是面對難懂的文字符號,而是培養邏輯、勇於嘗試、實現創意的過程,你準備好進入這個新世界了嗎?

好書推薦:

(首圖來源:pixabay

延伸閱讀:

關鍵字: , ,