Update 课程大纲.md
This commit is contained in:
parent
06ec182c57
commit
e6c9117b0e
90
课程大纲.md
90
课程大纲.md
|
@ -1,50 +1,96 @@
|
|||
# 2022年秋冬学期——课程大纲
|
||||
**主要内容:软工基础理论SE + 开源方法、技术和实践OSP + 开源文化OSC + 课程项目PRJ**
|
||||
# 2022年秋冬学期——课程大纲 (subject to change)
|
||||
|
||||
* 第1次课:开源软件及其开发概述。 09/07
|
||||
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
|
||||
|
||||
* 第1次课:开源软件及其开发概述。(课堂lecture) 09/07
|
||||
100课程简介:课程的目的和内容,以及课程的考核形式。 **lecture100**
|
||||
|
||||
101开源软件概述:开源的定义、历史和现状、社区结构和治理,以及开源研究。 **lecture101**
|
||||
|
||||
102开源参与概述:怎么参与开源项目和社区(如果时间允许,课堂上访问github/gitee/gitlink,设立平台账号,了解一个开源项目)。**lecture102**
|
||||
|
||||
> Lab 1:在github course社区中创建一个repo, 写下一个md文档,阐述目前想到的可能会去贡献的oss project(某个特定项目或具有某些特征的项目)。
|
||||
> 有Repo 1分
|
||||
> 有README.md 1分
|
||||
> 按要求的commit message,1分
|
||||
> 有OSS贡献计划 1分
|
||||
> OSS贡献计划体现出对项目的了解和自己的认真思考 1分
|
||||
|
||||
|
||||
* 第2次课:开源开发的支持平台和关键技术。(熟悉开源平台和Git操作) 09/14
|
||||
|
||||
201:Git实践入门
|
||||
|
||||
> 了解版本控制,了解使用Git,https://missing.csail.mit.edu/2020/version-control/
|
||||
202:GitHub实践入门
|
||||
> 了解如何用开源协作工具,熟悉Github/Gitee/GitLink--建立账号和代码仓库,浏览和fork项目
|
||||
|
||||
深化Lab1:面向自己的repo:
|
||||
- 提交一个issue;
|
||||
- 提交一个commit。
|
||||
|
||||
|
||||
* 第3次课:开源贡献指南 09/21
|
||||
|
||||
301:开源贡献指南:
|
||||
learn how the open source community works;
|
||||
how to make the first contribution;
|
||||
criteria to select open source project and task to participate in.
|
||||
> 以1~2个github项目/任务为例,展示如何做贡献(消除畏惧感);
|
||||
|
||||
任意选择一个开源项目,了解contributing.md的形式和内容。
|
||||
Lab 2:任意选择一个开源项目,了解并报告contributing.md的形式和内容。(了解其开发过程)
|
||||
|
||||
|
||||
* 第4次课:开源项目maintainer分享其维护/开发的经验。(多个项目,为开源任务选择做准备&提供依据) 09/28
|
||||
|
||||
* 第4次课:开源项目maintainer分享其维护/开发的经验。(多个项目,为开源任务选择做准备&提供依据) 09/28
|
||||
开源项目的分享:项目介绍、技术介绍、项目常用规则、如何参与。
|
||||
|
||||
|
||||
* 第5次课:课程项目的开始:选择开源项目和开源任务。 10/12
|
||||
学生报告,如何根据criteria to select open source project and task来进行开源任务的选择(报告模板参见课件)
|
||||
* 第5次课:如何选择任务参与(GitHub Good First Issue);
|
||||
Lab 3: 选几个oss project,研究一下gfi(然后看一下gfibot),对什么是好的gfi/或者怎么改进bot给个分析报告. (how to make the first contribution)
|
||||
|
||||
|
||||
* 第6次课:开源软件开发的典型开发活动及支持技术。 10/19
|
||||
|
||||
上机实习:了解三种CI流程管理工具Travis CI、GitHub Actions、Gitee Go, 知道如何使用这些工具编写简单的CI流水线,并且在实践项目上完成符合要求的成功构建。
|
||||
|
||||
实习过程中关于gitee go的建议:https://toscode.gitee.com/pitcher/gitee-go-exercise/issues
|
||||
* 第6次课:课程项目报告:选择开源项目和开源任务。 10/12
|
||||
学生报告,如何根据criteria to select open source project and task来进行开源任务的选择
|
||||
|
||||
|
||||
* 第7次课:了解PyPI/NPM等包管理系统,及打包/上载过程。
|
||||
* 第6次课:CI/CD。(上机实习) 10/19
|
||||
Lab 4:了解三种CI流程管理工具Travis CI、GitHub Actions、Gitee Go, 知道如何使用这些工具编写简单的CI流水线,并且在实践项目上完成符合要求的成功构建。
|
||||
|
||||
TBC...
|
||||
> 4Fun: 2021课程实习过程中关于gitee go的建议:https://toscode.gitee.com/pitcher/gitee-go-exercise/issues
|
||||
|
||||
|
||||
* 第7次课:闭源与开源软工的异同。(课堂lecture)11/2
|
||||
|
||||
|
||||
* 第8次课:了解PyPI/NPM等包管理系统,及打包/上载过程。(上机实习) 10/26
|
||||
Lab 5:学会使用pip进行python包的管理;学会使用poetry进行python包的管理;学会配置自己的python包,包括配置setup.py、setup.cfg和pyproject.toml;熟悉Python包生态系统平台PyPI,并且通过setuptools、wheel和build三种方式将自己的python包发布到testpypi平台上(注意,不是pypi平台。Testpypi https://test.pypi.org 是与PyPI分离的python包发布平台,使练习时发布的python包不会影响到真正的生态)
|
||||
|
||||
|
||||
* 第9次课:开源社区及开源文化。与开源布道师面对面。 11/9
|
||||
|
||||
|
||||
* 第10次课:课程项目报告:进度报告,涉及任务选择/合作反馈/工具使用等。 PRJ-2 11/16
|
||||
|
||||
|
||||
* 第11次课:开源开发中的沟通。 11/23
|
||||
协作和沟通的重要性,以及如何沟通,分布式沟通中的要点,如何提交PR等。
|
||||
Lab 6: 阅读linux kernel中的沟通实践,体会总结如何沟通能够获得响应等
|
||||
>提交issue时如何参与讨论,如何沟通;
|
||||
>提交pr时如何沟通。
|
||||
|
||||
|
||||
* 第12次课:开源生态和供应链。(课堂lecture) 11/30
|
||||
|
||||
|
||||
* 第13次课:开源治理与社区运营。 12/7
|
||||
开源基金会,开源与法律,开源商业化机制。
|
||||
社区运营,例如孵化社区的渠道,如果做meetup和宣传等。
|
||||
|
||||
|
||||
* 第14次课:开源开发相关的挑战和研究。(课堂lecture) 12/14
|
||||
|
||||
|
||||
* 第15次课:课程项目结题报告。 PRJ-3 12/21 (12/26停课复习)
|
||||
|
||||
|
||||
最后一次课之后2周内提交latex反思报告。
|
||||
|
||||
|
||||
**评分:
|
||||
上机实习lab: 6个,共50分
|
||||
课程项目PRJ:3次pre,每次5分,反思报告10分,最后的贡献结果15分,共40分
|
||||
|
||||
* 第15次课:课程项目结题报告。 PRJ-3 12/21 (12/26停课复习)
|
||||
|
|
Loading…
Reference in New Issue