淺談資訊教育與CT+X,以及我反對的理由

“If I were a French student and I were 10 years old, I think it would be more important for me to learn coding than English” Tim Cook

就是這一句話,帶動了全球學習資訊的風潮。身為資訊老師,應該要慶幸這股風潮帶來的無限商機,也不需要擔心失業的問題?我們政府開始在108課綱將資訊教育帶到了國中小的階段,而大部分的大學也開始推行所有的學生在畢業前要學過程式語言,甚至還要通過認證!簡單來講就是把英文的那一套搬到程式語言來就是了。

但其實我個人不太贊同這個想法,所以在這邊寫下我的理由同時也發發牢騷。

什麼是資訊教育?我聽過幾個課綱委員的分享,他們說:「不要再讓我們的小孩在電腦課上學習開關機和 Office 了,他們應該來學習程式語言,並開始接觸運算思維。」在程式語言的部分,如果覺得 C/C++/JAVA/Python 太難了,沒關係,我們還有 ScratchBlockly 等的圖像式語言,讓學生自然而然的學會電腦的運算邏輯。在運算思維的部分,說穿了就是資工系的演算法課程,不過因為要教比較小的小朋友,所以我們應該要在生活中發現在些重複的 pattern ,讓學生自然而然的學會歸納,並將重複的事情交給電腦來處理。這些課綱委員毫無疑問充滿著使命感(或者說是信仰),我一點都不會質疑這件事,問題是我不贊同這份使命感的內容。

反對的理由有幾個。第一,每個人真的適合走資訊嗎?我自己現在正在教一些國中老師,期望他們受訓後可以成為合格的資訊老師,之後回到學校去教資訊課程。但很多人都告訴我,他們看著電腦螢幕但不知道該怎麼動手,有更多人是因為超額問題硬著頭皮來上的。到學校的現場也是一樣的,真的所有的學生都要學這東西嗎?他們已經有著眾多的科目,國英數理化地歷生體美 ... 每個領域都認為自己的東西最重要,然後我們會繼續說:「這個競爭的時代,怎麼能輸在起跑點呢?」,卻忘了我們這些所謂的大學老師不都是上大學才開始學程式。不停加上去的結果就是什麼都學不好。再加上一定要給成績、分高低,所有的課綱都會被扭曲,我班上的學生就直接告訴我,現場一定會有現場的做法。可是這些是課綱委員永遠看不到的部分,他們每次視察都只會看到最美好的一面,就像台灣一貫以來的粉飾傳統,那些都絕對不會是平均狀況。

我認為最好的做法是以社團或是選課的方式進行。所謂的必修就扼殺了學生自主學習的動機。

第二,我不覺得學好程式可以學好邏輯,起碼我就認為很多系上老師都有哲學謬誤,因為他們沒有好好檢視他們結論的先設(突然發現我的用語也可以很哲學ㄟ)。很多人都說學習程式可以學好邏輯,但我的疑問是,為什麼不乾脆普設哲學課程來學邏輯算了(我猜朱家安那一票人應該會贊同),為什麼偏偏要學程式設計?難道有人真的認為資工系的學生邏輯能力比哲學系的好嗎?起碼我看過系上的老師在討論抵免的問題時,哲學系的邏輯課可以直接抵免系上的邏輯。我必須要說,要程式設計來學邏輯是有問題的,因為你學了程式設計學的是電腦的運算邏輯,人類的邏輯複雜多了。電腦只能夠處理量化的資料,對所有質化的資料一點辦法也沒有,所有類比的資料都要先經過取樣(Sampling)變成數值後才能夠處理。用程式設計來學邏輯只會把人的思考侷限在數字化的思考(坦白說現在已經是了,你看看現在的政府,不管是哪個黨在執政都只會看數字而已)為什麼普及哲學課這麼困難,有一個理由就是很難評分。畢竟想法和那些哲學大師們不同應該要怎麼算分就很困難,但大家不是一直在喊重點是學到東西嗎?

另外還有一點,跟資訊教育比較無關,但是和現在在教的國中老師們比較有關係。我們開設了太多資工系的課程給這些老師來扼殺他們的熱情了。作業系統、計算機結構、計算機網路、離散數學這些資工系的必修課真的是第一線的人員需要的嗎?坦白說連資工系的學生我都不贊同這些一定是必須的。雖然我同事的立場是「資工系學生怎麼可以不會 XXX」,但有的時候我都認為這不過是哲學上的生存者謬誤,更何況這些學生出去工作以後有多少人會用到離散數學我也不知道。當然這又會回到大學的本質到底是求真、還是求有用的立場論證。以台灣現在的立場來說當然是兩個都要這種沒有 priority 的說法。

接下來要談的是 CT+X。如果不知道什麼是 CT+X 也沒關係,因為它的名稱由來是 Computational Thinking + X,雖然我個人認為比較像是 程式設計+ X。X 是什麼?X 可以帶入任何的東西,像是中文啊、音樂啦、數學啦,簡單來說希望讓其他領域的學生來接觸資訊工程,讓他們理解到程式可以為他們做到什麼,然後他們去發展自己想要的軟體。很多老師在展示學生成果的時候都說這些學生做的不錯,但我完全不這麼認為。那些充其量不過就是玩具的水準,而且這些學生後續也不會再繼續鑽研程式了。你可以想想,音樂系的學生為了符合學校的標準通過程式設計這門課以後,他會每天花上兩個小時來寫程式,還是每天花多個小時來練琴?

那應該要怎麼做?術業有專攻,CT+X 我認為比較好的執行方式是把資工系的學生和其他系的學生拉在一起,讓其他系的學生成為資工系的客戶,讓資工系的學生為其他系的學生服務,這才叫做把資訊帶入各個領域。當然也許不是用客戶和供應商的這種角色,可以用工作夥伴的這種關係。可是這樣其他系的學生不會學到怎麼寫程式啊?沒錯,但是當他們開了需求出來,而資工系的學生做不到的時候,他們可以開始了解電腦的極限,以及程式語言的運作流程(畢竟要解釋給他們聽為什麼做不到)。反過來說,資工系的學生要開發音樂軟體,要磨練的是程式語言對音樂信號的處理而不是每天去練琴吧。這才是我比較喜歡的 CT + X 的運作方式。我很討厭所謂的 PI 型理論,每個人都要有著複數的專長,有複數的專長沒問題,但頂尖的最多只可能有一樣,畢竟每個人的時間都是一樣的,要成為真正的 pro,勢必得要投入最多的時間在特定的項目。

什麼?這樣的課程分數會很難打?那就是老師們的懶惰,正如課綱委員在質疑國中小現場資訊老師一樣。

留言

這個網誌中的熱門文章

我弟家的新居感恩禮拜分享:善頌善禱

如何將Linux打造成OpenFlow Switch:Openvswitch

Openssl 範例程式:建立SSL連線