OSSDevelopment/Syllabus.md

171 lines
7.8 KiB
Markdown
Raw Normal View History

2022-09-22 10:58:32 +08:00
Copyright (c) 2022 [minghuizhou@osslab-pku]
[OSSDevelopment-course/开源软件开发&技术课程] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
2022-09-06 12:43:42 +08:00
2022-09-05 16:27:50 +08:00
# 2022年秋冬学期——课程大纲 (subject to change)
2022-08-23 14:44:23 +08:00
2022-09-05 16:27:50 +08:00
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
2022-08-23 14:44:23 +08:00
2022-09-07 10:12:12 +08:00
授课教师:周明辉 zhmh@pku.edu.cn
助教: 何昊 heh@pku.edu.cn
2022-09-06 17:12:22 +08:00
## 第1次课开源软件及其开发概述课堂lecture 09/07
* 100课程简介课程的目的和内容以及课程的考核形式。 **lecture100**
* 101开源软件概述开源的定义、历史和现状、社区结构和治理以及开源研究。 **lecture101**
2022-09-09 15:54:24 +08:00
课堂练习:
* 课堂上访问github/gitee/gitlink设立平台账号了解一个开源项目。
* 阅读并了解Lab1。
2022-09-06 17:12:22 +08:00
2022-09-06 20:49:20 +08:00
> **Lab 1练习使用git和GitHub7分**
> - 注册GitHub账号
2022-09-06 17:12:22 +08:00
> - 加入课程的[Organization](https://github.com/OSS-Dev-Course-PKU)
> - 创建GitHub仓库并添加commit于README.md写下目前的开源项目贡献想法
>
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md)**截止日期2022.09.28 11:59am**
## 第2次课开源开发的支持平台和关键技术熟悉开源平台和Git操作课堂lecture 09/14
2022-09-09 15:54:24 +08:00
2022-09-13 18:04:55 +08:00
* 201Git实践入门 **lecture201**
2022-09-06 17:12:22 +08:00
- 了解版本控制了解使用Githttps://missing.csail.mit.edu/2020/version-control/
2022-09-13 18:04:55 +08:00
* 202GitHub实践入门 **lecture202**
2022-09-06 17:12:22 +08:00
- 了解如何用开源协作工具熟悉Github/Gitee/GitLink--建立账号和代码仓库浏览和fork项目
2022-09-14 16:52:59 +08:00
2022-09-06 17:12:22 +08:00
> **Lab 1扩展练习使用issue、fork和PR**
> - 提交一个issue描述自己的想法相比较于第一次提交做出了哪些变化
> - 将仓库fork到自己的账号下对README.md做出相应修改并提出一个PR
>
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md)**截止日期2022.09.28 11:59am**
## 第3次课开源贡献指南课堂lecture 09/21
2022-08-23 14:44:23 +08:00
2022-09-21 11:57:13 +08:00
* 301开源参与概述怎么参与开源项目和社区。 **lecture301**
* 301开源贡献指南 **lecture302**
2022-09-05 16:33:38 +08:00
- learn how the open source community works;
- criteria to select open source project and task to participate in.
2022-09-26 14:38:03 +08:00
2022-09-29 11:38:00 +08:00
* 303: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感) **lecture303**
2022-08-23 14:44:23 +08:00
2022-09-06 20:49:20 +08:00
> **Lab 2了解开源项目的开发方式和贡献流程7分**
2022-09-06 17:12:22 +08:00
>
> 任意选择一个活跃、成熟的开源项目:
> - 了解并报告CONTRIBUTING.md的形式和内容
> - 回答有关其贡献流程、质量管理方式等若干问题
>
2022-09-21 14:42:03 +08:00
> Lab 2详细要求参见[WriteUp](Assignments/Lab2.md)**截止日期2022.10.05 11:59am**
2022-08-23 14:44:23 +08:00
2022-09-26 14:38:03 +08:00
## 第4次课开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 09/28
2022-08-23 14:44:23 +08:00
2022-10-06 12:42:10 +08:00
* 开源项目的分享:项目介绍、技术介绍、项目常用规则、如何参与。
2022-10-09 16:29:44 +08:00
* 张军(百度飞桨):飞桨开源社区及开源贡献介绍
2022-10-06 12:42:10 +08:00
* 林俊旸(阿里巴巴达摩院智能计算实验室):多模态大模型开源介绍,以及达摩院一站式开源模型服务平台介绍
* 齐宝玮(华为鸿蒙):开源鸿蒙开发者社区运营经验分享
## 第5次课开源开发的思想和原则开源任务的实践和经验。课堂lecture 10/05
2022-08-23 14:44:23 +08:00
2022-10-06 12:42:10 +08:00
* 501从经典软工到开源开发 **lecture501**
* 502如何选择开源任务参与GitHub Good First Issue **lecture502**
2022-08-23 14:44:23 +08:00
2022-09-06 20:49:20 +08:00
> **Lab 3在开源项目中选择开发任务8分**
2022-09-06 17:12:22 +08:00
>
> - 选择一个或者多个感兴趣的开源项目,探索并报告:
> * 是否具有Good First Issue机制
> * 如果你需要在其中选择开发任务,你会如何做
>
2022-09-21 14:42:03 +08:00
> Lab 3详细要求参见[WriteUp](Assignments/Lab3.md)**截止日期2022.10.19 11:59am**
2022-09-05 16:27:50 +08:00
2022-09-21 11:57:13 +08:00
## 第6次课课程项目开题报告选择开源项目和开源任务 10/12
2022-09-05 16:27:50 +08:00
2022-10-06 12:42:10 +08:00
* 学生报告,
1初始选择了什么开源项目和任务
2对此开源项目及其指南的认识
3贡献计划。
2022-09-05 16:27:50 +08:00
2022-09-21 11:57:13 +08:00
## 第7次课CI/CD上机实习 10/19
2022-09-06 17:12:22 +08:00
2022-09-06 20:49:20 +08:00
> **Lab 4CI/CD流水线搭建10分**
2022-09-06 17:12:22 +08:00
>
2022-10-29 11:13:58 +08:00
> 了解CI/CD流程管理工具GitHub Action知道如何编写简单的CI/CD流水线并且在实践项目上完成符合要求的成功构建
2022-09-06 17:12:22 +08:00
>
2022-09-21 14:42:03 +08:00
> Lab 4详细要求参见[WriteUp](Assignments/Lab4.md)**截止日期2022.11.02 11:59am**
2022-09-06 17:12:22 +08:00
>
> 4Fun: 2021课程实习过程中关于gitee go的建议https://toscode.gitee.com/pitcher/gitee-go-exercise/issues
2022-09-05 16:27:50 +08:00
2022-10-28 14:59:09 +08:00
## 第8次课开源开发中的沟通实践课堂lecture 10/26
2022-09-05 16:27:50 +08:00
2022-10-28 14:59:09 +08:00
* 协作和沟通的重要性如何沟通分布式沟通中的要点如何提交PR等。
2022-09-05 16:27:50 +08:00
2022-09-21 11:57:13 +08:00
## 第9次课PyPI/NPM等包生态系统/包管理工具,使用/打包/上载软件包(上机实习) 11/2
2022-09-05 16:27:50 +08:00
2022-09-06 20:49:20 +08:00
> **Lab 5Python开源软件包安装/管理/打包/上载10分**
2022-09-06 17:12:22 +08:00
>
2022-10-29 11:13:58 +08:00
> - 使用Poetry进行Python包的安装、管理与打包
> - 利用依赖对Python包实现新功能
> - 将自己的Python包手动发布到TestPyPI
> - 配置自动化的CI/CD流水线实现从GitHub直接发布Python包到TestPyPI注意不是PyPI平台。[TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台使练习时发布的Python包不会影响到真正的生态
2022-09-06 17:12:22 +08:00
>
2022-09-21 14:42:03 +08:00
> Lab 5详细要求参见[WriteUp](Assignments/Lab5.md)**截止日期2022.11.23 11:59am**
2022-09-05 16:27:50 +08:00
2022-11-02 17:06:19 +08:00
## 第10次课课程项目进度报告任务选择/合作反馈/工具使用等 PRJ-2 11/9
2022-09-05 16:27:50 +08:00
2022-11-02 17:06:19 +08:00
## 第11次课开源社区及开源文化与开源布道师面对面 11/16
2022-11-25 12:49:25 +08:00
* 陈绪:漫谈云计算和开源社区
* 李建盛:多重维度下的开源之史
* 朱其罡:开放原子基金会及其开源项目简介
2022-09-05 16:33:38 +08:00
2022-11-25 12:49:25 +08:00
## 第12次课开源的几个关键问题课堂lecture 11/23
* 开源为什么能成功?
* 开源模式会主宰未来吗?
* 什么是“卡脖子”问题?
2022-09-05 16:27:50 +08:00
2022-11-25 12:49:25 +08:00
> **Lab 6开源项目中的沟通实践8分**
2022-09-06 20:49:20 +08:00
>
2022-11-25 12:49:25 +08:00
> 阅读Linux Kernel沟通实践相关资料体会总结开源沟通的最佳实践。
2022-10-28 14:59:09 +08:00
> or, 选择任何一个开源项目,阅读体会其沟通实践,总结最佳实践。
> 8分
2022-09-06 17:12:22 +08:00
>
> - 提交issue时如何参与讨论如何沟通
> - 提交pr时如何沟通
>
2022-09-21 14:42:03 +08:00
> Lab 6详细要求参见[WriteUp](Assignments/Lab6.md)**截止日期2022.12.07 11:59am**
2022-09-05 16:27:50 +08:00
2022-09-21 11:57:13 +08:00
## 第13次课开源开发和生态相关的挑战和研究课堂lecture 11/30
2022-08-23 14:44:23 +08:00
2022-09-06 17:12:22 +08:00
* 开源软件供应链
* 开源生态
2022-08-23 14:44:23 +08:00
2022-09-21 11:57:13 +08:00
## 第14次课开源治理与社区运营 12/7
2022-08-23 14:44:23 +08:00
2022-09-06 17:12:22 +08:00
* 开源基金会,开源与法律,开源商业化机制
* 社区运营例如孵化社区的渠道如何做meetup和宣传等
2022-08-23 14:44:23 +08:00
2022-09-21 11:57:13 +08:00
## 第15次课课程项目结题报告 PRJ-3 12/14
2022-08-23 14:44:23 +08:00
2022-09-21 11:57:13 +08:00
> 最后一次课之后需要提交课程项目最终报告LaTeX格式**截止日期2022.12.28 11:59am**
2022-09-06 17:12:22 +08:00
>
> 课程项目的详细要求参见[WriteUp](Assignments/Project.md)
2022-08-23 14:44:23 +08:00
2022-09-06 17:12:22 +08:00
## 评分标准
2022-08-23 14:44:23 +08:00
2022-09-06 17:13:59 +08:00
* 课堂表现10分
- 上课参与讨论、提问若点名未到且未事先请假一次扣2分最多10分
- 课堂表现优秀者,视情况酌情加分
* 上机实习Lab6个共50分
- Git/贡献指南/GFI/沟通7~8分一个共30分
- CI/CD和包管理10分一个共20分
* 课程项目PRJ40分
- 3次presentation开题/中期/结题每次5分
- 期末报告10分
- 最后的贡献结果15分