教授开源实践,版本 4.0

还没有读者喜欢这个。
Doodles of the word open

Opensource.com

2007年,Sean O'SullivanMapInfo 的创始人之一,慷慨地向他的母校 特洛伊的伦斯勒理工学院,纽约州 捐赠了 捐款,其具体目标是创建一个中心,以促进本科生中的开源

“我们有责任改善地球上人类的生活。虽然技术一直是提高生活质量的巨大推动力,但现在我们正处于一个可以通过开源软件和开放内容以接近零成本实现这些改进的阶段,为所有人开放机会,” O'Sullivan 说

这笔捐款催生了 伦斯勒开源中心 (RCOS),每年约有 100 名本科生获得助学金在该中心从事开源项目。

RCOS 还意识到有必要提供关于开源软件实践的正式教育,并设计了一门选修课程,该课程在过去三年中一直在秋季学期讲授。该课程特别面向电气工程和计算机科学专业的学生。

课程的形式和内容随着时间的推移而不断发展。2009年,它包括以下 教学大纲

  • 经济学(3 节课)

  • 知识产权垄断(2 节课)

  • 软件专利(1 节课)

  • 开源许可(2 节课)

  • 案例研究(CMake / VTK / GNOME / KDE...)(5 节课)

  • 商业模式(1 节课)

  • 软件开发流程(1 节课)

  • 开放获取出版(1 节课)

  • 维基百科与同侪生产(1 节课)

  • 动手练习(gcc / kernel / sockets)

所有教学材料均根据知识共享署名许可公开提供,可在此处找到 此处

课程持续 16 周,每周两次课程,每次 1 小时 45 分钟。典型的课程分为 1 小时的讲课(真的是:讲课!),以及 45 分钟的动手活动。

动手活动的例子有

成绩分为测验占 75%(约 10 个),课堂项目占 25%,课堂项目要求学生参与 他们选择的开源项目

课程的讲师是来自 Kitware 的志愿者,Kitware 是一家与 RPI 关系密切的当地开源公司,其中包括 CMakeVTKITK 等开源项目的开发人员。他们还邀请了 特邀演讲嘉宾,为更大的校园社区提供讲座。

邀请的演讲嘉宾包括

  • Michael Tiemann – 开源促进会主席,红帽公司开源事务副总裁

  • Daniel Frye – IBM公司开放系统开发副总裁

  • Chris DiBona - 谷歌开源项目经理

  • Kent Quirk – Linden Lab

  • Sandro Groganz – InitMarketing(开源营销)

  • James Cherkoff – 协作营销

  • Willy Walker – GNOME 辅助功能项目

  • Bo Lipari – 纽约人支持核实投票执行董事

该课程是一项正在进行的工作,我们一直在边做边学。以下是我们遇到的一些问题,这些问题很可能是由于我们缺乏教学技巧造成的...但如果您计划实施类似的课程,仍然可能会有所帮助

  • 仅仅期望学生主动是不一定有效的。

  • 成绩,成绩,成绩:必须有明确的规则。

  • 很难说服学生完整阅读我们的任何 强烈推荐的开源书籍

  • 当学生搜索要参与的 FOSS 项目时,令人惊讶的是,很难得到开源社区的回应(更多内容见下文)。

  • 我们需要一位律师来帮助我们进行版权、专利和许可谈判。学生会提出最奇怪但有趣的场景作为问题,我们常常无言以对。

我们发现有效的方法

  • TED 视频 是很好的教学工具。我们想要更多!

  • 网上有很多关于版权的资料,尤其是在 YouTube 上。

  • 邀请演讲嘉宾是建立学生与 FOSS 现实之间联系的关键。

2010年8月30日,我们将启动课程 4.0 版本。我们期待这个版本,因为今年我们配备了三个真正的大助力

  • TeachingOpenSource 社区的支持

  • OpenHatch 项目,这将使学生能够有效地找到合适的 FOSS 项目来参与。

  • HFOSS(人道主义 FOSS) 的合作,我们预计这也将成为学生项目的主要来源,这些项目足够令人满意,让他们忘记成绩。

通过我们的课程,尽管它并不完美,但我们学到了很多,并希望听到您对改进的想法和建议。我们也乐于听取关于在其他高等教育机构推广类似课程的想法。

特别欢迎传统教学实践之外的想法!

User profile image.
Luis Ibáñez 在芝加哥的谷歌公司担任高级软件工程师。

2 条评论

我们在 RIT 这里开设了几门关于知识产权和法律的课程,尽管它们不是以开源为中心的。我们还开设了一门专注于 OLPC 平台开发的课程。最近我一直在想,开设一门专注于 Linux 平台开发的课程会非常棒。从社区介绍开始,然后用剩下的一个季度学习 Linux 中的工具。我感觉我们学校的许多学生学习了编程语法,但实际上并不确定接下来该做什么。我也不认为我们涵盖了诸如打包、错误跟踪、测试或安全编程之类的内容。

我同意你的看法,

一门专注于 Linux 上的软件开发的课程将非常有趣。

许多参加我们课程的学生实际上期望学习 FOSS 开发工具的使用,而我们并没有像他们希望的那样关注这些工具。在这样的课程中加入大规模开发的概念将会很有趣,因为大多数工程专业的学生都没有接触过当项目代码超过 10 万行或开发者超过 5 个时出现的特定问题。我相信联合学院有一门关于“大规模软件开发”的课程。[<a href="http://www.union.edu/applications/catalog/deptView.php?mode=catalog&year=2006&code=CS" target="blank">http://www.union.edu/applications/catalog/deptView.php?mode=catalog&year=2006&code=CS</a>]。

许多 FOSS 实践可以直接从协调处理大型代码库的大型分布式开发者团队的需求中引入到课堂中。

知识共享许可协议本作品根据知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
© . All rights reserved.