Cleanup and prepare for a new semester
This commit is contained in:
parent
aa85e3dfd1
commit
8dc85e47b8
|
@ -1 +0,0 @@
|
|||
2021年秋季课程材料在此文件夹下
|
|
@ -1,74 +0,0 @@
|
|||
# 课程大纲
|
||||
**主要内容:软工基础理论SE + 开源方法、技术和实践OSP + 开源文化OSC + 课程项目PRJ**
|
||||
|
||||
* 第1次课:开源软件及其开发概述。 2021/09/17
|
||||
100课程简介:课程的目的和内容,以及课程的考核形式。 **lecture100**
|
||||
101开源软件概述:开源的定义、历史和现状、社区结构和治理,以及开源研究。 **lecture101**
|
||||
<!--
|
||||
102开源参与概述:怎么参与开源项目和社区(如果时间允许,课堂上访问github/gitee/educoder,设立平台账号,了解一个开源项目)。**lecture102**
|
||||
-->
|
||||
|
||||
|
||||
* 第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次课:软件工程:传统软工与开源软工的异同。 <u>SE-1</u> 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次课:软件工程经典思想:设计原则。及其在开源项目中的应用和变化。 <u>SE-2</u> 11/05
|
||||
|
||||
* 第8次课:软件项目管理:软件过程与软件工程原则。 及其在开源项目中的应用和变化。<u>SE-3</u> 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 (之后停课)
|
|
@ -0,0 +1,9 @@
|
|||
## 项目维护者
|
||||
[周明辉]( https://minghuizhou.github.io/ ) 北京大学博雅特聘教授
|
||||
|
||||
## 项目贡献者
|
||||
|
||||
* [张宇霞](https://cs.bit.edu.cn/szdw/jsml/fjs/zyx/index.htm) 北京理工大学
|
||||
* [谭鑫](https://sites.google.com/view/xintan/homepage) 北京航空航天大学
|
||||
* [何昊](https://hehao98.github.io) 北京大学
|
||||
|
17
README.md
17
README.md
|
@ -1,6 +1,23 @@
|
|||
本课程为大学计算机系本科生和研究生设计,课程目的是使得计算机领域的同学们对于开源软件的开发方法、开发过程和支持技术有深入的了解,对于如何将抽象方法和理论知识结合到工程中有更好的锻炼,对于参与开源软件社区有基本的掌握。
|
||||
|
||||
## 开源项目招募!
|
||||
|
||||
本课程的大作业为学生参与开源项目,完成某个任务。
|
||||
什么是任务?可以是为某个开源项目报告某个issue,fix某个bug,增加某个feature(if possible),或者为某个issue添加一个comment以提供solution,等等。
|
||||
|
||||
在此过程中,开源项目的参与至关重要,
|
||||
|
||||
* 可以为学生选择想要参与的开源项目提供线索;
|
||||
* 可以为学生进入开源项目提供精细化指南;
|
||||
* 可以为学生宣讲和展现开源技术和文化。
|
||||
|
||||
从开源项目的角度,本课程为其提供校园宣传和招新机会。
|
||||
|
||||
有鉴于此,我们招募开源项目。
|
||||
任何乐意参与的开源项目,可在此发起issue,提供项目介绍和联系方式。或者发送邮件给:zhmh@pku.edu.cn。
|
||||
|
||||
## 课程背景:
|
||||
|
||||
开源软件在科学研究、工业制造、以及日常生活中发挥着重要作用。特别是近年来,开源软件在云计算、大数据、人工智能等新兴领域迅速成为技术主流。开源软件不仅是重要的计算基础设施, 也成为了社会生活依赖的基础设施。此外,国内很多IT公司也逐渐推出了一些高质量的开源项目,比如openEuler、TiDB、OceanBase、PaddlePaddle等。开源已经成为软件技术创新和软件产业发展的主要模式。
|
||||
|
||||
与传统开发模式相比,开源开发展现出充分共享、自由协同、无偿贡献、用户创新、持续演化的新特征,颠覆了诸多经典软件工程的基本假设和理论。越来越多的IT公司在内部推行开源理念和开发方法,以期提高创新能力以及开发效率和质量等。相比传统软件开发,开源软件开发有一套新的模型和技术。然而,鉴于相关课程的缺乏,广大同学们对此缺乏理解和实践。因此,我们开设此课程,以帮助计算机领域的同学们了解开源软件开发和开源社区参与,这是现时代技术环境下亟待掌握的基本知识。
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
#this folder is for courseware, will produce slides based on the outline of the course. ***此文件夹为课程课件***
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
##maintainers:
|
||||
北京大学 周明辉
|
||||
|
||||
##contributors:
|
||||
北京理工大学 张宇霞
|
||||
北京航空航天大学 谭鑫
|
|
@ -1,17 +0,0 @@
|
|||
#this folder is for courseware, will produce slides based on the outline of the course. ***此文件夹为课程课件***
|
||||
|
||||
## 实践课程的课件: requirements
|
||||
|
||||
1, Version control with git: How to use git?
|
||||
ppt + video
|
||||
|
||||
2, Practice in Github: how to use github?: Open a repo, fork a repo, start discussion/issue, submit pr
|
||||
ppt + video
|
||||
|
||||
学生实践操作:在课程organization里创建一个repository,并创建一个md文件,随意写下自己对开源的理解(例如,描述自己可能有兴趣贡献的开源项目或任务的特征)。
|
||||
|
||||
3, Select a project/task to contribute: understand what good first issue (GFI) is at GitHub, skim over the repos that have GFI, locate GFIs to understand what skills they require (with examples).
|
||||
|
||||
4, Practice of making contribution: understand the protocol of a project: reading CONTRIBUTING.MD -- understand what it says about how to make contribution (with an example).
|
||||
|
||||
5, Practice of communication: what to say, how to say it, when to communicate
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,14 +0,0 @@
|
|||
# 开源项目的招募
|
||||
|
||||
本课程的大作业为学生参与开源项目,完成某个任务。
|
||||
什么是任务?可以是为某个开源项目报告某个issue,fix某个bug,增加某个feature(if possible),或者为某个issue添加一个comment以提供solution,等等。
|
||||
|
||||
在此过程中,开源项目的参与至关重要,
|
||||
* 可以为学生选择想要参与的开源项目提供线索;
|
||||
* 可以为学生进入开源项目提供精细化指南;
|
||||
* 可以为学生宣讲和展现开源技术和文化。
|
||||
|
||||
从开源项目的角度,本课程为其提供校园宣传和招新机会。
|
||||
|
||||
有鉴于此,我们招募开源项目。
|
||||
任何乐意参与的开源项目,可在此发起issue,提供项目介绍和联系方式。或者发送邮件给:zhmh@pku.edu.cn。
|
Loading…
Reference in New Issue