4.5 KiB
课程大纲
主要内容:软工基础理论SE + 开源方法、技术和实践OSP + 开源文化OSC + 课程项目PRJ
- 第1次课:开源软件及其开发概述。 2021/09/17
100课程简介:课程的目的和内容,以及课程的考核形式。 lecture100
101开源软件概述:开源的定义、历史和现状、社区结构和治理,以及开源研究。 lecture101
- 第2次课:开源开发的支持平台、技术以及参与贡献的过程。(熟悉开源平台和相关参与操作,布置开源任务的选择)OSP-1 10/08
201:Git实践入门
202:GitHub实践入门
203:开源贡献指南:criteria to select open source project and task to participate in; learn how the open source community works; how to make the first contribution.
实践:在github course社区中创建一个repo, 写下一个md文档,阐述目前想到的可能会去贡献的oss project(某个特定项目或具有某些特征的项目)
-
第3次课:软件工程:传统软工与开源软工的异同。 SE-1 09/24
201:经典软件工程。lecture201
202:从传统软工到开源开发。lecture202
203:如何通过互联网了解一个开源项目的开发过程 (to be or not to be? TBC)
*** call for contribution:开发过程实例:企业开发一个产品版本的过程&一个开源软件版本的开发过程。 (鸣谢王旭提供了2页素材) *** -
第4次课:开源项目maintainer分享其维护/开发的经验。(多个项目,为开源任务选择做准备&提供依据)OSP-2 10/15
*** call for contribution:围绕其开源项目介绍如何参与、如何贡献,以及其项目常用规则 ***
开源项目的分享(操作系统,容器,AI框架):项目介绍、技术介绍、如何参与。
openEuler,胡欣蔚;
kata container,王旭;
paddlepaddle,朱欤。 -
第5次课:课程项目的开始:选择开源项目和开源任务。 PRJ-1 10/22
学生报告,如何根据criteria to select open source project and task来进行开源任务的选择(报告模板参见课件) -
第6次课:开源软件开发的典型开发活动及支持技术。(开源贡献实践篇:CI/CD)OSP-3 10/29
上机实习:了解三种CI流程管理工具Travis CI、GitHub Actions、Gitee Go, 知道如何使用这些工具编写简单的CI流水线,并且在实践项目上完成符合要求的成功构建。
实习过程中关于gitee go的建议:https://toscode.gitee.com/pitcher/gitee-go-exercise/issues -
第7次课:软件工程经典思想:设计原则。及其在开源项目中的应用和变化。 SE-2 11/05
-
第8次课:软件项目管理:软件过程与软件工程原则。 及其在开源项目中的应用和变化。SE-3 11/12 --- 思想实验:假设你发起了一个项目:1)选择一个你想实现的软件产品:what it is? 2)想象你怎么组织开发:多少人,多长时间,怎么管理进度和质量?
-
第9次课:开源社区及开源文化。与开源布道师面对面。 OSC-1 11/19
*** call for contribution:***
PingCAP CTO 黄东旭,内容: 开源分布式数据库TiDB概述;TiDB社区治理流程+PR实践;我眼中的开源文化。 -
第10次课:课程项目报告:进度报告,涉及任务选择/合作反馈/工具使用等。 PRJ-2 11/26
-
第11次课:开源许可证和开源基金会。 OSC-2 12/03
-
第12次课:开源开发中的沟通。(开源贡献实践篇:如何沟通,如何提交PR等。) OSP-5 12/10
开源软件开发的开发活动和支持技术:协作和沟通。(开源贡献实践篇:讲授+课堂实践) -
第x次课:开源治理,开源基金会,开源与法律。OSC-2 (optional)
-
第13次课:开源软件开发的挑战和相关研究。 OSC-3
-
第x次课:业界开源专家经验分享:开源需要的能力。 OSP+C 12/24 ---non--- *** call for contribution:***
-
第14次课:实践课:熟悉PyPI和NPM等包管理系统,了解打包和上载过程。
-
第15次课:课程项目结题报告。 PRJ-3 12/24 (之后停课)