## 开源软件开发导论 课程
北航 2022 秋季学期
课次1 

### 课程内容
1. 本课程的介绍： 老师，课程概况，如何适应在线课程和实地课程，如何参加开源实践

2. 在课堂上收集同学们的问卷调查，了解同学们的技术能力，对课程的期望

3. 各种软件开发的流程介绍 （取决于学生的程度，可长可短）

4. 介绍开源软件基本概念、发展历史


### 学生作业
一些准备工作：

1. 建立自己的 CSDN 账户，尝试写简单的博客 
2. 完成 CS入门技能树 https://edu.csdn.net/skill/gml  你会在 gitcode.net 上创建一个自己项目。 你还可以克隆我们课程的项目： https://gitcode.net/csdn/intro-ossd 
3. 第 0 个作业，一个超级简单的 “作业”：https://bbs.csdn.net/topics/607938213 这个作业没有分数，就是让大家练手。 
4. 课后练习：请快速通关简单的 Git/Markdown/Linux 技能树： https://edu.csdn.net/skill/gml  


5. 第一个作业，阅读并提问
5.1 阅读 “2022 中国开源发展蓝皮书” （自己可以搜索最新版本），
5.2 参加开源项目，听起来很简单，不就是大家都参加项目并提交代码吗？ 请看下面的资料，了解参加开源项目的各种体验：

http://t.csdn.cn/aJjfw  20 年开源经历的程序员的故事

http://t.csdn.cn/Epv3j 参与开源，从给 RocketMQ 提 issue 开始

http://t.csdn.cn/ihAJj 吴峰光的开源经历：一个补丁迭代了 16 个版本。 

http://t.csdn.cn/JzNOQ 跨组织，跨地域的开源协作

http://t.csdn.cn/ycKTQ 开源社区为何禁止某用户提交代码？

http://t.csdn.cn/XaV3K http://t.csdn.cn/StocR  大家都参与，开源项目就很安全么？如何让开源项目可维护？ 

http://t.csdn.cn/7z2PQ http://t.csdn.cn/0zqQ7 失败的项目和开源的关系

http://t.csdn.cn/iOavp 20 年开源的回顾，采访五位代表性人物

http://t.csdn.cn/NYgTS 一个普通开源爱好者的回忆

http://t.csdn.cn/SIrWQ 一个中国小公司开源的思考和过程 

还有很多和开源相关的书籍可以阅读：https://gitcode.net/csdn/intro-ossd/-/blob/master/chapters/open-source-booklet-20220829.pdf 

作业的内容：

你既然来学习 ”开源软件开发“ 这个课程，那么你一定对这个领域有不少疑问。 上这门课的所有学生的疑问一定是不一样的，那么，你把你的疑问讲得越清楚，就越能帮助老师、助教、业界专家、甚至其他同学了解你的疑问，和你讨论并试图解答。 

写一篇博客，在自己的 CSDN 博客账号下发表，描述自己目前还不知道答案的五个具体问题。
注意：是 “还不知道答案” 的问题。 请不要写很宏大的问题，如 “开源的意义“， ”怎么让开源项目成功” 。 而是一个具体的问题。 

#### 一个模板可以是这样： 
我看了这一段文字 【引用文字】，有这个问题 【提出问题，描述问题】。 

我查了资料，有这些说法 【引用说法】

你提问题的原因，是因为自己的假设和书中的不同而提问，还是不懂书中的术语，还是对推理过程有疑问，还是书中的描述和你的经验 (直接经验或间接经验) 矛盾？根据我的实践，我得到这些经验 【描述自己的经验】。 

但是我还是不太懂，我的困惑是 【说明困惑】。

或者是，我反对这段文字中作者的观点 (提出作者的观点，自己的观点，二者差别，以及你的理由)。 

大学生应该能写出自己的思考， 而不是摘抄书本内容。

关于如何提问，也有很多人给了建议，这是其中的一个，他的原作者大家可能有所耳闻：
http://tieba.github.io/common/howtoask.html

### 怎么交作业
很简单，看这里： https://bbs.csdn.net/topics/607938212 


注意：参考资料中的观点是作者在不同的历史时期发出的，未必适合于现在的开源生态，也未必正确。 
