7件关于… 教育领域中的开源项目,您应该了解的事项
学期过半,玛格丽特·布劳德沃特博士对她的“开源软件开发”课程中学生的进步感到兴奋。与开源软件项目和开发社区合作,使她的学生获得了软件开发实践、技术框架、数据结构和产品开发的实践经验。学生们还从开发者和用户的角度完成了开源项目的安装练习,随后查找并修复了软件中的错误。布劳德沃特知道她的学生学到的不仅仅是如何使用代码。在与学生交谈时,她强调开源代码是商业和教育领域中无处不在的应用程序的核心,包括 Chrome 和 Firefox,并且是 Apache Web 服务器、Fedora Linux 和 OpenSSL 等软件的驱动力。此外,开源在公司、组织和政府机构的使用中获得了认可,因此是他们作为软件开发人员和工程师进入职场后需要了解的东西。布劳德沃特知道,通过深入研究开源项目,她的学生也在学习在开发者社区中构建代码的道德规范——并且,实际上,正在成为该社区的一份子。
布劳德沃特在教授开源软件体验(POSSE)赞助的夏季研讨会上了解了开源。那次会议的重点是帮助讲师学习如何让学生参与到自由和开源软件(FOSS)的开发中。布劳德沃特了解了 FOSS 工具和 FOSS 文化,收集了丰富的课程材料,并学习了支持学生参与开源学习的教学技巧。另一个好处是,研讨会的讲师自愿担任布劳德沃特班级的导师。他偶尔通过开源网络会议系统 BigBlueButton 与学生合作,帮助指导学习者完成作业并回答他们最具挑战性的技术问题。
到学期末,布劳德沃特的学生成功地学习了开源项目的许多复杂性和特殊性。一些人仍在学习细节,例如修复错误。其他学生渴望超越基础知识,布劳德沃特敦促他们专注于提出具体的改进或补充建议。几名学生将该作业作为他们毕业设计的重点。
1 这是什么?
开源是指可以自由使用、更改和共享的软件。开源项目吸引了一个开发者社区,他们协作迭代以开发、增长和改进软件。开发者可以访问、修改和自定义功能,为实施开源软件的组织提供相当大的控制权。一般来说,开源项目寻求更便宜、更灵活的解决方案途径,以解决专有软件无法充分或经济地解决的问题。通常,发起开源项目的社区会建立一套关于功能优先级、技术规范、工作流程以及项目社区如何做出决策等因素的价值观和治理原则。为教育构建开源软件的组织包括 Apereo、 DuraSpace、 Kuali 和 Moodle。非营利组织 开源促进会 制定标准并认证开源代码的许可证。
2 如何运作?
学院和大学以多种方式参与开源项目。考虑开源项目的一个推动力是,当校园认为它可以更好地满足内部或通过与其他机构的同行合作来满足其软件需求时。供应商解决方案可能无法充分甚至根本无法解决问题,或者它们可能在许可方面过于昂贵或过于严格。在开源社区中,“热心者的联盟”可能会定义问题并勾勒出解决方案的框架。项目负责人随后将为项目制定具体参数,如何管理工作,如何分担工作量,如何分摊成本,可能涉及哪些风险以及如何减轻这些风险,以及如何最好地长期维护项目。在某些情况下,个别机构将采用开源解决方案,然后通过提交问题、修复软件错误和提出开发建议来加入开发社区。随着他们更多地参与社区,机构可能会为现有功能贡献代码,或者可能开发新的工具或模块。开源项目通常是自然涌现的,而不是计划好的,并且通常会自然增长以满足给定的需求。
3 谁在做?
开源项目的规模差异很大。有些是由个人创建特定应用程序或“小部件”驱动的。另一些是由机构、公司和联盟开发的主要项目。学院和大学长期以来一直在 Apache Web 服务器和 CAS 身份验证等应用程序中使用开源代码。高等教育中常见的其他示例包括 Linux、Drupal、WordPress、MySQL、Postgresql 和 Mozilla。Opencast、Tsugi 和 uPortal 为教学提供开源解决方案,而 Moodle、Kuali 和 Sakai 等平台为课程管理和财务系统提供解决方案。包括 Facebook、Google、IBM、HP、Microsoft 和 Oracle 在内的公司经常将开源代码纳入他们销售的解决方案中。一些开源开发是在完善的联盟或社区的主持下进行的,例如 Apereo 基金会、DuraSpace 和 Teaching Open Source。
4 为何意义重大?
与专有产品相比,开源解决方案通常在功能、特性、维护和成本方面提供更多控制权,更容易解决安全漏洞、软件错误和不断变化的需求,通常使用敏捷开发方法。开源代码的用户可以开发适合其需求的软件,并参与定义解决方案是什么以及做什么,而不是试图适应第三方设计规范。开源提供创新、可定制、前沿的解决方案,并具有自由可见的标准和规范。开源代码可以免费购买,通常可以在没有繁琐的采购流程的情况下访问。开源不会将用户束缚于供应商的约束或强制升级。维护可以在内部完成,可以与其他社区成员协作完成,也可以与服务提供商(包括云提供商)按照机构的时间表完成。开发时间可能比商业解决方案更快。开发的透明性有助于用户评估代码的有效性和兼容性,并发现可以在无需等待供应商采取行动的情况下纠正的问题。开源实施可以很容易地作为其他人的参考,而专有代码则不能。
5 有哪些缺点?
开源项目会产生与使用任何软件相关的成本,例如维护所需的硬件和网络基础设施、服务器/数据库配置、一般管理和维护、用户支持以及人员配置和培训。如果机构选择参与开发,它将产生额外的成本。尽管更改开源软件的能力是一项关键优势,但有时开发者会意见不合或目标不同,这可能会导致代码库的分裂(或“分支”),从而产生独立的、有时是竞争性的软件程序。此外,某些类型的软件提供了许多开源选项,而另一些则没有。
6 未来趋势如何?
开源被广泛使用,其影响力可能会增长。经济压力和不断扩大的服务范围可能会推动更多大学追求开源选项。而且,越来越多的机构会发现商业合作伙伴在某些应用程序中使用开源代码。学院和大学将越来越习惯于将开源解决方案用于核心功能,例如财务管理、企业资源规划、课程和项目管理、资助管理以及教学。虽然开源的标准化和许可实践现在已被广泛接受,但可能会出现关于许可证兼容性或围绕特定许可证的专利的问题。
7 对教学有何影响?
开源使高等教育能够更好地控制其应用程序组合,并有助于 下一代数字学习环境。Apereo OAE、CAS 或 Tsugi 项目等解决方案有可能改变学习管理和学生支持服务,并提高学生的成功率。开源代码正在帮助扩大获得负担得起的教育的机会,而 Moodle 和 Sakai 等解决方案正在帮助推进个性化学习。参与开源代码开发的机会为学生提供了实践经验和基于项目的管理模型的实践。开源项目帮助教师和研究人员与世界各地的同事广泛分享他们的工作和发展想法,并为图书馆访问和存档数字馆藏提供了新方法。
贡献者:Ian Dolphin、Douglas Johnson、Laura Gekeler、Patrick Masson
“7件关于…您应该了解的事项” 是 EDUCAUSE 的商标。“7件关于…开源项目,您应该了解的事项” © 2017 EDUCAUSE,并根据 Creative Commons BY-NC-ND 4.0 许可协议 提供。
EDUCAUSE 是一个非营利会员协会,旨在支持那些领导、管理和使用信息技术以造福高等教育的人。EDUCAUSE 学习倡议是 EDUCAUSE 的一个社区,致力于通过创新技术应用来促进学习。有关 ELI 的更多信息,请通过 [email protected] 联系我们。
图片来源:“7Things.png” 是 “1959-xx-xx Educational Cards, Ed-U-Cards A – F“ (1959) 的衍生作品,作者为 Wishbook,通过 Flickr 提供,并根据 Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) 许可协议 获得许可使用。”