自由軟體與資訊教育

刊載於 2001 年 12 月號 Linuxer 雜誌
(另有 講稿摘要版 內容大致相同, 但有更多圖示。)


以英文數學為師

小學數學的四則運算, 小括弧, 及小數與分數等約莫一打的符號, 為什麼這麼一點東西需要花兩年來教 (我們只算五六年級就好)? 其他時間都花到那裡去了? 另一方面, 為什麼這麼一點符號, 就可以讓小學生解決上百種不同的數學問題? 又為什麼我們三四十年前所學的小學數學知識, 到現在還沒有過時?

再看看英文教育: 有多少人背得出一百萬句英文句子呢? 另一方面, 要能夠寫出一百萬句英文句子, 需要很高深的英文程度嗎?

我們的數學教育與英文教育, 教的是 活的知識, 我們向學生強調活用, 強調思考, 強調 組合. 數學老師與英文老師知道, 死背公式與課文只是應付眼前考試的權宜之計, 不是培養解決問題實力的方法. 他們希望現在教的東西, 廿年後對學生還是有用.

反觀資訊教育, 我們明明知道軟體進步迅速, 淘汰率高, 但是我們的大眾資訊教育還是把焦點放在軟體本身. 對於可以用在不同軟體的觀念 (像是不同軟體之間如何交換檔案, 如何製作方便批次作業的純文字檔案, 文件的外觀與內容應該分開管理, ...) 不但不重視, 甚至避之唯恐不及, 說: 「一般使用者不是電腦專家或程式設計師, 不需要為了打文件而學這些複雜的觀念」 難怪電腦老師常常聽到學生抱怨 「長江後浪推前浪, 前浪死在沙灘上」 三年前流行的 vb, 現在就要退流行了, 更遑論十年前的電腦知識還能有幾分剩餘價值!

這真的是資訊人無可避免的宿命嗎? 筆者不苟同。 我們把資訊教育與軟體操作這兩件大不相同的事情給混為一談了, 這是問題的徵結所在。 資訊教育與軟體操作的分別在那裡? 且讓我們反過來回答, 試想如果將英文教育與軟體操作混為一談, 會有什麼後果。 也許洪朝貴會發明一部翻譯機, 它的選單包羅萬象, 從旅遊. 餐飲到談論政治都有。 使用者只要用中文選單一層層地選出自己想講的話, 翻譯機就會顯示出來, 並且念出來給老外聽。 教育單位以推廣英文教育之名, 規定全國中學英文以 「洪朝貴牌翻譯機」 為標準教材, 第一年學某幾個選單, 第二年學更多的選單... , 因為不必再學複雜的文法/單字/片語, 所以有更多原本英文學不好的人現在可以與老外溝通了, 全民英語程度因而大幅提升。

是嗎? 選單可以取代複雜的文法教學嗎? 文法太複雜, 應該只留給外文系的同學去學嗎? 我們應該因為某個廠牌的翻譯機功能眾多, 而將它訂為標準的英文教材嗎? 同樣的假設用於數學教育, 我們也要問: 如果公因數, 面積等公式都已收錄在類似的 「洪朝貴牌計算機」 裡面, 是否就表示我們可以用選單教學完全取代現有的中學數學, 告訴一般大眾你只要會按這個牌子計算機的選單就好; 複雜的輾轉相除法及梯形面積公式應該放到大學數學系的課本當中?

[洪朝貴牌計算機有許多方便的選單] [例如雞兔同籠問題只要輸入頭與腳的數目...] [就會跳出答案! 不要學線性代數了吧!]

資訊科技普及很久了, 要與英數教育緊密結合沒有技術上的困難; 但是沒有英文數學教育者會同意上述的歪理; 重視社會公義的老師們更不會同意教育部替單一, 特定的廠商推銷計算機或翻譯機。 選單應該是幫助我們偷懶的工具, 而不該是限制我們思考的框框, 更不該是強調思考活用的教育價值觀所選擇的教材主體。 筆者不反對借助方便的工具來輔助學習; 但是當教材淪落到只剩下 「使用特定單一廠牌的工具」 時, 就很危險了 -- 英文教育, 數學教育, 資訊教育都不該被 「去思考化」 。 大眾資訊教育與選單教育被代上等號; 英數教育幸而沒有, 這就是我們的資訊知識貶值迅速, 英數知識卻可新舊相乘的最大原因! [1] 說得更誇張一點, 這就是各行各業裡面都可以找到英數高手, 英數知識很自然地可以融入各行各業; 而資訊教育卻與其他行業格格不入的最大原因! 筆者建議做一個調查: 看看非資訊科系的電腦高手當中, 使用自由軟體與不使用自由軟體者的比率, 是否與一般人口中的比率大不相稱?

資訊素養的基礎

所有基礎數學教材, 都要處理代數運算式 (阿拉伯數字, 四則運算符號, 英文或希臘字母) 。 代數運算式具有公開, 普遍, 簡單等特性, 且為其他更複雜的數學運算式 (如抽象代數或微積分) 的組成基礎。 在電腦世界中, 有什麼東西同樣是公開而不為少數廠商所擁有, 普遍而不受限於少數作業平台, 簡單而不必藉助複雜軟體即可供人閱讀理解, 又是其他更複雜電腦資料 (如 xml 或程式原始碼) 的組成基礎呢? 顯而易見地, 純文字檔是最自然的答案。 如果說最基礎的數學教育應是如何處理代數運式, 那麼 最基礎的資訊教育自然應該是如何處理, 剪貼純文字檔

不過我說的 「剪貼」 指的不是用滑鼠 「剪下」 「貼上」 。 圖形介面 (GUI) 的操作固然簡單, 但是當我們發覺自己正用滑鼠重複做著某幾項規律變化的機械化動作時, 應該警覺地自問: 我是否把電鑽拿來當鐵鎚用? 是否正請一群車伕把汽車當三輪車在拉? 重複性, 機械化的動作, 不論是敲鍵盤或是按滑鼠, 都不該是人做的事, 否則就失去了使用電腦的意義, 就是在被電腦用, 而不是在用電腦。 想要更有效率地叫電腦替我們做這些事, 固然不像拉選單這麼簡單, 卻也遠不如設計 Java 程式那麼複雜。 Pipe, back quote, regular expressions [2] 三個觀念, 配合十來個簡單的 shell 指令 (我們不只在談論 *BSD或Linux, 即便是 MS Windows 下也可以使用) 很容易就可以取代大部份經常發生的規律變化滑鼠操作。 [3]

撰寫 shell script, 使用 regular expressions, 不是一門高不可攀的學問。 如果高中生有能力學習複合句與因式分解, 他當然也有能力可以學這些觀念。 能否運用純熟出神入化, 那是另一個問題。 今日的電腦, 就像阿拉丁神燈一樣潛力無窮 (至少那些不太當機, 不太受病毐影響的 *BSD 與 Linux 電腦是如此); 而我們也像神燈主人一樣有很多的願望。 如果神燈精靈無法達成主人的願望, 那麼 問題的瓶頸應不在兩者, 而在兩者之間的溝通管道 -- 如果我們堅持用無法組合的, 寫死的選單與精靈溝通, 而不願意學幾個簡單的阿拉伯造句原則來命令聽不懂中文的神燈精靈, 那麼我們就註定無法跳脫選單限制下的有限選擇空間。

筆者相信基本的 scripting 及 regexp 應該在大眾資訊教育中, 扮演更重要的角色。 [4] 至於那一種 scripting 語言才是最好的, 筆者沒有結論。 也許我們應該揚棄一元的價值觀, 承認不同的選擇有不同的好處, 而不需要再走回頭路, 認為一切都必須定於一尊?

尊重少數, 接納多元, 拒絕盲從

我們的社會正朝著多元化與自由化前進, 即便是學生, 在個人生活細節上的選擇也都越來越能夠受到各級教育機構的尊重。 從來沒有聽說過那一所學校, 指定學生家裡要購買特定廠牌的削鉛筆機, 計算機, 或是電話機。 但是為什麼有許多學校甚至是教育部的網站, 放置的是只有 IE 才看得完整的網頁, 提供下載的是只有 word 才可以讀的檔案, 使用的是只能在 Windows 下執行的教學軟體? 「因為大家都用 MS Windows, MS Word, 與 MS IE 啊! 」 這樣的答案不該出自一位負責任的教育者口中。 所謂的大家, 包含沒有經濟能力購買 Word 的學生嗎? 包含被你我間接逼迫去購買大補帖的學生嗎? 包含使用點字機的盲生嗎? 阻止學生選擇其他軟體, 鼓勵學生盲目追隨流行, 符合我們培養學生獨立思考能力的教育目標嗎? 我們的資訊教育, 教會大眾操作來自單一廠商的幾樣軟體, 卻賠上學生判斷, 選擇, 思考的機會。 感嘆 「句讀之不知, 惑之不解, 小學而大遺」 的韓愈, 不知會作何感想!

每一位資訊教師都有責任也都有能力參與改變現況。 如果我們希望培養出眼光長遠, 視野寬廣, 不盲從的學生, 如果我們希望學生日後能夠尊重少數, 接納多元, 那麼從今天開始, 你我就應該停止替單一廠商鼓勵盲從, 打壓其他選擇。 筆者有幾項具體建議:

  1. 請避免散發新版格式的 .doc 檔給學生, 以免無意間替特定的單獨一家公司強迫行銷, 或間接鼓勵學生非法拷貝。 [5]
  2. 請協助學校製作「無偏好網頁」, 留給經濟弱勢學生選擇使用舊電腦搭配文字瀏覽器 lynx 的權利, 也為使用點字機的視障生留下一點上網的權利。 [6]
  3. 教學時請盡量採用可以跨作業平臺使用, 可以與其他程式交換資料的軟體。

一位戒毐者 [7] 想要打破現狀, 改變習慣, 需要有極大的決心與毅力。 他知道改變要付出很大的代價; 但長遠看來, 不改變要付出更大的代價。 一個希望擺脫單一公司箝制, 希望能夠自由呼吸新鮮資訊的國家, 又何嘗不是如此? 宣導這些觀念, 又豈非我們資訊教育從業人員的責任? 你可以選擇繼續質疑一顆小螺絲釘如何能夠改變大環境; 也可以選擇不問成效, 只問良心, 加入我們扮演一顆稱職小螺絲釘的角色!

自由軟體時代的資訊人力結構

當然就像我們不敢期待一個長年受毒品戕害的人能夠在數天內戒癮一樣, 筆者也不敢期待台灣在數年內能夠跳脫 MS Word 與 MS Excel 等 「鴉片軟體」 [7] 的箝制。 但是我們教育從業人員有責任將眼光放遠格局放大, 思考一下: 需要幾個 Prometheus (普羅米修斯, 希臘神話中因偷火予人類而遭懲罰的天神) 才能夠點一整個行星的文明? 想一想如果當初原始人發現火的時候也來個 「版權所有, 拷貝必究」 [8] 那麼我們今天在那裏? 就像研究演算法的學者看長遠的趨勢 (asymptotic growth rate) 時不會被眼前短暫的假像所矇蔽一樣, 筆者很難不對自由軟體的未來勾勒一幅樂觀的前景 :-) 事實上在某些領域裏自由軟體早已成為世界各國的主流 -- 筆者不喜歡鼓吹盲從, 但迷信 IIS 的人確實應該認真思考一下為什麼 60% 的網站使用的是 apache 。

想像一個醫藥學知識受到智慧財產權 「保護」 的社會: 由於出售醫藥知識的利潤遠高於替病人一一門診, 社會菁英人力很自然地流向前者。 更由於替病人門診開處方要支付鉅額的權利金, 成本過高, 以至於這種行業根本無從存在。 如果突然出現幾位不計個人利益的神農氏, 自由散佈他們所發現的藥方, 醫藥就業市場當然要受到衝擊, 而醫藥教學的主力當然要從研究開發轉為診療分析。

[自由軟體時代的資訊人力結構] 當自由軟體的優點 (價格與穩定性只是所有優點當中的皮毛) 成為常識, 當版權私有軟體像出售火的商業模式一樣式微時, 資訊人力的就業市場必面臨衝擊 [9] 。 屆時我們的社會最大量需要的將是會思考/選擇/組合的使用者, 及懂得設定/體檢系統的管理員; 至於程式設計師的培訓應該重質不重量。

自由軟體時代, 最多數的大眾所需要的能力, 可能是如何 根據自己獨特的需求, 選擇適用的軟體 (making informed choices) , 因為同性質自由軟體之間的相容性, 像不同廠牌影音設備之間的相容性一樣, 遠比新舊版本 MS Word 之間的相容性要好, 因此我們大有理由期待一個遠比現在更多元化的資訊市場。 其次需要的, 可能是前述剪貼文字檔的能力, 也就是 scripting 。 熟練的 scripting 技巧再配合系統管理的知識, 是金字塔形人力結構更上一層的要件。 至於 C/Assembly 等等低階高速程式語言的撰寫能力, 並非不重要, 而是因為它們的困難度高, 市場需求較有限制 (與硬體結合的嵌入式系統或許是主力) , 應該留給真正對程式設計 (而不只是對利益) 有興趣的人。

我們目前的大眾資訊教育完全忽略甚至打壓自主性, 非盲從的選擇, 甚少提及 scripting ; 倒是職業訓練管道強調訓練 「拉選單」 的程式設計高手。 目前的資訊人力結構大約正好呈現一個倒立的金字塔。 更有甚者, 這些 「拉選單」 的語言不論是操作環境或是產生的執行檔, 都綁死在單一作業系統, 甚至綁死在同類編譯器當中的單一廠牌上。 即便是不談論自由軟體的未來, 單就國家人力資源及個人學習成就的投資報酬率來看, 都是相當不智而令人憂心的作法。

遠矚未來, 從俯拾黃金開始

以上所提到的問題, 不論是要鼓勵教/學可活用組合的知識, 或是要倡導尊重少數/接納多元, 答案都很自然地指向自由軟體 -- 它提供的不僅僅是跨平台, 跨語言的 regexp 與多元/可為身心障礙者調整的視窗環境等等 技術層面工具 , 更提供了一個鼓勵人性許多善良面的 心靈層面文化環境:

  1. 自由軟體的文化, 鼓勵使用者思考, 組合, 重複使用既有的軟體, 鼓勵使用者學習活的知識, 以簡馭繁。
  2. 自由軟體的文化, 鼓勵 擁有得多, 不如使用得巧 的心態。 [10]
  3. 自由軟體的文化, 鼓勵互助合作, 接納多元, 尊重少數的社會風氣。
  4. 自由軟體的文化, 鼓勵使用者對自己負責任, 花力氣或花錢請工程師解決問題, 而不是將一切過錯推諉至軟體研發者, 花力氣或花錢興訟製造問題.

何謂自由軟體的文化? 筆者如何能有這些結論? 網路上有許多介紹自由軟體理念及來龍去脈的網站與文章, 我們不在此贅述。 [11] [12] [13]

一個使用自由軟體教學的社會, 不僅會真正認識資訊教育的重點, 同時也會培養許多善良的社會風氣。 這些影響如此地深遠, 有待教育界的同仁 (不只是資訊教育) 共同來思考與關心。 諸如墨西哥, 法國等國家, 由政府出面鼓勵使用自由軟體來教學, 目前的動機或許主要是經濟考量, 但未來收獲必將遠超過這一點。

[也請看看有那些事情是自由軟體能做而版權私有軟體不能或不方便做的?]

反觀我們各級學校仗著國家財力雄厚, 拼命向政府爭取軟體經費; 對於品質好, 價格低的自由軟體不屑一顧, 現在看來臉腫得很, 胖得好看; 但十年廿年後, 我們訓練出來的拉選單高手將憑什麼與外國人競爭呢? 我們這些自由軟體長期的使用者, 都了解到比起只開發百分之五的人腦, 網上隨處可拾的自由軟體更像是開發不足千分之一的遍地黃金。 我們迫切地希望教育單位能夠勸導社會大眾 (不是只有資訊相關科系! ) 願意虛心地彎下腰來俯拾黃金 (或至少低下頭來看看地上有什麼東西) 。 自由軟體不是萬靈丹, 我們不否認有一些事情用 MS Windows 做起來比用 GNU/Linux 更方便; 我們只呼籲大家同時也看看對稱的另一部分: 有那些事情是自由軟體能做而版權私有軟體不能或不方便做的? 使用版權私有軟體的社會與使用自由軟體的社會相較, 更有多少競爭力與安詳快樂感在無形之中喪失在上述的文化落差當中呢? 十年樹木, 百年樹人, 希望所有教育界的同仁能夠將眼光放遠, 視野放大, 共同深思台灣資訊教育長遠的未來。

參考資料

  1. http://www.cyut.edu.tw/~ckhung/a/c013.php
  2. http://www.cyut.edu.tw/~ckhung/b/re/
  3. http://www.cyut.edu.tw/~ckhung/b/gnu/combination.php
  4. http://linuxtoday.com/news_story.php3?ltsn=1998-12-24-003-05-OP "Unix as an element of literacy" 及 http://www.osviews.com/modules.php?op=modload&name=News&file=article&sid=1084 "Death to the Wizards!" 兩篇有類似的看法.
  5. http://www.cyut.edu.tw/~ckhung/a/c041.php
  6. http://www.cyut.edu.tw/~ckhung/a/c014.php
  7. http://www.cyut.edu.tw/~ckhung/a/c010.php
  8. http://www.brunching.com/copyfire.html
  9. http://www.cyut.edu.tw/~ckhung/a/c_92.php
  10. http://www.cyut.edu.tw/~ckhung/a/c_80.php
  11. http://www.softwareliberty.org.tw/
  12. http://www.gnu.org/philosophy/
  13. http://www.opensource.org/

自由軟體與教育 (不限於資訊教育) 的相關網站:

  1. SchoolForge 自詡為校園軟體自由化的入口, opensourceschools 是它的新聞子群組, 匯聚了許多關心自由軟體教育的人氣. 也許從它的 成員組織 (涵蓋世界各地校園軟體自由化的推廣組織) 裡面選一個參與, 會比較有著力點. 例如我個人最常到下面這個網站去找資料:
  2. Simple End User Linux (SEUL) 的教育子群組 以通信論譠起家, 整理列表許多教育相關軟體. 現在更有校園軟體自由化的案例報導, 以及世界各國校園軟體自由化的網站列表.
  3. k12ltsp 基於 Linux Terminal Server Project, (無磁碟機環境) 除了提供安裝及設定的經驗之外, 也有案例報導.
  4. Linux For Kids 搜集給小朋友玩的教育類遊戲.
  5. Scientific Applications on Linux 搜集豐富的科技/工程類軟體, 特別推薦給高等教育科技類的老師.
  6. Organization for Free Software in Education and Teaching (OFSET) 的目標是在教育界推廣自由軟體. 目前最主要的貢獻是將 knoppix 為教育界改裝設計出來的免安裝 linux 光碟片 Freeduc CD。 同樣一個計劃, 在 sourceforge 的家
  7. 自由軟體基金會也有一個專門討論教育的網頁: GNU and Education
  8. 上述網站有許多是筆者從 slashdot 上的「問客答」 Has Free Software Saved Any Schools? 當中搜尋 "Score:5" 的文章找到的.