新聞言及Google前執行長批評臺灣軟體一團糟,資訊(軟體)教育出了甚麼問題呢?雖然軟體之重要是大家的共識,無須質疑。各級主管機關、學校、各系所都有相關的課程規範及實施計畫。但是,幾十年來,軟體教育的成效難以令人滿意。形成這種狀況的因素很多,譬如課程修改彈性不足以趕上資通訊應用快速發展的趨勢潮流、軟體技術發展速度遠比不上硬體發展速度等等。如果單純地只從軟體教育為出發點,以下的幾個論點也許是值得探討。
第一:程式設計不等於軟體開發
大部分的人會認為軟體就是電腦程式。但是,實際上軟體開發相關工作遠大於只是寫程式。電腦系統由硬體與軟體組成,硬體的功能由指令集限定;軟體是一串有先後邏輯順序的指令,可以導引硬體完成一個有目的的計算結果。程式的效用是嘗試把一個上述的邏輯順序充分表現出來,通常是先以文字或算術符號描述,最後再轉換成一串恰當的指令。程式設計大多著重在針對所給予的問題找出解題方法,而軟體開發可能是先要確定想要解決的問題是什麼,最後所要交付的開發成果是否可以被接受的預先評估等。簡單地說,如果只學習程式設計,對於提升軟體水準的期望是會成為失望的,因為程式設計只占軟體開發整體約20%的比重。
第二:學習程式設計不宜綁定程式語言
大部分的程式設計課程都是綁定某一種特定的程式語言。但是,不管用什麼程式語言,在同一臺電腦上最後產生的那一串有邏輯順序的指令都受限於硬體功能。就像要寫封信,重點是內容要能清楚說明寫信的目的;至於是要用中文寫或英文寫,那是另外的議題。學習程式設計的重點是演算法及資料結構,學習程式語言的重點是字彙及文法。程式設計的相關課程不需要指定程式語言,其意義就是學生可以使用任何喜好的程式語言進行程式設計。其實現代的資通訊應用環境非常發達,學習程式設計甚至不需要程式語言。譬如,在非資訊相關科系導引學生進入軟體領域時,可以從邏輯順序的概念出發,而電腦或手機上既有的應用軟體就是很好的工具。當要解決一個問題的時候,先用什麼、暫時得到什麼、再用什麼,最後可以得出結果。這裡所謂的問題不一定是數值運算,文字處理或多媒體相關運算都可以。
第三:缺乏真正熟悉辦公室應用軟體
辦公室應用軟體泛指文書處理、簡報製作、試算表等傳統個人電腦桌面工具。大部分的教師或學生都會說自己已經學過辦公室應用軟體,所以現在的大學沒有開設此類課程。但是,為了因應時代的進步,現在的辦公室應用軟體功能早已遠超過當初教師或學生學習時代的水準,而試算表是其中的典範。早期的試算表限制很多,有些功能必須另外用特殊程式語言寫程式處理;現在不需要,直接輸入公式或項目選單就可以完成。一般的日常事務大概都可以用試算表來完成所需要的計算。如果能夠掌握試算表的各種公式,包括算術、統計、資料搜尋、時間日期計算等,以及使用規則,那麼根本就不需要再學習程式語言,只要學習執行公式的邏輯順序就可以達到學習軟體概念的目的。文書處理及簡報製作工具也早已融入多媒體,包括圖形、影像、聲音、動畫等的應用,使用時都有著邏輯順序的概念。