国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

開源技術(shù)
——大學計算機專業(yè)的一門重要課程

2019-12-05 00:23寧,曾
計算機教育 2019年3期
關(guān)鍵詞:開源軟件課程

李 寧,曾 錚

(北京信息科技大學 計算機學院,北京 100101)

1 為什么開源技術(shù)應作為大學計算機專業(yè)的一門課程

目前,世界上開源社區(qū)已有一百多萬個,開源項目有數(shù)十萬個,開源代碼已超過一億行。隨著開源軟件的迅速發(fā)展,開源軟件與我國軟件產(chǎn)業(yè)的融合日益加深。開源模式因其開放共享、社區(qū)協(xié)同、持續(xù)演化的特點,使得開源軟件種類豐富、質(zhì)量穩(wěn)定,成為我國構(gòu)筑安全可控軟件體系的重要支撐,同時也成為信息技術(shù)創(chuàng)新發(fā)展的動力源泉。發(fā)展開源軟件因此成為我國信息產(chǎn)業(yè)發(fā)展的重要戰(zhàn)略舉措之一?!丁笆濉眹覒?zhàn)略性新興產(chǎn)業(yè)發(fā)展規(guī)劃》提出要大力發(fā)展基礎(chǔ)軟件和高端信息技術(shù)服務,面向重點行業(yè)需求建立安全可靠的基礎(chǔ)軟件產(chǎn)品體系,支持開源社區(qū)發(fā)展?!丁笆濉眹倚畔⒒?guī)劃》和《國家信息化發(fā)展戰(zhàn)略綱要》都提出要支持開源社區(qū)創(chuàng)新發(fā)展,鼓勵企業(yè)、科研機構(gòu)、社會組織和個人積極加入國際重大核心技術(shù)的開源組織。

盡管有國家政策和產(chǎn)業(yè)需求的推動,開源軟件在我國仍然遇到很多問題。人們對開源軟件存在種種誤解,如開源軟件意味著免費和安全、開源軟件經(jīng)過修改就可以成為自主可控的國產(chǎn)軟件、集成開源軟件的產(chǎn)品可以作為商業(yè)產(chǎn)品來銷售等。不久前,在Chrome內(nèi)核上開發(fā)的紅芯“自主可控瀏覽器”飽受社會質(zhì)疑就是一個典型的案例。此外,長期以來,我國對開源軟件界的貢獻較少,但用得很多,與國際接軌的主流開源社區(qū)也寥寥無幾。據(jù)統(tǒng)計,我們有37%的企業(yè)通過修改開源軟件開發(fā)自己的產(chǎn)品,但有84.8%的企業(yè)從未打算將產(chǎn)品開源;有43.5%的技術(shù)人員不具備開發(fā)開源軟件的能力,有32%的人不知如何參與開源項目[1]。這些現(xiàn)象說明,一些行業(yè)主管、技術(shù)開發(fā)人員乃至普通用戶尚未樹立起正確的開源意識,急需開展開源人才的教育培養(yǎng)。

在計算機相關(guān)專業(yè)中提倡開設開源技術(shù)課程,主要有以下幾點理由。

1)社會需要。

目前,我國軟件產(chǎn)業(yè)仍處于方興未艾的發(fā)展階段,無論在產(chǎn)業(yè)規(guī)模還是技術(shù)水平方面都與先進國家存在相當大的差距。充分利用好開源資源是實現(xiàn)我國軟件產(chǎn)業(yè)跨越式發(fā)展的重要途徑。開源軟件凝聚了數(shù)十年世界范圍內(nèi)大量開發(fā)者的成果,充分地學習、研究以及合理地利用這一資源寶庫,無疑對技術(shù)創(chuàng)新和加速提高我國軟件業(yè)的水平都具有重要作用。

2)產(chǎn)業(yè)公平競爭的需要。

20年前國外高校的計算機專業(yè)已經(jīng)普遍使用開源軟件進行教學和實踐,很少使用商業(yè)軟件,而當前在我國高校還在普遍使用商業(yè)軟件[2],這樣必然導致學生就業(yè)之后仍然熱衷使用在校學過的或用過的商業(yè)軟件,對于未來軟件市場的公平競爭十分不利。應在大學教育階段,提倡學生使用開源軟件,以減少商業(yè)軟件的影響,打破壟斷,為振興民族軟件產(chǎn)業(yè)創(chuàng)造條件。

3)IT從業(yè)人員素質(zhì)的需要。

今天,社會上一些人批評我們的大學培養(yǎng)了很多“精致的利己主義者”,其實不止大學,很多研究機構(gòu)和企業(yè)也不能做到與社會共同分享研究成果。在很多科研項目結(jié)束之后,成果被束之高閣,浪費了大量的科研經(jīng)費,對產(chǎn)業(yè)的貢獻十分有限。我們需要從大學開始培養(yǎng)未來IT從業(yè)者樂于奉獻的精神和開闊的胸襟。

4)人才培養(yǎng)的需要。

據(jù)統(tǒng)計,今天80%新出現(xiàn)的軟件產(chǎn)品含有開源代碼,98%的全球化企業(yè)在使用開源軟件,開源軟件的大規(guī)模應用,導致開源人才的匱乏。據(jù)《2018開源職業(yè)調(diào)查報告》,83%的企業(yè)急于招聘開源人才(2017年為76%),87%的企業(yè)難以招到足夠的開源人才[3]。大學畢業(yè)生是開源最重要的有生力量,我們需要及早預見這種趨勢,做好人才儲備。

5)開源的體系是軟件開發(fā)技術(shù)課程不可或缺的內(nèi)容。

眾所周知,解決“復雜工程問題”能力是工程教育本科專業(yè)的本質(zhì)要求,也是我國高等院校本科工程專業(yè)達成工程教育認證要求的重點和難點。開源軟件從理念到方法已經(jīng)形成了成熟的體系,為培養(yǎng)學生解決“復雜工程問題”的能力提供了良好的條件。目前,凡是可以“從頭發(fā)明輪子”解決的問題已經(jīng)不能算“復雜工程問題”了,開源軟件可以幫助學生在前人的成果上準確定位問題,尋找有效工具,獲得技術(shù)幫助以及評價實驗結(jié)果。

綜上,無論從上述哪個角度看,開源技術(shù)都應該作為大學計算機專業(yè)的一門重要課程。

2 開源技術(shù)課程的教學目標和內(nèi)容

目前,開源教育普遍關(guān)注的是如何將開源軟件和開源社區(qū)的資源應用于教學和實踐環(huán)節(jié)[4-6]。筆者認為這是遠遠不夠的。文獻[1]認為開源人才的教育要注重開源文化的教育、開源意識教育和開源技能教育,這是很有見地的觀點。

北京信息科技大學自2007年開始設置“開源軟件開發(fā)技術(shù)”課程,該課程為計算機類專業(yè)任選課。經(jīng)過10年的改進完善,該課程受到各年級學生的好評,積累了一定的經(jīng)驗,筆者愿意在此與讀者分享,以期拋磚引玉。

“開源軟件開發(fā)技術(shù)”課程的目標定位是通過這門課程的學習,使學生了解開源軟件的理念、授權(quán)協(xié)議和開發(fā)方法,了解開源項目的特點,掌握開源軟件生命周期要素,了解開源軟件開發(fā)過程管理模型、系統(tǒng)分析與設計的原則和方法;善于吸取開源軟件成功的經(jīng)驗和失敗的教訓,學會利用開源資源從事科學研究。從畢業(yè)要求的角度出發(fā),學生應具備達到以下幾方面能力:能夠開發(fā)、選擇與使用恰當?shù)拈_源技術(shù)、資源和工具,用于解決復雜軟件工程問題,并能夠理解其局限性;具備開源文化下的人文社會科學素養(yǎng)和社會責任感;具備組織與參與實際開源項目的能力,具有所需的溝通交流的基本技巧與能力,良好的口頭與書面表達能力,有效表達自己思想與意愿的能力、傾聽與理解他人需求和意愿的能力,適應工作與人際環(huán)境變化的能力。

1)課程理論部分的主要內(nèi)容和基本要求。

(1)引論,包括開源軟件與自由軟件的概念,開放源代碼許可證的類型與含義,開源軟件的發(fā)展。通過本章的學習,學生應掌握開源軟件的定義,GPL和BSD等重要許可證的內(nèi)涵,理解開源軟件的意義、優(yōu)勢和局限性,了解重要的開源軟件發(fā)展過程。

(2)開源開發(fā)的動力,包括開源開發(fā)人員的年齡、職業(yè)和收入情況,開源開發(fā)者的地區(qū)分布和貢獻大小,開源開發(fā)的動機及其產(chǎn)生的影響。通過這部分的學習,學生應了解開源成功的內(nèi)在因素。

(3)開源開發(fā)的模式,包括“大教堂模式”和“市集模式”的區(qū)別,開發(fā)團隊的組織和協(xié)作方式,開源項目管理方法,開源軟件開發(fā)、測試、維護和發(fā)布過程。通過這部分的學習,學生應了解開源開發(fā)的特點,開源社區(qū)的作用,以及傳統(tǒng)軟件開發(fā)方法與開源軟件開發(fā)方法的相互借鑒和影響。

(4)開源軟件的編碼規(guī)則,包括開源開發(fā)中用到的命名規(guī)則、編程風格、常用語言、工具和平臺,文檔編制規(guī)范,開源開發(fā)的注意事項。通過這部分的學習,學生應掌握開源開發(fā)的基本要領(lǐng)。

(5)開源開發(fā)的商業(yè)推動,包括商業(yè)公司參與開源的動機、策略、方法、現(xiàn)狀與前景。通過這部分的學習,學生應理解開源陣營與商業(yè)公司從對立、對抗到合作共贏的原因,了解開源的盈利模式。

(6)重要的開源資源,包括重要的開源產(chǎn)品、社區(qū)和托管網(wǎng)站,重要的開源活動,開源的現(xiàn)狀與發(fā)展趨勢。通過這部分的學習,學生應了解開源的熱點項目,學會如何發(fā)現(xiàn)和利用開源資源,并做好參與開源開發(fā)的準備。

2)課程實踐部分的主要內(nèi)容和基本要求。

(1)分析一個典型的開源軟件及其開發(fā)過程,撰寫分析報告。通過這部分的學習,學生應學會如何了解和評價一個開源項目,掌握文檔和代碼的閱讀能力。

(2)設計、構(gòu)建一個開源軟件項目解決實際問題,包括項目計劃、網(wǎng)站建設、資源庫設計、配置管理、編程開發(fā)和文檔編制等。通過這部分的學習,學生應初步具備通過開源實踐解決復雜工程問題的能力。

“開源軟件開發(fā)技術(shù)”課程理論聯(lián)系實際,受到學生的普遍歡迎。課程中筆者融入了實際的開源開發(fā)經(jīng)驗,例如,2007—2015年筆者與北航等高校在Source Forge上完成了一個大型的開源項目——UOF/OOXML文檔格式轉(zhuǎn)換器,被微軟評價為世界上最好的格式轉(zhuǎn)換器之一,類似成果被用在教學內(nèi)容里。筆者還邀請了一些熱衷開源的學生擔任課程的助教。這門課各年度教學效果評價均為優(yōu)秀,選課人數(shù)逐年增多,95%左右的學生認為課程很有收獲。以下是部分學生對課程的反饋,“在學習本課程之前,雖然也聽說過開源軟件,也在使用多款開源軟件,但我對開源軟件的了解也僅限于開放源代碼和免費。我學習本課程的最大收獲便是對開源軟件有了比較系統(tǒng)全面的認識,也讓我開始重新審視開源軟件”“這門課為我對就業(yè)的認識加深了一個層次。了解了開源的一些好處后,在以后的職業(yè)生涯中我也會參加一些開源程序的開發(fā)”“課程豐富了我的知識,增長了我的見識,尤為重要的是介紹給我開源的思想。開源思想對技術(shù)、知識的交流傳播起到重要的作用?!薄伴_源軟件是一個新的名詞,在讀大學之前我對它從來都沒有接觸過,我覺得對于一個軟件工程的學生來說,選修這門課程是非常有必要的。希望能夠在將來更深入地學習編程,真正進入到開源的陣營中去,為開源的發(fā)展增添一份力量”。

由于精簡課時的原因,這門課課時很短,共16學時,其中講課10學時,實踐6學時。以往這門課主要以講授為主,學生在反饋中提出:希望課上有更多的機會讓他們深入實際的開源項目。筆者正在對課程進行改革:今后將通過問題引導的方式讓學生主動調(diào)研、學習關(guān)于開源的知識,以團隊形式匯報和講評;加大實踐的比重,以解決復雜工程問題作為目標,利用GitHub平臺讓學生完整地體驗一個實際的開源項目。這樣也會出現(xiàn)新的挑戰(zhàn):如何在很有限的時間內(nèi)組織團隊,完成一個適合的課題?這需要在實踐中不斷探索經(jīng)驗。但無論如何,筆者相信新的授課方式將會帶來更好的教學效果。

3 對開源教育和課程教學的建議

1)加強頂層設計。

將開源技術(shù)納入計算機專業(yè)(特別是軟件工程專業(yè))的教學體系。應通過教指委等主管機構(gòu)明確開源技術(shù)課程在整個人才培養(yǎng)體系中的地位和作用,為課程大綱的設計給出指導性意見。

2)在高校中充分利用開源教育資源。

首先,應該在教學過程和管理平臺中優(yōu)先使用開源軟件。其次,在計算機專業(yè)的核心課程中充分結(jié)合開源軟件,如操作系統(tǒng)課程采用Linux、Android,數(shù)據(jù)庫課程采用MySQL、PostgreSQL,并行計算課程采用Hadoop,云計算課程采用OpenStack,機器學習課程采用TensorFlow,軟件開發(fā)課程采用Eclipse、Tomcat等。此外,如用 OpenOf fi ce/LibreOf fi ce 替代 Microsoft Of fi ce、用Firefox替代IE。再者,還要用好開源實踐教學平臺。國際上優(yōu)秀的開源項目管理平臺,如GitHub、Google Code、Source Forge等,都提供了項目/團隊管理、代碼審查、缺陷跟蹤、文檔編制等便利環(huán)境,國外許多課程直接在這些平臺上開設[7],值得我們借鑒。

3)篩選適合學生的開源軟件和開源項目。

目前,在一些大型的托管網(wǎng)站上,開源項目的數(shù)量有上千萬之多,然而這些項目大多并不適合教學使用。文獻[6]顯示,這個問題也是影響開源教育的主要障礙之一。教師應篩選一批具有生命力的、代碼規(guī)模和開發(fā)難度適當?shù)捻椖窟M入課堂。在教育網(wǎng)中提供相應的資源鏡像(國內(nèi)訪問GitHub曾一度被防火墻攔截),為學生鋪設通向開源軟件和開源社區(qū)的無障礙通路。此外,我們應該鼓勵學生參與開源社區(qū)的各項競賽和活動,鼓勵他們成為開源活動的積極分子。

4)在軟硬件采購、教學資源建設和專業(yè)評估中為開源教育開綠燈。

開源軟件并不意味著免費,很多開源軟件需要比商業(yè)軟件付出更多的維護代價,有時還需要付費購買軟件授權(quán)許可和咨詢服務。一些機構(gòu)在審批采購申請的時候,因?qū)徍巳藛T對此不理解,輕易地將這些預算核減掉,導致無法在關(guān)鍵業(yè)務中使用開源軟件,這對開源軟件的發(fā)展也是不利的。另外,還需要大力建設開源教育的課程資源,當前專門的開源技術(shù)教材還比較少。按照開源的理念,開源的研究資料一般也是開源的,這意味著這方面的教材不一定會按紙質(zhì)圖書出版發(fā)行,我們是否能夠接受這樣的教材作為教研成果?再者,目前大學的各項考核評估都與開源無關(guān),一些教學大綱中甚至規(guī)定學生要熟悉某些商業(yè)軟件,教學技能考核則要考察教師是否能夠熟練運用某些商業(yè)軟件開展教學活動,而且,實驗室中也充斥著大量的盜版商業(yè)軟件,這些狀況都應該盡快得到改變。

4 結(jié)語

從1983年 Richard Stallman創(chuàng)建GNU項目至今,開源軟件已經(jīng)走過了35個春秋,并且依然生命力旺盛,逐漸成為今天軟件產(chǎn)業(yè)的主流,這在信息技術(shù)的發(fā)展史上是少有的。開源軟件一方面為我們積累了大量的計算資源,另一方面給我們提供了大量的開發(fā)經(jīng)驗,這些都是開源軟件留給我們的寶貴財富。然而,在我們的大學計算機教育中尚未給予開源軟件充分的重視:開源軟件內(nèi)容未明確列入計算機專業(yè)教育的教學大綱之中;幾乎沒有這方面的課程介紹開源的歷史、開源的概念、開源的開發(fā)方法,以及幫助學生們分析開源成敗的原因和經(jīng)驗;高校中也未能充分利用開源軟件作為教育資源,這是非常遺憾的。在大學開設開源技術(shù)課程既切合國家信息化建設對開源的迫切需要,也順應軟件產(chǎn)業(yè)對人才培養(yǎng)的要求,符合高等教育發(fā)展的規(guī)律。筆者將開設開源技術(shù)課程的點滴經(jīng)驗與想法與讀者分享,相信開源教育一定能在IT教育工作者的共同努力下結(jié)出碩果。

猜你喜歡
開源軟件課程
當活動走向課程 少年已走向未來
禪宗軟件
軟件設計與開發(fā)實踐課程探索與實踐
為什么要學習HAA課程?
五毛錢能買多少頭牛
2019開源杰出貢獻獎
軟件對對碰
A—Level統(tǒng)計課程和AP統(tǒng)計課程的比較
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0