课程大纲¶
课程定位
《开源软件通识》面向具备基础编程能力、但尚未系统参与开源的计算机类本科生。课程共 16 课时,按 8 次双课时组织,每次约 90 分钟。
课程目标¶
完成课程后,学生应当能够:
- 从软件类型、开发方式、协作模式和产业生态四个维度解释开源。
- 识别社区、企业、基金会等生态角色,理解常见治理与决策方式。
- 根据使用和分发场景判断常见开源许可证的主要义务。
- 使用 Markdown、Git 和代码托管平台完成一次规范的协作流程。
- 向真实开源项目提交一项可评审的贡献,并根据反馈继续修改。
- 复盘自己的贡献过程,规划从首次贡献者到持续贡献者的发展路径。
关于社区领导
从贡献者成长为维护者或社区领导者通常需要长期投入。课程将介绍这条发展路径,但不会把“成为社区领导者”作为 16 课时内的学习成果。
课程主线¶
graph LR
A[认识开源] --> B[理解规则]
B --> C[掌握工具]
C --> D[完成贡献]
D --> E[响应评审]
E --> F[持续参与]
课时安排¶
| 次数 | 主题 | 课堂重点 | 当次成果 |
|---|---|---|---|
| 第 1 次 | 认识开源与项目启动 | 开源的定义、价值、身边案例与课程项目池 | 一个开源项目画像 |
| 第 2 次 | 历史与生态 | GNU、Linux、OSI;社区、企业、基金会与商业模式 | 项目生态角色分析 |
| 第 3 次 | 许可证与合规 | 版权、专利、常见许可证及许可证选择 | 许可证判断练习 |
| 第 4 次 | 社区文化与治理 | 社区角色、行为准则、治理方式、沟通与 Issue | 贡献选题与实施提案 |
| 第 5 次 | 最小贡献工具链 | Markdown、Git 工作区、暂存区、提交与分支 | 本地 Git 实验 |
| 第 6 次 | 平台协作流程 | Fork、Issue、Pull Request、CI 与 Code Review | 可评审的贡献草稿 |
| 第 7 次 | 真实贡献工作坊 | 实现、测试、文档、同行评审和规范提交 | 向真实项目提交贡献 |
| 第 8 次 | 反馈响应与持续参与 | 修改提交、成果展示、维护者职责和个人复盘 | 贡献证据包与复盘报告 |
学习方式¶
每次课由概念讲授、案例讨论和实践活动组成。课程项目从第 1 次课启动,学生在课间持续推进,不把所有实践集中到最后一周。
- 课堂必修:开源认知、生态与治理、许可证、Markdown、Git、平台协作和真实贡献。
- 按需学习:完成项目所需的 Linux 命令、构建工具和测试方法。
- 课外拓展:Git 底层原理、Docker、QEMU、邮件列表协作及其他效率工具。
结课成果¶
结课成果不是一张知识点清单,而是一段可核验的真实贡献过程。学生需要提交贡献链接、实际变更、验证结果、社区交流记录和个人复盘。外部维护者是否在课程结束前合并贡献,不影响成果认定。