Update README.md
《开源软件开发》是一门面向计算机相关专业本科生开设的实践型课程,旨在帮助学生系统理解开源软件的发展模式、协作机制与工程实践,培养学生参与真实开源社区、理解现代软件生态以及开展协同开发的能力。
当前,开源软件已成为云计算、人工智能、大数据、操作系统与基础软件的重要基础设施。以 Linux kernel、Kubernetes、PyTorch 等为代表的开源项目,正在深刻影响全球软件产业与数字经济的发展。与此同时,开源开发模式也从传统的小规模协作,逐渐演化为跨组织、跨地域、持续演进的大规模协同创新模式。
本课程采用“理论讲授 + 工程实践 + 社区参与”相结合的方式展开教学,以学生参与真实开源项目贡献为主线,帮助学生建立对现代开源生态、开发流程、协作规范与治理机制的整体认知。
通过本课程的学习,学生将能够:
课程既介绍开源软件的发展历史、协作机制与治理模式,也注重学生的实际工程能力培养。学生将在课程中学习真实开源项目的开发流程,包括 issue 分析、代码提交、Pull Request、代码评审以及社区协作等内容,通过实践理解现代开源软件开发模式。
课程不仅关注代码开发,也强调:
课程内容融合:
课程采用类似翻转课堂(Flipped Classroom)的教学方式,鼓励学生围绕开源项目实践过程进行主动学习与交流讨论。课程设置三次阶段性汇报,学生需要围绕项目选择、贡献进展、技术问题与社区协作经验等内容进行分享,通过汇报与讨论提升工程表达能力、团队协作能力以及对开源生态的理解。
其中,“智能时代的开源贡献”部分将重点讨论生成式AI、AI Agent 与开源生态之间的关系,包括 AI 辅助开发、AI 生成贡献、软件供应链风险以及 AI 对开源协作模式的影响。
课程采用多种形式开展教学:
课程强调“做中学(Learning by Contributing)”的理念,鼓励学生通过真实贡献理解开源软件开发过程,并成为所选开源项目的贡献者。
学生需选择一个真实开源项目,完成至少一次完整开源贡献流程,包括但不限于:
课程鼓励学生参与国内外主流开源社区。
本课程适合:
完成本课程后,学生将能够:
开源软件开发(Open Source Software Development)课程
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
《开源软件开发》课程说明
课程简介
《开源软件开发》是一门面向计算机相关专业本科生开设的实践型课程,旨在帮助学生系统理解开源软件的发展模式、协作机制与工程实践,培养学生参与真实开源社区、理解现代软件生态以及开展协同开发的能力。
当前,开源软件已成为云计算、人工智能、大数据、操作系统与基础软件的重要基础设施。以 Linux kernel、Kubernetes、PyTorch 等为代表的开源项目,正在深刻影响全球软件产业与数字经济的发展。与此同时,开源开发模式也从传统的小规模协作,逐渐演化为跨组织、跨地域、持续演进的大规模协同创新模式。
本课程采用“理论讲授 + 工程实践 + 社区参与”相结合的方式展开教学,以学生参与真实开源项目贡献为主线,帮助学生建立对现代开源生态、开发流程、协作规范与治理机制的整体认知。
课程目标
通过本课程的学习,学生将能够:
课程特点
1. 理论学习与工程实践结合
课程既介绍开源软件的发展历史、协作机制与治理模式,也注重学生的实际工程能力培养。学生将在课程中学习真实开源项目的开发流程,包括 issue 分析、代码提交、Pull Request、代码评审以及社区协作等内容,通过实践理解现代开源软件开发模式。
2. 多维度团队协作开发能力
课程不仅关注代码开发,也强调:
3. 前沿软件开发理论与实践
课程内容融合:
4. 鼓励交流讨论
课程采用类似翻转课堂(Flipped Classroom)的教学方式,鼓励学生围绕开源项目实践过程进行主动学习与交流讨论。课程设置三次阶段性汇报,学生需要围绕项目选择、贡献进展、技术问题与社区协作经验等内容进行分享,通过汇报与讨论提升工程表达能力、团队协作能力以及对开源生态的理解。
课程内容
其中,“智能时代的开源贡献”部分将重点讨论生成式AI、AI Agent 与开源生态之间的关系,包括 AI 辅助开发、AI 生成贡献、软件供应链风险以及 AI 对开源协作模式的影响。
教学方式
课程采用多种形式开展教学:
课程强调“做中学(Learning by Contributing)”的理念,鼓励学生通过真实贡献理解开源软件开发过程,并成为所选开源项目的贡献者。
实践内容
学生需选择一个真实开源项目,完成至少一次完整开源贡献流程,包括但不限于:
课程鼓励学生参与国内外主流开源社区。
适合对象
本课程适合:
课程预期收获
完成本课程后,学生将能够:
参考资料