## 开源软件开发导论 课程 北航 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 注意:参考资料中的观点是作者在不同的历史时期发出的,未必适合于现在的开源生态,也未必正确。