「不插電」與「偷插電」的程式設計教學
資訊科技雖說最終會把電腦綁進來,可是它的學習過程,甚至是研究過程可以不必非得一開始就這麼做。
對我來說,當一項資訊科技發展到60~80%時才是進入Coding的階段。所以我認為孩子不一定一開始就要透過程式來學習資訊科技。
多數資訊科技的重要背後是一種思維方式,不管是排序,最短路徑等最基本的技術,還是機器學習與大數據分析,以我自己的研究而論,我是先想像一個很多年以後「可能」會用到的技術,架構或是應用,在腦子裡思考一切的可能性,用紙筆或是電腦記錄下來「可能」的步驟,然後才是用「程式」來印證其「可能」性。雖然這幾年我已經不自己寫code了,而是指導學生,由學生來寫code,但是我還是很清楚知道研究應該有的走向。
你一定會問我,自己不寫code,怎能了解很多效能的問題?
這必須分成兩種不同的層次來看。目前我在想的技術通常不是現行世界看得到的,如音樂感知與演奏分析,所以技術的可行性與可重覆性才是最重要的,效能,佔據的記憶體,計算量等等都不是我要考慮的。多數的前瞻性創新都是如此。就如早年的類神經網路能解的問題不多,但是當電腦效能上來,一切就會不同。但是沒有先期的研究,不可能有後來。
當效能,佔據的記憶體,計算量等等成為重點時,那麼就是這些技術「可能」可以賺錢的時候了,原來的技術已經不是重點,反而是把效能提升的技術才是重點,所以coding在這階段變得相對重要,多數的維持性創新的重點也在此。我過去從事的晶片設計就是這類。
前瞻性創新與維持性創新都重要,但是前者的獲利高,相對風險也高,Google在做的很多是前者。台積電以前是前者,現在是後者,算是一個很好的典範,不過這類例子不多。
對於孩子的教學,當然是要給他們「視野」,讓他們發揮大人已經逐步喪失的「想像力」,讓他們學習,甚至是精熟過於靠近後者的,如語言與語法這類的比較像學科的東西並不合適。資訊科技的進步越來越快,對還在唸中小學的孩子來說,現在盛行的程式語言在他們長大以後可能都不在「盛行」,甚至是消失了。我大學時寫過的pascal以及學商的同學用的cobol現在還有多少人在使用呢?
未來的世界,我認為語言已經不是障礙,多數人要使用的程式語言將比現在的主流語言要簡單非常多。但是還是有5~10%需要學習以效能為重點的程式語言。
雖說資訊科技進步很快,但是很多基本概念在可預見的15~20年還是不變的,如排序法,搜尋法,routing等等。當我看到軟體自由協會翻譯的「不插電的資訊科學」時,我非常讚歎老外的點子。可是當我的團隊用它來教學時,卻發現聽者還是不容易接收這些概念。我仔細思考後,覺得是其操作性,可現性,互動性與戲劇性需要再加強。
當時,我想組織成大資工的學生把「不插電的資訊科學」一書用若干應用程式或是戲劇的方式來呈現。不過,很快地,我發現 謝宗翔老師已經進行了一陣子了,而且比我這老頭子能想到的還更簡單易懂。所以我全力支持謝老師的「偷插電的資訊科學」的開發。同時也連結成大的 Edu.FOSS學生社團,請謝老師與軟體自由協會的 Franklin Weng來指導他們繼續做下去。
也因此, 中華民國愛自造者學習協會 Program the World Association轉而開發「不插電的Scratch」,這是後話,容我以後再來陳述。
「偷插電的資訊科學」是一個讓本來不在資訊領域的人,不管是學生,老師,或是想了解資訊科技的基礎的朋友可以好好運用的工具書。我們幾個社團也會努力在對「不插電」與「偷插電」的
方面有所增補,敬請期待。
方面有所增補,敬請期待。
留言
張貼留言