網路城邦
上一篇 回創作列表 下一篇  字體:
程式課可以這樣教
2016/02/27 04:46:09瀏覽3862|回應0|推薦14

我常常誇張地批評說:「台灣的大學資訊教育中,教人寫程式的這一部份,是徹底的失敗!」十個對寫程式有興趣的初學者,有九個會在上完第一學期的程式設計課之後放棄這條路!最終只有極少數腦袋先天與電腦相容,或是興趣大到難以自拔的自學成功者,才會變成業界真正有生產力的程式師!諷刺的是:這些人多數都不是標榜培育程式設計專業人才的資工系畢業的!包括我自己!

只作負面批評不是我的風格!我敢於批評的事情多半是我已經有正面的意見,甚至已經有成功的實例!昨天是我在文藻數位系開課,本學期「資料庫系統」的第一次上課!或許是數位系替我作的宣傳蠻有效的?雖然是數位系高年級的選修課,我又是他們不熟悉的校外兼課老師,居然還有很多不怕死的外系學生來選修!多數是語文與商業科系,甚至有已經在高雄大學讀完商科碩士,在當研究助理的畢業生來旁聽!

當然,這些人多半是既期待又怕受傷害!他們知道的大概是我「很厲害」!是教授也是業界軟體公司的老闆,希望我能真的教會他們寫資料庫程式。但是他們多半沒有程式基礎,怕我教得太難,學不會就算了,還有被當、被羞辱(自己很笨)的風險!連已經修過程式設計的數位系學生,也多半自認程式學得不好,很怕跟不上!所以我當然要花點時間給他們信心喊話。因為如前所述,我知道任何背景的人,包括像我這樣學海洋出身的!只要興趣夠大,又能找到學會的路徑,都可以變成很棒的程式師!

我自己是完全自學出身的,我知道所有初學者的心情與困難,在經歷了十多年的自學摸索過程之後,我其實很不滿多數程式設計老師們的怠惰與傲慢!如果老師們願意真的好好設計由淺入深的教材,如果老師願意在教學中真的注意到學生學習的卡關,願意耐心地一一幫助他們突破!我認為九成的人上過程式設計課都應該愛上它,而不是對它敬而遠之,甚至厭惡它的!

重點出來了!要教得好:第一是教材,第二是教法!教材方面,學寫程式第一個面對的困難是程式語言種類好多!老師通常也只會(熟悉)一兩種,多數老師總是怠惰的選擇教自己最擅長,而不是學生最容易學會的語言。我認為即使你教的是專業領域最常用廣用的語言也不對!重點是學生對程式設計毫無概念時,你絕對應該選最簡單最能用常識與直覺理解操作的語言,像是VB之類的!一定要先求有再求好!譬如Java語言就絕對不適合初學者!我聽到幾個大一就教Java的故事都是哀鴻遍野!

其次,我們教程式設計的目標很明確,就是要能寫出實際有用的軟體,學生學程式也都是急於能寫出實用的東西!這是老師可以充分利用的最佳學習動力,如果上了好幾門程式設計相關的課還是寫不出一個小畫家程式,那就是徹底的資源浪費,學校應該退學費給學生的!但是從理解程式設計的基本動作與概念,到完成專業軟體的路已經夠長了!更麻煩的是路線選擇還非常的多!任何一種實用軟體都有至少七八種語言與技術的組合可以作到,如果老師們沒有規劃隨興地選擇教材,學生就會變成好像甚麼都知道一點,但是沒有一件事(軟體)可以真的作完的半調子!這就是多數資訊科系學生的實際狀況。

所以教授們不必想太多,也不要找理由閃躲!先確實自己學會作出「簡易版」的目標實用軟體,譬如Line!先研究出一種可行的完整作法,行有餘力再多嘗試更多種不同的作法,最後選擇其中最好學、也最有效的一種製作流程,寫成圖文並茂的教材一步一步教學生就好了!如果我是一個有選擇新進教授權力的資工系系主任,第一個面試的問題就是:你會做甚麼軟體?如果一種都說不上來,立即面試喊卡!下一位請進!

只要老師能確實的教會學生實作各種軟體的「簡易版」,那些軟體最關鍵的幾個功能動作可以真的用程式寫出來!他們就可以去業界上班了!細節枝節的技術甚至「理論」!等學生會實作簡易版的軟體之後,隨便上網找資料或問前輩都可以很快的看懂學會補足!根本不需要在課堂上聽教授口沫橫飛,因為沒有程式實作的體驗之前,聽任何理論或技術的演講都會很無聊,有聽也不會真懂的!

教材對了之後,上課方式也很重要!寫程式有如蓋樓房!一樓都沒有,不可能蓋二樓,沒蓋結實就急著蓋更高的樓層,就會變成危樓,隨時會塌下來!所以上程式課一定要緊盯學生的反應,看他們聽了老師解說,看了老師示範,是不是真的可以實作出來?不行就再講再示範一次!老師「示範」如何寫程式是很重要的!因為「寫程式」的過程不是只有鍵入程式碼而已,還包含很多的操作動作,所以我出程式設計書時都很排斥提供甚麼「教學投影片」,那是讓存心打混,甚至根本不會寫程式的老師呼攏學生用的道具!沒有最好!

很多「好」學校的「好」老師可能會對我這種「家教式」的教法嗤之以鼻!上課都講過了,學生課後自己回家練習就好了嘛!不是嗎?但是我知道學程式最困難的就是實作時卡關的除錯,在電腦教室上課時,看著學生出錯、幫學生除錯的過程非常重要!即使是聰明的學生也一樣!自己帶回家作,卡關時沒老師幫忙會浪費很多時間,可能會使用不好的方式解決問題,甚至對程式錯誤的原因產生錯誤認知!

沒騙你!我真的這樣教了很多年,確實有效的!第一個現象是極少人蹺課,第二是沒人抱怨我的課很難!最終多數對此行業有興趣的都能找到寫程式或網頁的工作,我還可以精挑細選幾個學生到我自己的公司上班!

信我者學生一定不蹺課!

(欸...當然還是會有特例,但真的很少很少啦!)

延伸閱讀:遇到天才型學生怎麼辦?

( 心情隨筆校園筆記 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=48118071