學生選擇軟體工具的自由

(刊載於 2002 年 11 月號 Linuxer 雜誌)


我收到一封信, 覺得很同情這些同學的處境。 如果念大學時遇到相同的狀況, 我的反彈恐怕只會更激烈。 以臺灣現在的資訊教育來看, 很可能有其他同學有相同的困擾, 於是徵得作者的同意將信件與回答刊出。

洪老師 您好:

我們是台灣某大學及技術學院的資管系學生, 因為我們在資訊領域的學習上, 遇到了一些 " 政策性 " 的挫折, 令我們感到很無力, 在幾經考慮之後, 我們覺得有需要和您溝通, 因為您在台灣對自由軟體的推廣是大家有目共睹的。 我先稍微說明我們所遭遇到問題。

學校老師要求我們使用 MS-WINDOWS 98, MS-OFFICE 2000, ASP, VB... 等MS的專屬軟體, 想當然爾, 考試也是考這些東西。 但是, 因為我們平常早已習慣使用 LINUX, FreeBSD, OpenOffice, emacs, Perl, postgreSQL, gcc... 等, 做為我們的開發工具及開發環境。 因此 我請老師允許我用 OPEN OFFICE 交作業, 用 Perl 取代 ASP, VB (取代VB可能比較有問題:) ), 用 postgreSQL 取代 access (有點兒大才小用), 但老師... " 不准 " 。

這令我們十分氣憤, 當然多學一些東西並不會怎樣, 但是這種 " 純操作 " 兼 " 封閉性 " 東西, 根本就沒有一定非學不可的必要性。 況且 又不是大家都閒著沒事做。

我們的重點在於, 資訊教育應該要教的是 " 標準 " , 是 " 理念 " , 而不是 " 操作 " , 舉例說明:

  1. 講 " 文書處理 " 應該是要說明 " 文書處理 " 所帶來的 " 方便性 " 及對文件帶來的 " 易讀性 " , 而不是規定你去學習使用 " MS-OFFICE " 。 難到用 OpenOffice 不行嗎??
  2. 講 " dynamic routing " 應該是要拿出 " RFC " 教 routing protocol 運作溝通的方式, 而不是規定你要將 W2K config 成 router, 或教你 config CISCO 的 router。 難道我不能用 Juniper 的 router, 或用 BSD, LINUX 的 router??
  3. 講 " LDAP " , 也應該拿出 " RFC " 講它整個的 schema 而不是拿著 W2K 在那裡 dcpromo。 我高興用 NOVELL 的 eDirectory。 BSD, LINIUX 的 OpenLDAP 你管我?? (當然他們沒辦法像 W2K 的 AD 一樣如此與 MS 的 clients " 連成一氣 " )
  4. 講 " C programming " , 應該只要講到ANSI C, 而不是規定你要用 visual studio。 你管我用 vi 或用 emacs 再用 gcc。 (我高興用手編 make file 你管我)
  5. 講商用程式設計, 應該是要教設計一個商用程式的 " 方法論 " , 而不是教你用 SQL Server + ASP + IIS, 你管我用 PostgerSQL + Perl + Apache ??

.
.
.
... 等等。

我們並不是反微軟, 但我們認為, 微軟只是選擇之一, 並不是唯一選擇。

因為我們實在已經找不到管道可以向學校上層反應(應該說是反應也沒用), 所以才出此下策發出這封 mail, 希望以您在社群中的 影響力能帶動整個教育界有所變革, 因為我們相信, 遭遇到這些問題的絕對不只我們而已。 順便請問您一個問題, 您是用 Open source 的 software 在上課的嗎? 若是如此, 重考去貴校就讀似乎是個不錯的選擇 :)

最後, 很感謝您抽空看完這封 " 抱怨信 " , 也請您給我們一些回應, 謝謝。

Have a nice day
(姓名刪除)

ㄟ, 你還真問對人了 :-) 我的意思不是說我有多厲害, 而是說我所扮演的雙重角色 -- 自由軟體推廣者, 與大學教師 -- 正好被你的問題一切為二, 互相衝突, 不得不「比較客觀」地作答。

大學教師很重視自己的自由, 特別是學術自由。 一般說來只有同系或教授相關科目的老師, 有權利稍微彼此建議對方的教學內容。 系裡面大致上只決定是否應該開某一門課? 至於更上層的院長/教務長/校長, 管的是學校的大方向, 幾乎不會去, 也沒有權利去干涉老師的教學內容及在學術/技術面上對學生的考試/作業要求。 所以嘍, 向學校高層反應是沒有用的; 向系主任反應或許有一點點希望可以修正方向, 但影響的多半不會是現在這位老師, 而是未來新聘老師的專長。 我們還是針對老師來談吧。

先用老師的角色說幾句話。 如果我教的是 perl + tk (其中 tk 是 GUI 工具箱, 兩者搭配不見得會輸給 vb) , 卻有幾位同學想用 python, ruby, tcl, 或 guile 搭配 wxWindows 交作業, 我也會覺得很為難。 即便我願意做額外份量的工作 (有些老師不好意思向學生開口計較教學工作量; 不過其實他們與其他任何行業的人一樣有權利計較) 這些額外的工作必然也將排擠我準備 perl (及其他課程) 的時間, 對其他同學並不公平。 有些課程的內容天生就難 「吾道一以貫之」, 選用一套軟體, 很自然就會排斥其他軟體 -- 換作你是老師想教 gtk+, 學生卻說我只會 qt 你為什麼要故意考我沒看過的函數, 相信你也會很無奈。 我舉的例子雖然都是自由軟體, 相信各位也都能夠將你對我的體諒與同理心推展至教非自由軟體的老師身上: 上課教 asp, 學生卻要交 perl 或 php 的作業給老師, 未免有些強人所難。

另一方面, 有些課程明明有超越單一工具, 放諸四海而皆準的原理, 甚至是國際公認的規範, 這時如果老師堅持必須使用特定工具, 不准學生使用符合這些公認規範的其他工具, 那真是 "曠安宅而弗居, 舍正路而不由, 哀哉!" 你舉的 C 語言正是這樣的例子。 老師有權利只教 MSVC (這樣的選擇好不好是另一個問題, 見下段), 有權利不學 gcc, 但是沒有理由拒收 ANSI C 的程式。 又如資料庫設計, 老師有權利用 MS SQL 上課, 有權利不懂 postgresql, 但是沒有理由拒收符合 ANSI SQL 的程式; 網頁製作, 老師有權利只教 FrontPage, 有權利不會 Mozilla Composer, bluefish 甚或 vim + tidy, 但是沒有理由拒收符合 w3c 標準的網頁。 如果發生上述不合理的狀況, 請先禮貌/客氣地向老師解釋你這麼做並不是故意要搗蛋, 也不會增加他的負擔; 其次可以拿這封信給他看; 再其次可以向系主任反應; 最後真的不得已只好去找當今臺灣的最大二勢力 -- 立委或媒體嘍 ;-) 對於圖利特定廠商的問題他們應該會有興趣的。

至於是否應該把 「鎖死在單一工具」 的技術列入必修課 (我假定你不會故意去選修這種課), 或是一門課程當中 「觀念/原理/公認規範」 與 「特定工具」 的比重應該佔多少比例, 則是一個比較主觀的問題。 C 語言課程中要有多少比例談 ANSI 語法; 又可以有多少比例專門談 MFC? 網路課程要有多少比例談通訊協定; 又應有多少比例拿某套作業系統作為實例? 這的確是屬於老師的學術自由, 找最大二勢力恐怕也沒有用。 我只能站在旁邊道德勸說: 同樣身為資訊教師, 我反對將太多 「特定工具」 的教材納入必修課程。 學學英文數學老師, 多教些可長可久的知識吧! [1] 特別要呼籲老師們, 對於這些能夠獨立思考的同學, 更加應該重視他們的想法, 在不影響你的教學負擔的前提下, 盡量安排課程內容與順序, 尊重學生選擇軟體工具的自由。 不然下次遇到我們要向學校/教育部爭取學術自由的時候, 你還能夠摸著良心開口嗎? 其身不正, 如正人何?

抱持與我相反意見的老師, 有一個出於善意而且很有力的理由: 教流行的軟體才符合業界的需求。 他們認為資訊教育不應過份走 「學術路線」 , 應該多走實用的 「工具路線」。 很少有人看出其實還有第三條比較類似學英文文法或數學四則運算的 「蹲馬步路線」 -- 例如你提的具有長遠不變特性/價值的 RFC 與 W3C recommendations, 又如 regexp [2], pipe, back quote 等等強調 "組合才是力量" 的工具 [3]。 我對業界談這些工具時, 往往被歸類為 「學術路線」 ("因為用滑鼠才符合人性/輕鬆/簡單/whatever 原則, 即使用滑鼠需要做重複性, 機械化的動作, 還是比 regexp 簡單"); 而對學術界的先進們談這些 "幾十年前就有" 的東西, 當然又會被歸類為 「工具路線」 的雕蟲小技。 在學界與業界都體認到第三條路線的重要性之前, 你所遇到的觀念衝突既不是你的錯, 也不是老師的錯。

你能做些什麼? 這個世界上有很多值得懷疑改進的社會價值觀, 我們可以選擇加入大眾的行列 (就跟著學 VB/IIS/ASP/... 吧) 也可以選擇跳脫它的影響範圍 (不要唸資訊系); 當然還有一條路: 我們可以選擇加入少數改革者的行列。 這是一條辛苦, 但可能很有成就感的路。 先要仔細想清楚, 確定我們的價值觀確實可以為社會帶來進步, 為自己直接或間接帶來好處。 然後只要把握不挑釁的原則, 準備好不在乎世俗短視眼光 (例如學業成績) 的心態, 就勇敢地用行動實踐我們的價值觀, 在狹隘成功標準之外的其他方面證明給大眾看吧。 各家廠商的工具不妨應付著學一點 (成績低一點就算了, 但可不能被當掉 :-); 老師要你交 .doc 檔, 何妨交醜醜的 .html 檔, 並且禮貌地告訴老師 你沒有錢買 office, 又不願意非法拷貝, 反正 word 也可以讀 .html 檔。 重要的是你可以把犧牲分數所省下來的精力, 用在我們共同認為有用的知識上面, 把考試不能鑑別, 作業無法展現的能力發揮在 競賽/證照/投稿/打技術工/貢獻自由軟體/演講/... 等等非關學業表現的方向。 就個人而言, 這可以對自己的未來有個交待, 彌補成績上的損失; 整體來說, 如果每位認同 「蹲馬步路線」 的人都這麼做, 我們的具體傑出表現, 正將是促成界業與教育界價值觀自然改變的力量。

你提到要來考朝陽, 讓我開心了好幾天。 我們當然特別歡迎有獨立思考能力, 不盲從的同學來朝陽; 不過重考對你而言未免要付出太大的代價。 如果是轉學或研究所就值得考慮了; 不過我也不一定有機會教到你, 或者當我的學生又可能有其他的缺點。 老天爺把每個人放在他現在的處境, 可能就是最適合他學習成長或發揮生命力量的位置。 尤其我們共同希望達成的目標, 是理念的推廣: 就像要散播種子一樣, 這件事正好需要大家分散在各地 -- 你留在你們學校, 說不定正好可以促成我去貴校演講, 更能夠讓多一些人知道 「蹲馬步路線」。 我相信未來的學生們在選擇軟體工具上面, 終將能享有更多自由的。 我們共同努力吧!

參考資料

  1. http://www.cyut.edu.tw/~ckhung/a/c015.php
  2. http://www.cyut.edu.tw/~ckhung/b/re/
  3. http://www.cyut.edu.tw/~ckhung/a/c013.php#combination