開源計算機教育.doc_第1頁
開源計算機教育.doc_第2頁
開源計算機教育.doc_第3頁
開源計算機教育.doc_第4頁
開源計算機教育.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

開源軟件與計算機科學(xué)教育摘要:我們考察了開源軟件在計算機科學(xué)教育中的角色。我們將從簡短的開源協(xié)議開始介紹,這些協(xié)議包括四個流行的開源協(xié)議。然后我們討論開源軟件在教育上的應(yīng)用。最后,我們關(guān)注開源軟件在計算機科學(xué)教育上的應(yīng)用。介紹:作文計算機科學(xué)的教育工作者,我們不停地尋求新的途徑、方法和技術(shù)來引導(dǎo)我們的學(xué)生。我們希望先抓住他們的興趣,然后使他們能盡可能多的理解和接收資料,最后鼓勵他們獨立創(chuàng)新。在整個過程當(dāng)中,我們試著教他們能實際應(yīng)用的技能。我們領(lǐng)域所涉及的寬度和不同的教育途徑使得這個過程十分困難。我們相信開源軟件(OSS)能作為一種教育和學(xué)習(xí)計算機科學(xué)(CS)的渠道、方法和技術(shù)。OSS強調(diào)課堂以外的團隊協(xié)作,包含了很多項目和很多在地域上分散的隊伍。OSS同時也能被用在向?qū)W生介紹大的CS社區(qū)和參與同行審查(peer-review)。最后,OSS通常能提供免費或低廉的課程成本,這是我們在其他地方不能提供的。在這片論文中,我們討論了OSS在CS教育中的角色。我們將從簡短的開源協(xié)議開始介紹,這些協(xié)議包括四個流行的開源協(xié)議。然后我們討論開源軟件在教育上的應(yīng)用。最后,我們關(guān)注開源軟件在計算機科學(xué)教育上的應(yīng)用。OSS組織對OSS原始的定義是:“為了保證代碼的讀、寫、再發(fā)布和修改,必須在協(xié)議下分發(fā),并且免費使用的軟件”14。OSS開發(fā)模型是全球開發(fā)者網(wǎng)絡(luò)的一部分。開源軟件經(jīng)歷一種自然的更新,這種更新是帶來了迅速的開發(fā),增加了可靠性,并且降低了成本。OSS也被稱為“免費軟件”。即使這兩個概念在開源的最初定義中是相互交叉的,兩者之間還是有區(qū)別的。當(dāng)提到“開源”的時候,我們常常實際指的是開源代碼。比如,我們通常將軟件的穩(wěn)定性歸功于其開源代碼的快速審查和更新14。兩者的區(qū)別僅在于究竟是誰獲得訪問這個源代碼,為什么他們要獲得它。我們采用通常的方式來評價免費軟件,相比,我們主要評價開源軟件的代碼,我們提倡人人讀開源代碼的權(quán)力。我們關(guān)心的是用戶是否能自由地閱讀、再發(fā)布、修改和使用代碼,而不是所節(jié)省的代價。開源代碼協(xié)議開源代碼能在許多種不同的協(xié)議下發(fā)布。截至2002年二月,OSI已經(jīng)推出了30種開源協(xié)議13。我們將討論其中的四種常見的有教育意義的協(xié)議:GNU 公共協(xié)議,小型GNU公共協(xié)議、伯克利軟件發(fā)布協(xié)議和謀智網(wǎng)絡(luò)公共協(xié)議。GNU GPL(GNU非Unix)通用公共協(xié)議(GPL)是一種常見的開源協(xié)議。這個協(xié)議保證了一個GPL程序所有的衍生作品也保佑GPL協(xié)議,因此保證了未來使用者的拷貝權(quán)?!翱截悪?quán)”軟件是一種不允許以后的發(fā)布者在他們修改軟件時添加任何的限制10??截悪?quán)機制為開發(fā)或發(fā)展免費軟件提供了XX8。流行的軟件:Linux Kernel, GNU Emacs 和 GCC。在上的占有率為65.15%GNU LGPL 小型GNU通用協(xié)議就像其命名一樣,不想他的哥哥一樣自由。LGPL允許在LGPL協(xié)議下的專利代碼。比如,如果你想寫一個庫,并且在LGPL協(xié)議下發(fā)布。在不同協(xié)議下的代碼可以連接這個庫。在這種協(xié)議下的的軟件就像在GPL協(xié)議下一樣擁有拷貝權(quán),但只被其本身的協(xié)議所限制。 流行軟件:GNU C Library, OpenOffice 和Fast Light Toolkit (FLTK)在上的占有率為5.31%BSD, 伯克利軟件發(fā)布協(xié)議是一種簡單的沒有拷貝權(quán)的協(xié)議。這個協(xié)議允許衍生的作品在任何協(xié)議下發(fā)布。這種規(guī)定允許BSD代碼用于私有項目并且沒有拷貝權(quán)機制保證修改后的代碼是開源的。因此,這種協(xié)議是遭到批評的,因為它沒有提供任何的激勵,不能保證代碼一直保持開源。流行軟件:Apache, FreeBSD, 和 PostgreSQL在上的占有率為5.17%MPL 就像BSD協(xié)議一樣,Mozilla公共協(xié)議允許將代碼用在私有的項目中,但是使派生的代碼保持在MPL協(xié)議中。這種機制為開發(fā)人員提供了一種激勵來促進核心功能。這個協(xié)議不與GPL兼容,GPL協(xié)議下的軟件不能和MPL協(xié)議連接9。但是MPL1.1有個規(guī)定(13部分)如果部分的程序允許GNU GPL作為另一種選擇,或其他GPL兼容協(xié)議作為另一種選擇,這一部分的程序就有GPL兼容協(xié)議9。流行軟件:Mozilla Web Browser(FireFox)和Bugzilla在上的占有率為0.49%開源軟件和計算機科學(xué)教育開源軟件為計算機教育社區(qū)提供了巨大的利益。通過使用OSS,計算機科學(xué)教育者和學(xué)生能發(fā)展(或更進一步的提升)能在國際間使用的軟件。這不僅為學(xué)生提供了一個世界范圍內(nèi)的實驗室和支持,還給了他們大規(guī)模軟件合作和開發(fā)的經(jīng)驗。分發(fā)的軟件已經(jīng)被證明在因特網(wǎng)驅(qū)動合作的教育環(huán)境(比如網(wǎng)頁和電子郵件)下是有效的3。因特網(wǎng)合作工具就像是開源的動力。因此我們可以期望開源社區(qū)給我們的學(xué)生大規(guī)模分發(fā)的軟件開發(fā)。不僅是學(xué)生在加入大規(guī)模開源軟件社區(qū)受益,而且也增加了大規(guī)模真實軟件代碼基數(shù)。GNU/Linux, 一種開源OS,已經(jīng)被用于一種大學(xué)階段的教育技術(shù)來教授網(wǎng)路、數(shù)據(jù)庫和系統(tǒng)管理5。OSS的很貼切地應(yīng)用在畢業(yè)論文或者其他包含的課程之中。被激勵在OSS上建立項目的學(xué)生比同一起跑線的其他學(xué)生能獲得更多的興趣和令人驚喜的系統(tǒng)。甚者,為了成功,他們必須和大量的代碼和相關(guān)的文檔打交道。如果代碼能很好的編寫和存檔,學(xué)生能學(xué)到應(yīng)當(dāng)如何完成準(zhǔn)備。如果不能,學(xué)生以后可能會更細(xì)心地工作。這些最好的系統(tǒng)又能回饋到開源社區(qū)中。最后,由于開源和自由可用的源代碼,代碼的高度有效性能被保證2。就像我們尋求同輩間的學(xué)術(shù)研討會和巡演一樣,我們能在開源社區(qū)能得到同樣的細(xì)查4。通過使用開源代碼的優(yōu)勢,我們能擴大我們學(xué)習(xí)、應(yīng)用和教授計算機科學(xué)的方法。我們可能能將目光從開源代碼實用的特性和免費的軟件帶來的“道德”爭論上移開。開源軟件假設(shè)每一個人都會獲得你的代碼,當(dāng)然,對于計算機專家還包括你的思想。作為一個計算機專家,讓任何人理解、修改和應(yīng)用這些思想是你的責(zé)任。結(jié)論開源軟件,確切地說GNU/Linux,已經(jīng)被應(yīng)用到計算機教育的方方面面。從嵌入式世界到合作基礎(chǔ)設(shè)施,開源軟件還給了教育工作者一種靈活性和資源。開源軟件能作為一種教授和學(xué)習(xí)計算機科學(xué)的途徑、方法和技術(shù)。作為一種途徑,OSS能將團隊合作超出教室的范圍,獲得更大的項目和分布在不同地域的隊伍。作為一種方法,OSS能被用于介紹學(xué)生到大型的計算機科學(xué)社區(qū)并參加同輩的審查。最后,作為一種技術(shù),OSS能向我們提供免費或低成本的技術(shù),這種技術(shù)是在其他地方不能獲得的。參考文獻(xiàn)1 Baum, D. Email interview. October 11 2001.2 Kiernan, V. “The Open Source Movement Turns Its Eye to Science.” Chronicleof Higher Education. November 5, 1999./free/v46/i11/11a05101.htm accessed January 20023 Macek, T., Mannova, B., Kolar, J., and Williams, B. Global Cooperation Project inComputer Programming Course. In Proceedings of SIGCSE Annual Conference(1999).4 Pfaffenberger, B. “Linux in Higher Education: Open Source, Open Minds, SocialJustice.” Linux Journal. March 21, 2000./article.php?sid=5071accessed February 20025 Rogers, M. Working Linux into the CS Curriculum. In Proceedings of the SeventhAnnual CCSC Midwestern Conference (2000).6 Stallman, R. “Why you shouldnt use the Library GPL for your next library.” Feb1999. /philosophy/why-not-lgpl.html. accessed February 20027 About. F /about/ accessed February 20028 What Is Copyleft? /copyleft/copyleft.html accessed February20029 GNU License List. /licenses/license-list.html accessed February 200210 GNU Philosophy. /philosophy/ accessed February 200211 K-12 Linux Terminal Server Project. /press.html accessed February 200212 The OpenScience Project. accessed February 200213 Open Source Initiative. / accessed February 200214 Open Source Initiative. Frequently Asked Questions./advocacy/faq.html accessed February 200215 Open Source NOW. /opensourcenow/accessed February200216 Simple End User Linux Education. /edu/accessed February2002原文:OPEN SOURCE SOFTWAREAND COMPUTER SCIENCE EDUCATIONKeith J. OHara and Jennifer S. KayComputer Science DepartmentRowan UniversityGlassboro, NJ 08028ohara, ABSTRACTWe investigate the role of open source software in computer science education. We begin with a brief tutorial on open source software including a description of four popular open source licenses. Next we discuss the use of open source software in education. Finally, we focus on the use of open source software in computer science education.INTRODUCTIONAs computer science educators we constantly seek new channels, methods, andtechnologies to reach and intrigue our students. We hope to first capture their interest,then maximize their understanding and retention of the material, and finally encourage their own independent creative work. Throughout this process, we try to teach them skills that they can apply in the real world. The breadth of our field and the variety of pedagogical approaches make this process very difficult.We believe that open source software (OSS) can serve as a channel, method, andtechnology to teach and learn computer science. OSS has the potential to expand group work beyond the classroom to include much larger projects and more distributed teams. OSS can also be used to introduce our students to the larger computer science community and to the practice of peer-review. Finally, OSS can often provide us with free or lower- cost technology in the classroom, permitting us touse technology that we might otherwise be unable to afford.In this paper, we discuss the role of open source software in computer scienceeducation. First, we give a brief tutorial on open source software including a description of four popular open source licenses. Next we discuss the use of open source software in education. Finally, we focus on the use of open source software in computer science education.OPEN SOURCE SOFTWAREThe Open Source Initiatives definition of open source software is: “software thatmust be distributed under a license that guarantees the right to read, redistribute,modify, and use the software freely.” 14 As much a part of the Open Source Software (OSS) development model as the open source code is a global network of developers. The software goes through a type of natural evolution resulting in rapid development, increased reliability, and decreased cost.Open source software is also referred to as “free software”. Although the two areinterchangeable under the Open Source Initiatives definition, there are some differences among popular understanding. When marketing the “open source” approach we often rely on the pragmatic properties of the open source code. For instance, we may cite the softwares reliability and high quality due to the peer review and rapid evolution of the source code. 14The disparities lie in exactly who gets access to this source code and why they have access to it. When explaining free software we use a moral argument; rather than basing our argument on the benefits of the open source code, we purport the right everyone has to the source code. When we speak of “free software” we are referring to the freedom of the user to read, redistribute, modify, and use the source code rather than the lack of cost.OPEN SOURCE LICENSINGOpen source software can be released under a variety of different licenses. As of February 2002, the Open Source Initiative has approved 30 open source software licenses. 13 We will discuss four licenses common to educational applications: the GNU Public License, the Lesser GNU Public License, the Berkeley Software Distribution License, and the Mozilla Public License. GNU GPL. The GNU (GNUs Not Unix) General Public License (GPL) is a very common open source license. This license assures any derived work of a GPL program will remain GPL, thus assuring the freedom for future users/developers to access, modify, and redistribute the source code. The software under this license is copylefted, “copylefted software is free software whose distribution terms do not let redistributors add any addi- tional restrictions when they redistribute or modify the software.”10 The copyleft mechanism provides “incentive” for developing and improving free software. 8Popular software: Linux Kernel, GNU Emacs, and GCC.Percentage of software listed on 1: 65.15% GNU LGPL. The Lesser GNU General Public License, as the name implies, is not as free as its older brother. The LGPL allows proprietary code to be linked with the LGPL code. For instance, if you were writing a library and were to release the source under the LGPL, code under a different license would be permitted to link with your library.2 The software under this license, like the 1 “Freshmeat maintains the Webs largest index of Unix and cross-platform software.”7 2 In fact, the L initially stood for “Library” but was later changed to stand for “Lesser”.6 GPL, is also copylefted, but unlike the GPL, can be linked to proprietary code with its own license.Popular software: GNU C Library, OpenOffice, and Fast Light Toolkit (FLTK)Percentage of software listed on : 5.31% BSD. The Berkeley Software Distribution License is a simple non-copylefted license. This license allows derived works to be released under any license. This allows BSD code to be used in proprietary projects and has no copyleft mechanism for keeping any of the modified code open. For this reason, the license is criticized because it does not offer any “incentive” for developers because there is no guarantee the code will remain open.Some popular software: Apache, FreeBSD, and PostgreSQLPercentage of software listed on : 5.17% MPL. The Mozilla Public License (MPL) permits the use of the code in proprietary projects like the BSD License, but makes certain the core files stayunder the MPL. This stipulation, that the core files stay under the MPL,provides incentive for developers to improve and develop aspects of the corefunctionality. This license is actually GPL-incompatible; a GPL module cannot be legally linked with a MPL module. 9 “However, MPL 1.1 has a provision (section 13) that allows a program (or parts of it) to offer a choice of another license as well. If part of a program allows the GNU GPL as an alternate choice, or any other GPL-compatible license as an alternate choice, that part ofthe program has a GPL-compatible license.” 9Popular software: Mozilla Web Browser and BugzillaPercentage of software listed on : 0.49%OPEN SOURCE SOFTWARE AND EDUCATIONMany groups have been established to develop and promote open source software as a viable technological solution for educational uses. By using open source software, schools can free themselves of licensing costs and put their (often scarce) resources to other uses. As one might expect, the focus is on Linux, and tools that work on Linux platforms.Red Hat, a company best known for its commercial support of GNU/Linux, hasdeve loped the Open Source Now project. 15 Open Source Now is an advocacy groupdesigned to advance the use of OSS in both education and public policy. For educators, they provide an introduction to OSS in education, a discussion list, and links to a wide variety of other OSS in education sites. Simple End User Linux - Education is a discussion list about all aspects of educational uses of Linux. 16 The site also provides a database of case studies, and links to current projects and a wide variety of software from astronomy to social studies.The K-12 Linux Project provides information to schools to enable them to make use of OSS. 11 For example, their Linux Terminal Server project has produced an open source terminal server Linux distribution targeted at a lab of low-powered diskless computers and a high-powered server. This allows a school to take advantage of outdated hardware they may already own, as well as save money by reducing the software licenses the schools must purchase. They claim to cut a labs hardware and software costs by more than a third.Open source software is not limited to low-cost computer labs in primary andsecondary schools, but also is being actively used and developed by higher education institutions. The OpenScience project is dedicated to developing scientific software that can be taken advantage of freely by anyone. 12Relying on the flexibility, low-cost, standards compliance, and stability of OSSto strengthen its credibility as an educational solution, we must also recognize thefactors that inhibit its widespread acceptance. Todays schools are very WinTel3reliant, possibly due to historical vested interests, a steep learning curve, or masterfulmarketing. Another factor, which is sure to surface as another inhibitor, is the currentmucky situation of open source licensing. While supplying a great amount offlexibility for developers, this plethora of licenses has a steep learning curve of itsown. It also breeds confusion and uncertainty for users and neophyte developers.OPEN SOURCE SOFTWARE AND COMPUTER SCIENCE EDUCATIONOpen source software offers tremendous benefits to the computer science education community. By using OSS, computer science educators and students can develop (or further the development of existing) software that can be used and improved upon by an international community. This not only provides the student with a world-size laboratory and support staff, but also gives them experience in large 3 Combination of Microsoft Windows and Intel Processors scale software collaboration and development. Distributed software collaboration has proven itself effective in the educational setting through the use of Internet-driven collaboration tools such as web pages and email lists. 3 These Internet- driven collaboration tools are the same as those that power open source development.Thus,we can look to the open source community to expose our students to large-scale distributed software development. By using and developing OSS, not only is the student participating in a large distributed software community, but is also interacting with large, real, software code-bases.GNU/Linux, an open source operating system, has also been presented as an educational technology to teach networking, databases, and system administration atthe university level. 5 The use of OSS is particularly appropriate in a Senior Thesisor other capstone course. Students who are encouraged to build projects on top of OSSbases can build more interesting and exciting systems than they might have developed from scratch. Further, in order to succeed, they must work with a large code-base and associated documentation. If the code is well written and well documented, students learn how much can be accomplished with careful preparation. If it is not, students may take more care with their own work in the future. The best of these systems can be contributed back to the open source community.Finally, due to the open and freely available source code, a high degree of verifiability can be attained. 2 Just as we look to conferences and journals for peerreview of our ideas, we can look to the open source community for the same type of scrutiny concerning our software. 4 By taking advantage of the open source development model we extend the methodology by which we learn, apply, and teach computer science, to include peer- review. We may look away from the pragmatic properties of the open source code to the more “moral” argument a free software advocate may pose. Free software assures every- one will have access to your code, which as a computer scientist, are your ideas. As a scientist it is your duty to assure everyone can understand, modify, and apply those ideas.CONCLUSIONSThe use of open source software, and GNU/Linux in particular, is growing in all directions. Ranging in application from the embedded world to corporate infrastructure, open source software also gives educators a type of flexibility and intellectual freedom often absent from software. Open source software can serve as a channel, method, and technology to teach and learn computer science. As a channel,OSS can expand teamwork past the classroom to include much larger projects and more distributed teams.As a method, OSS can be used to introduce our students to the larger computer science community and to the

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論