跳轉到內容

FOSS 教育/使用 FOSS 教授 IT

來自 Wikibooks,開放世界中的開放書籍

在前面的部分中,我們探討了 FOSS 在教育機構建立 IT 基礎設施以及用於行政功能中的應用。在本節中,我們將考察 FOSS 在 資訊科技 教學中的作用。目前,大多數用於 IT 教學的軟體,包括用於教授計算機素養的基本生產力軟體、程式設計課程的編譯器和關係資料庫管理系統,都是專有的。然而,有一些可用的 FOSS 等效項,可以作為合適的替代方案。除了節省成本之外,在 IT 教學中使用 FOSS 還有其他優勢。

計算機素養

[編輯 | 編輯原始碼]

在最基本的層面上,IT 教學涉及傳授計算機素養。 計算機素養 表示已獲得使用計算機完成常見任務的技能。這意味著熟練使用常見的桌面應用程式,例如文字處理器、電子表格、電子郵件客戶端和 Web 瀏覽器。表 1 中的技能被認為是必不可少的。技能列表中的順序並不代表其重要性,並且隨著技術的不斷發展,順序也會發生變化。技能的相對重要性也會因個人而異。

計算機 素養不僅應教授給學校的學生,還應教授給可能在早期學校教育中沒有獲得這些技能的大學生。人們普遍認為,如今的大學生無論其學習領域如何,都應具備計算機素養並擁有使用桌面應用程式完成學業工作的技能。在一些大學,會開設 計算機素養 課程,以確保學生掌握這些技能。在其他大學,可能沒有正式課程,學生需要自學。無論如何,計算機素養 專案通常使用主流的專有軟體。即使在低級別的教育階段,也很常見的是,學生在計算機素養課程中學習使用 Microsoft WindowsOffice

表 1 IT 技能
1. 設定個人電腦
2. 使用基本 作業系統 功能
3. 使用 文字處理器
4. 使用圖形和/或藝術軟體包
5. 將計算機連線到網路
6. 使用 網際網路
7. 使用計算機進行通訊
8. 使用 電子表格
9. 使用 資料庫 系統
10. 使用新應用程式的教學材料

(來源:美國國家研究委員會資訊科技委員會報告) [1]

然而,這種 計算機素養 教學方法存在兩個問題。首先,使用特定版本的 專有軟體 的技能通常是短暫的。即使學習同一供應商的新版本軟體會更容易(相對於學習全新的軟體),但仍需要重新培訓,除非使用者能夠自學。為了使學生能夠學習、遺忘和重新學習,應採用不同的計算機素養教學方法。重點應放在不依賴於特定供應商的軟體的通用技能上。

使用特定 專有軟體計算機素養 課程中的第二個問題是,它鼓勵非法複製軟體。學生需要使用學校或大學提供的相同軟體來完成作業和練習,導致他們中的許多人在家或筆記型電腦上使用非法副本。受資金限制的學校和機構甚至可能會在為學生提供計算機素養培訓的熱情中使用非法副本的專有軟體。

在計算機素養教學中,使用哪種作業系統、文字處理器、電子郵件客戶端、Web 瀏覽器和電子表格並不重要。 GNU/Linux 以及相應的 圖形使用者介面 (GUI),例如 GNOMEKDE,是一個可以用來教授作業系統基本功能的 FOSS 作業系統

LibreOffice 7.2.4.1 Writer
LibreOffice 7.2.4.1 Writer、Calc、Impress 和 Draw

LibreOffice 包含 文字處理器電子表格演示 和繪圖程式,可以替代專有的等效程式。它足以教授辦公室生產力軟體中可用的基本功能。其他 FOSS,例如 Abiword 文字處理器或 Gnumeric 電子表格,也可以在需要時用於計算機素養課程。

為了教授學生如何訪問網路或使用電子郵件,可以使用 FOSS 應用程式 Mozilla。同樣,Mozilla 的功能與 Windows 附帶的瀏覽器和電子郵件客戶端相當,對於計算機素養課程來說應該足夠了。

FOSS 資料庫 系統 MySQLPostgreSQL 功能齊全,肯定可以用來教授資料庫系統的基礎知識。這些資料庫的 GUI 可能不如專有的等效程式那麼人性化,但這不應該是學習基本原理的障礙。

美國的一位計算機科學老師 Michael Surran 說道:[2]

人們有時會問我,“教我們的學生使用 Linux 能否讓他們為職場做好準備?” 這個問題基於這樣一個事實,即 Microsoft 目前是作業系統和辦公軟體領域的霸主。我思考這個問題很久,最終的答案是,“當然可以。” 任何型別 作業系統、辦公應用程式或其他類似分組軟體的基本原理都是一樣的。一個精通 Linux 的學生不會在 Windows 環境中迷路。我發現 Linux 比這兩種 作業系統 更先進,但我們的學生卻能很快、很輕鬆地學習。複製檔案或格式化段落的流程在不同的作業系統之間並沒有太大區別。

將 FOSS 軟體作為 計算機素養 課程的基礎,還可以為學校或大學節省成本。它無需確保購買足夠的許可證,因為 FOSS 軟體可以在任何必要的計算機上合法安裝。學生也可以在自己的計算機上無限制地安裝 FOSS 軟體,無需為了在校外完成學業而非法複製專有軟體。更重要的是,這將鼓勵在教學中強調基本原理和概念,避免對特定供應商的專有軟體進行狹隘的接觸。

但是,在老師和講師能夠勝任使用這些軟體進行教學之前,可能需要對他們進行使用 Linux 和 FOSS 的培訓。需要修改課程,並且需要付出一些努力來開發合適的教學材料。

計算機素養 通常是學校教授學生 IT 的主要重點。這將使他們具備使用計算機來增強學習、訪問 網際網路、使用電子郵件等等的能力。

但正如之前強調的那樣,這不應該侷限於教學生使用特定的專有軟體。沒有接觸過計算機的學生更有可能接受 Linux 和 FOSS,並且最好儘早開始使用 FOSS。

例如,出於教學目的,FOSS 在 澳大利亞 的一些非政府學校被引入。這些學校的學生培養了使用 IT 的能力,而不假定計算只能基於一個主要的計算平臺。在 悉尼英格蘭教會女子文法學校 的教師有意讓學生接觸不止一套辦公應用程式,讓他們有機會使用 FOSS 和 專有軟體,並加深他們對這些應用程式原理的理解。[3]

除了使用 FOSS 教授 IT,還有很多可用於在學校教授非 IT 科目的 FOSS。其中一些在第二章中提到,並且還提供了此類教育軟體的線上資源。

高等教育

[編輯 | 編輯原始碼]

程式設計

[編輯 | 編輯原始碼]

學習如何編寫計算機程式總是 計算機科學資訊科技 課程的一部分。它也經常教授給其他學科的學生,因為他們可能需要為自己的專案或研究工作開發一些計算機程式。

從根本上說,選擇作為教授程式設計概念基礎的 程式語言並不重要。在 Linux 平臺上,有許多可用於此目的的計算機語言。 GNU 編譯器集合 (GCC) 是一組程式語言編譯器,包含在大多數 Linux 發行版 中。它目前支援 CC++Java 等計算機語言。正在努力新增其他語言,如 PascalCobol。此外,還有其他可用的計算機語言編譯器,例如 BASIC 語言的方言。

許多教育機構目前將其程式設計課程建立在 Windows 平臺上,導致對專有程式設計工具的依賴。這些工具通常以 整合開發環境 (IDE) 的形式出現,它簡化了程式設計中涉及的一些任務。但是,FOSS 平臺上也有一些可用的 IDE,例如 KDevelop (http://www.kdevelop.org),這些 IDE 可以替代專有工具。

原始碼可用性

[編輯 | 編輯原始碼]

在更高階的階段,FOSS 原始碼的可用性將促進程式設計教學。學習如何編寫優質計算機程式的最佳方法是研究其他人編寫的程式碼,尤其是真實的、高質量的程式。以寫小說為例:如果作者沒有讀過他人的大量作品,他就不能指望寫出好小說。相比之下,程式設計師被期望僅僅透過掌握特定計算機語言的語法和結構來編寫程式,而沒有多少機會學習他人編寫的優質程式碼。

過去,缺乏可供所有人檢視和研究的真實、高質量的原始碼。專有軟體的原始碼作為商業秘密受到保護,很少公開發布。FOSS 公開了數千個程式的原始碼,其中一些在各自的領域處於市場領先地位。FOSS 原始碼可用性的重要性及其在軟體開發能力建設中的關鍵作用仍然沒有得到廣泛的認可。

大多數 FOSS 使用者對檢視原始碼沒有興趣,他們也沒有必要這樣做。但是,在教授學生程式設計的地方,應該利用原始碼的可用性來增強教學和學習。例如,在為 IT 課程完成的程式設計專案中,可以鼓勵學生研究可用的原始碼,並透過新增功能或改進來構建它。如果他們準備充分,他們甚至可以向 Sourceforge.net 上託管的各種 FOSS 專案提交程式碼貢獻,例如。

FOSS 中使用的程式語言

[編輯 | 編輯原始碼]

雖然在基礎階段使用哪種 程式語言作為教學基礎並不重要,但在更高階的階段,機構應該教授與學生未來工作相關的語言。如果學生從事軟體開發職業可能參與 FOSS 專案,那麼課程設計應考慮這一點。

表 2 FOSS 專案中使用的計算機語言
程式語言 專案數量 專案百分比
C 12,329 19.3
C++ 12,173 19.0
Java 10,594 16.5
PHP 8,023 12.5
Perl 5,141 8
Python 2,873 4.5

(來源: http://sourceforge.net)

表 2 列出了 FOSS 專案中使用的計算機語言,這些語言包含在截至 2003 年 12 月的 SourceForge (http://sourceforge.net) 儲存庫中。

許多其他語言正在用於開發 FOSS。我們只在上面的列表中包含了前幾位。 CC++ 主要用於 FOSS 專案。但是, JavaPHPPerlPython 的使用正在增長。C 和 C++ 已經在傳統的計算機科學課程中普遍教授。隨著 Java、PHP、Perl 和 Python 的重要性日益增加,應該加大力度將它們納入 IT 課程。

軟體工程

[編輯 | 編輯原始碼]

FOSS 開發方法

[編輯 | 編輯原始碼]

隨著 FOSS 的重要性日益增加,軟體工程的教學應該進行修改,以考慮開發 FOSS 中使用的流程和方法。

在埃裡克·雷蒙德的論文《教堂與集市》中,埃裡克·雷蒙德 描述了開源軟體開發的特點,並解釋了他用兩個比喻來比較傳統軟體開發(教堂模式)和開源軟體開發(集市模式)的方法。

我曾認為,最重要的軟體(作業系統以及像 Emacs 這樣的大型程式設計編輯器)應該像教堂一樣,由個別的天才或一小群魔法師精心製作,在完美的隔離狀態下工作,絕不釋出未完成的版本。

林納斯·託瓦茲 的開發風格——儘早釋出,頻繁釋出,儘可能地委派任務,開放到近乎放蕩——讓人感到驚訝。這裡沒有安靜、莊重的教堂建造——相反,Linux 社群看起來更像是一個喧囂的集市,充滿著不同的議程和方法(Linux 檔案網站就是最好的象徵,任何人都可以提交程式碼),從這種混亂中,一個連貫而穩定的系統似乎只能透過一系列奇蹟才能出現。[4]

一個開源軟體專案通常是由於開發者自身的需要而開始的。他們會將軟體開發到基本功能可以使用的地步,然後將其作為開源專案釋出到社群。這個程式可能存在很多 bug、不完整且文件不足。但至少它能夠執行,並且能夠說服潛在貢獻者相信它在不久的將來有望發展成為一個好的軟體。這將吸引其他對解決相同問題感興趣的開發者加入到這個專案中,為專案做出貢獻。但是,開發並不總是從頭開始的。事實上,許多成功的專案,比如 Apache,都是建立在現有的部分解決方案上的。值得注意的是,在集市模式下,專案不能從頭開始。

與專有軟體專案不同,開源軟體專案會在可用的第一時間釋出。只要軟體有修改,就會發布更新版本。 “儘早釋出,頻繁釋出”是開源軟體專案的一個重要特徵。透過這樣做,更多的使用者可以在不同的環境下參與到軟體的測試中。如果存在任何 bug,它們將被迅速發現並修復。原始碼的可用性使使用者能夠成為共同開發者,因為他們可以修復 bug,而不僅僅是報告 bug。相比之下,專有軟體需要由一小群付費開發者透過 beta 測試流程來修復報告的 bug,這需要更長的時間。

這種開發模式並非完全沒有結構,尤其是對於大型專案而言。例如,Linux 具有層次結構,基於 林納斯·託瓦茲 對不同人員的責任委派。他們分別負責和管理 Linux 的不同部分,儘管林納斯·託瓦茲將擁有最終決定權。開源軟體專案高度的模組化帶來了特殊的組織和決策流程。通常,開源軟體開發模式往往更加非正式,因為開發者自願工作,沒有直接的經濟收益。

如今,開源軟體專案通常依賴於用於問題跟蹤、原始碼管理、設計、自動化測試以及打包和部署的工具。 併發版本系統 (CVS) 是開源專案中最廣泛使用的版本控制系統。它的特點包括一箇中央伺服器,其中包含最新版本的軟體,使任何人都可以透過網際網路訪問。CVS 可以配置為在每次更改時向專案開發者傳送電子郵件通知,以便他們可以測試和審查新的原始碼。Bugzilla 是為了在 Mozilla 專案中進行問題跟蹤和技術支援而開發的。現在它被許多開源軟體專案使用。

開源軟體開發方法在很多方面都不同於傳統的軟體工程。一些研究人員發現,開源軟體開發方法“可能比企業環境中常用的教科書式軟體工程更快、更好、更便宜”。[5] 然而,他們並沒有得出結論,認為非常大型和複雜的軟體應用,例如針對小型市場的定製航空行業軟體,可以使用開源軟體模型進行開發;對於這些軟體,可能仍然需要傳統的軟體工程方法。

腳註

[edit | edit source]
  1. “熟練掌握資訊科技”,美國國家研究委員會,資訊科技委員會,國家科學院,1999 年。
  2. Surran, M., “從幼兒園到高中學習 Linux”,Linux Journal,2003 年 2 月;可從 www.linuxjournal.com/article.php?sid=6349 獲取。
  3. Moyle, K., “開源軟體與澳大利亞學校教育”,2003 年 8 月;可從 www.educationau.edu.au/papers/open_source.pdf 獲取。
  4. Raymond, E., “教堂與集市”,2000 年;可從 http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ 獲取。
  5. Hart, D., “更快、更好、更便宜:開源實踐可能有助於改進軟體工程”,NSF 新聞稿,NSF PR 03-132,2003 年 12 月。
華夏公益教科書