孩子必須從現在開始學電腦程式的11個理由(2/3)

好的電腦程式的學習,能夠有效的幫助學習者培養出脈絡清晰的寫作,也就是說故事的能力。

文│徐宏義、羅曼如

四、學電腦程式可以訓練寫作及表達能力

說故事與創作性的寫作(Creative Writing)有三個重要的元素,那就是故事的結構(Structure)、故事裏事件的順序(Sequence),以及用最清晰的表達方式(Clarity of Expression)來敘事。結構、順序、清晰表達這三件事也是寫電腦程式最重要的三件事。

結構鬆散,順序錯亂,敘事含糊的程式寫作,不是完全不可能完成想要電腦去做的工作,但絕對是事倍功半,不優美,令人不忍卒讀的程序。簡單地說,就是一個不好的程式寫作。

因此好的電腦程式的學習,能夠有效的幫助學習者培養出脈絡清晰的寫作─即說故事─能力,這是極少被人提及卻很重要的學電腦程式的好處。

說到這裏,順帶介紹一下Google的CS First。CS First是Google為了鼓勵學童(Google設定為九至十四歲,但年紀較小或較大者,只要程度合適,就可以使用。)學習電腦科學所製作的一系列學習工具和教材。在CS First裏,有一個單元是使用電腦程式來說故事,而且說的是能夠讓看故事的人與說故事的人互動的故事。學童在說故事的過程裏,不但學到上述的結構、順序、清晰表達的能力之外,還學到如何發展獨特的創意,尤其是設計互動過程的創意。

 

五、電腦程式是一種特殊的思考訓練

我們常說,律師或法官的訓練是很嚴格的,法律的條文更是嚴格,不容有你說我說他說的不同解釋,否則某一個人到底是否逾越法律的條文,做出違法或犯罪的事情,大家的看法和解釋就會不一致,這個人是否應鋃鐺入獄或無罪開釋,變成公說公有理,婆說婆有理的狀況。對那個人、對整個社會都會造成不公,公理正義變成空談。因此,法律是規範人類行為最嚴格的條文,應該毫無疑問。

電腦程式相比於法律條文,其嚴謹有過之而無不及。而且和法律條文不同的是,它沒有國界,它是放諸四海皆準的唯一一套準則,從科技先進的矽谷,到最貧窮落後的國度,它都是只此一家,別無分號的一招一式走天下。

在學習電腦程式的過程中,需要把一件很複雜的事,有系統的拆成許多小部分,這樣電腦才能理解。這樣將複雜的程序拆解成小部分的思考訓練,讓學習程式的人在解釋或執行一件複雜事情的時候,也採用同樣的方式。如果電腦能理解,那麼其他人也能理解得更清楚。

寫電腦程式對大腦是一種很特殊的訓練,主要是因為電腦程式溝通的對象不是人,而是寫程式的人在和一個笨機器溝通,機器不會對你餵給它的程式語言讀出其中的言外之意,加上自己的想像或解釋,只要是你說了它聽不懂的話,有一點點語意含糊或者不是事先約定的文句方式,它馬上就給你吐回去。

不僅如此,電腦程式的訓練還是一種抽象式思考(abstract thinking)的訓練,你要學習如何對電腦說明你想要事物的特性(features)、概念(concepts),還有你要電腦做的行動(actions),這些都是非常引人入勝的心智活動。你學會了怎麼做抽象思考,同時也會學到許多其他的思考方式。學習電腦程式可以改變你的思考方式以及處理事情的方法,你會變得有能力把問題看得更清楚,解釋得更清楚,評估得更清楚。你會養成找出patterns(型態、型式)的習慣,由patterns找出過去解決過的問題,再結合其他的patterns,設計出更複雜問題的解決方案。

 

六、經由電腦程式學習計算機式的思考方式

常聽有人說,學電腦程式的益處就是可以學到邏輯思考的能力,這當然不錯,但是一個比較想當然耳式的說法。

我們在EDUx學習視覺程式設計的孩子如何學習計算機式的思考?

1.鋪陳問題:就是當他們在考慮如何使用Scratch裏面的人物、影像、音樂、對話等元素,創造他們的場景、結構、情節、順序來說他們想說的故事。

2. 組織數據:把故事元素以想像的走法組織起來。

3.表達數據: 當他們移動方塊,根據情節、結構等來操作故事的元素。

4.演算式思考:思考如何以迴路或其他自動化的方式,以達到最有效的解決方案的過程。

5.執行解答: 當他們一步步的以自助式的重複步驟,以趨近最後結果的過程。

6. 解決法之運用:當他們在視覺程式設計中運用學過的方式去解決更複雜的問題時,甚至將解決問題的方式運用、移轉到解決學業或生活上所遇到的問題。

 

七、電腦程式可以是解決社會問題的工具

人類在面對天災時的無助和渺小,從有人類開始一直到今天都沒有停過。和過去不同的是,科技的進步慢慢開始促成人類利用科技來解決天災所帶來的問題。

四川大地震發生時,還是一位高中生的Ge Zhouchen,在二○一四年和他大學電腦系的同伴們,一起用軟體建構了一個在緊急災難事故時的通訊平台,他們的平台讓政府的救災部門和其他營救團體,甚至受災人在停電、網路不通的狀況下,仍能交換訊息,讓他們能夠分配資源到最需要的地方,避免掉救災常發生的有些地方資源重疊,有些需要的地方卻到不了的誤時誤事的狀況。

這就是用軟體,用電腦程式來解決社會問題的一個最好的例子。

如果這些大學生沒有操縱電腦程式的能力,遇到天災人禍,只能在一旁默默祈福,縱使有心,也沒有辦法做出更大的貢獻。電腦程式的能力給了他們威力,讓他們有改變世界可能。

來自斯里蘭卡的四位大學生,看到他們國家的垃圾收集系統非常缺乏效率,民眾習慣隨手亂丟垃圾,整個國家變成一個處處有垃圾的地方。他們開發了兩個手機app,一個給垃圾車上的人員使用,另一個則供民眾使用。民眾會在app上看到垃圾車抵達時間,然後由垃圾車人員掃描發給每戶使用的QR code,以記錄每戶的垃圾量。

或許他們的解決方式不是唯一的,也不見得是最好的,但是這個例子說明了許多社會問題都可以經由科技的運用,不是迎刃而解,就是大幅改善問題,或者提高處理的效率。

學習電腦程式是empower(賦能)的過程,學會以寫程式來指揮電腦,能解決的絕不只是科學或工程的問題,有愈來愈多的新創公司、非營利機構、社會企業(social enterprises),或者B-corp認證的盈利公司,都在用軟體解決社會問題,把我們共同生存的世界推向一個更美好的境界。

摘自 徐宏義、羅曼如 《教育大未來 1:軟體打造科技大未來》/商周出版

 

Photo:Stephen Chin, CC Licensed.

數位編輯:曾琳之

本站提供網路意見交流,以上文章屬作者個人意見,不代表未來親子學習平台立場