




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开源软件与计算机科学教育摘要:我们考察了开源软件在计算机科学教育中的角色。我们将从简短的开源协议开始介绍,这些协议包括四个流行的开源协议。然后我们讨论开源软件在教育上的应用。最后,我们关注开源软件在计算机科学教育上的应用。介绍:作文计算机科学的教育工作者,我们不停地寻求新的途径、方法和技术来引导我们的学生。我们希望先抓住他们的兴趣,然后使他们能尽可能多的理解和接收资料,最后鼓励他们独立创新。在整个过程当中,我们试着教他们能实际应用的技能。我们领域所涉及的宽度和不同的教育途径使得这个过程十分困难。我们相信开源软件(OSS)能作为一种教育和学习计算机科学(CS)的渠道、方法和技术。OSS强调课堂以外的团队协作,包含了很多项目和很多在地域上分散的队伍。OSS同时也能被用在向学生介绍大的CS社区和参与同行审查(peer-review)。最后,OSS通常能提供免费或低廉的课程成本,这是我们在其他地方不能提供的。在这片论文中,我们讨论了OSS在CS教育中的角色。我们将从简短的开源协议开始介绍,这些协议包括四个流行的开源协议。然后我们讨论开源软件在教育上的应用。最后,我们关注开源软件在计算机科学教育上的应用。OSS组织对OSS原始的定义是:“为了保证代码的读、写、再发布和修改,必须在协议下分发,并且免费使用的软件”14。OSS开发模型是全球开发者网络的一部分。开源软件经历一种自然的更新,这种更新是带来了迅速的开发,增加了可靠性,并且降低了成本。OSS也被称为“免费软件”。即使这两个概念在开源的最初定义中是相互交叉的,两者之间还是有区别的。当提到“开源”的时候,我们常常实际指的是开源代码。比如,我们通常将软件的稳定性归功于其开源代码的快速审查和更新14。两者的区别仅在于究竟是谁获得访问这个源代码,为什么他们要获得它。我们采用通常的方式来评价免费软件,相比,我们主要评价开源软件的代码,我们提倡人人读开源代码的权力。我们关心的是用户是否能自由地阅读、再发布、修改和使用代码,而不是所节省的代价。开源代码协议开源代码能在许多种不同的协议下发布。截至2002年二月,OSI已经推出了30种开源协议13。我们将讨论其中的四种常见的有教育意义的协议:GNU 公共协议,小型GNU公共协议、伯克利软件发布协议和谋智网络公共协议。GNU GPL(GNU非Unix)通用公共协议(GPL)是一种常见的开源协议。这个协议保证了一个GPL程序所有的衍生作品也保佑GPL协议,因此保证了未来使用者的拷贝权。“拷贝权”软件是一种不允许以后的发布者在他们修改软件时添加任何的限制10。拷贝权机制为开发或发展免费软件提供了XX8。流行的软件:Linux Kernel, GNU Emacs 和 GCC。在上的占有率为65.15%GNU LGPL 小型GNU通用协议就像其命名一样,不想他的哥哥一样自由。LGPL允许在LGPL协议下的专利代码。比如,如果你想写一个库,并且在LGPL协议下发布。在不同协议下的代码可以连接这个库。在这种协议下的的软件就像在GPL协议下一样拥有拷贝权,但只被其本身的协议所限制。 流行软件:GNU C Library, OpenOffice 和Fast Light Toolkit (FLTK)在上的占有率为5.31%BSD, 伯克利软件发布协议是一种简单的没有拷贝权的协议。这个协议允许衍生的作品在任何协议下发布。这种规定允许BSD代码用于私有项目并且没有拷贝权机制保证修改后的代码是开源的。因此,这种协议是遭到批评的,因为它没有提供任何的激励,不能保证代码一直保持开源。流行软件:Apache, FreeBSD, 和 PostgreSQL在上的占有率为5.17%MPL 就像BSD协议一样,Mozilla公共协议允许将代码用在私有的项目中,但是使派生的代码保持在MPL协议中。这种机制为开发人员提供了一种激励来促进核心功能。这个协议不与GPL兼容,GPL协议下的软件不能和MPL协议连接9。但是MPL1.1有个规定(13部分)如果部分的程序允许GNU GPL作为另一种选择,或其他GPL兼容协议作为另一种选择,这一部分的程序就有GPL兼容协议9。流行软件:Mozilla Web Browser(FireFox)和Bugzilla在上的占有率为0.49%开源软件和计算机科学教育开源软件为计算机教育社区提供了巨大的利益。通过使用OSS,计算机科学教育者和学生能发展(或更进一步的提升)能在国际间使用的软件。这不仅为学生提供了一个世界范围内的实验室和支持,还给了他们大规模软件合作和开发的经验。分发的软件已经被证明在因特网驱动合作的教育环境(比如网页和电子邮件)下是有效的3。因特网合作工具就像是开源的动力。因此我们可以期望开源社区给我们的学生大规模分发的软件开发。不仅是学生在加入大规模开源软件社区受益,而且也增加了大规模真实软件代码基数。GNU/Linux, 一种开源OS,已经被用于一种大学阶段的教育技术来教授网路、数据库和系统管理5。OSS的很贴切地应用在毕业论文或者其他包含的课程之中。被激励在OSS上建立项目的学生比同一起跑线的其他学生能获得更多的兴趣和令人惊喜的系统。甚者,为了成功,他们必须和大量的代码和相关的文档打交道。如果代码能很好的编写和存档,学生能学到应当如何完成准备。如果不能,学生以后可能会更细心地工作。这些最好的系统又能回馈到开源社区中。最后,由于开源和自由可用的源代码,代码的高度有效性能被保证2。就像我们寻求同辈间的学术研讨会和巡演一样,我们能在开源社区能得到同样的细查4。通过使用开源代码的优势,我们能扩大我们学习、应用和教授计算机科学的方法。我们可能能将目光从开源代码实用的特性和免费的软件带来的“道德”争论上移开。开源软件假设每一个人都会获得你的代码,当然,对于计算机专家还包括你的思想。作为一个计算机专家,让任何人理解、修改和应用这些思想是你的责任。结论开源软件,确切地说GNU/Linux,已经被应用到计算机教育的方方面面。从嵌入式世界到合作基础设施,开源软件还给了教育工作者一种灵活性和资源。开源软件能作为一种教授和学习计算机科学的途径、方法和技术。作为一种途径,OSS能将团队合作超出教室的范围,获得更大的项目和分布在不同地域的队伍。作为一种方法,OSS能被用于介绍学生到大型的计算机科学社区并参加同辈的审查。最后,作为一种技术,OSS能向我们提供免费或低成本的技术,这种技术是在其他地方不能获得的。参考文献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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论