2014年5月28日,费城的阳光格外灿烂。但在德雷塞尔大学Rush大楼的地下室里,这所大学的计算与信息学院所在地,情况却有些不明朗。
在室内,来自全国各地高校的近20名教职员工正在讨论设计课程的优点,这些课程将学生直接融入自由和开源软件社区。Heidi J. C. Ellis,马萨诸塞州斯普林菲尔德市西新英格兰大学计算机科学与信息技术系主任和教授,以及Gregory W. Hislop,德雷塞尔大学计算与信息学院副院长,召集了该小组,作为今年教授开源暑期体验的一部分,这是一个为期三天的沉浸式会议,旨在帮助希望通过向学生介绍开源工具、项目和价值观来提升学生学习体验的教师。
Ellis 和 Hislop 向他们的同事解释了将学生与开源项目联系起来的美好之处。但他们告诫说,让学生学习开源之道并非易事,因为它会给课堂带来许多独特的挑战。
例如,开源项目是复杂的——无论是在其代码库方面,还是在其社区用于协作的工具方面。让学生快速上手可能需要数周甚至数月的时间,这使得他们在学期内几乎没有时间为项目做出具体的贡献。社区也体现了特定的特征:规范、价值观和首选方法,这些只能通过广泛参与其中才能学到。项目的各自发布计划可能与课程的教学日历不完全重叠,这使得合作更加困难。而且,学生进入计算机科学课程时,对工具和平台的熟悉程度各不相同,因此为每个人设置合适的开发环境确实可能很棘手。
动手的乐趣
来自俄亥俄州牛津市迈阿密大学的 Jim Kiper 还有一个额外的担忧:如果课堂参与项目适得其反,引入令人沮丧的复杂情况,甚至完全破坏项目,那么对他学生、他的部门、他的大学以及他选择的开源社区会产生什么后果?
像加拿大麦科文大学的 Cam MacDonald 这样的同事很快就消除了 Kiper 的担忧,他曾让学生参与开源人群地图绘制和可视化软件 Ushahidi。他们说,开源社区广泛使用版本控制,这为学生可能意外引入项目代码的那种灾难性错误提供了安全保障。
“在任何有价值的项目中,都不会发生这种情况,” MacDonald 解释说。“这就像核电站让实习生在周末运行工厂一样。”
因此,教授应该鼓励他们的学生深入研究开源代码库并开始动手实践,想象他们如何才能为项目做出有意义的贡献。POSSE 成员表示,摆弄用于实际应用的开源代码是一种具有无与伦比好处的学习活动。
通过参与这些项目,学生不仅可以提高他们的编码技能,还可以学习如何与分布在偏远地区的团队合作。Ellis 说,他们会更熟悉知识产权和软件许可问题,并且如果他们想掌握项目的目的(更不用说它的约束条件),他们必须获得密码学、健康法规或生物信息学等新领域的工作知识。
代码之外的贡献
但是学生不必仅仅向开源项目提交代码。他们可以确认错误、更新文档、设计新的徽标或图标、测试新功能,或者仅仅评估应用程序的可访问性功能。
Ellis 的学生曾为 Caribou 做出贡献,Caribou 是 GNOME 桌面的一部分屏幕键盘。她解释说,经验丰富的学生通常更喜欢向项目提交补丁,而初学者更愿意采访现有贡献者,探索 Git 或 IRC 等协作技术,并开始 Ellis 称之为开源“实地考察”的活动——对各个社区进行浅尝辄止的考察,他们可能会潜伏一段时间,以了解开源开发是如何真正发生的。
Ellis 和 Hislop 始终强调,教授们必须记住,开源社区可以帮助他们的学生。他们将指导学生了解他们项目的代码,回答学生的问题,或在 IRC 上与他们会面。但是,为了充分利用这些社区的好处,教授们必须适应他们的学生与传统师生关系之外的个人互动的可能性。
“这是一种不同的风格,” Hislop 告诉 POSSE 小组。“有些人只是不适应这种风格。”
以开源方式进行计算机科学课程作业确实会让课堂接触到开源开发中固有的那种不可预测性和灵活性。然而,POSSE 的与会者一致认为:教师和学生都从与开源社区的互动中受益。有些课程是无法在教学大纲中概述的。
评论已关闭。