Skip to content

北京大学信息科学技术学院《开源软件技术》课程材料 // Course Materials for “Open Source Software Development and Technology” at School of EECS, Peking University

License

Notifications You must be signed in to change notification settings

osslab-pku/OSSDevelopment

Repository files navigation

OSSDevelopment //《开源软件开发/技术》课程

本课程主要面向大学计算机系本科生和研究生设计,希望通过本课程的教学,使得计算机领域的同学们能够:

  1. 对于开源软件的开发方法、开发过程和支持技术有深入的了解;
  2. 对于如何将抽象方法和理论知识结合到工程中有更好的锻炼;
  3. 对于开源软件社区参与有基本的掌握,具备参与开源软件开发的基本能力。

课程背景

开源软件在科学研究、工业制造、以及日常生活中发挥着重要作用。近年来,开源软件在云计算、大数据、人工智能等新兴领域迅速成为技术主流。开源软件不仅在计算机科学和软件工程中扮演了重要的角色,也成为了社会生活所依赖的关键基础设施。国内很多IT公司也在逐渐推出高质量的开源项目,例如openEuler、TiDB、OceanBase、PaddlePaddle等。开源已经成为软件技术创新和软件产业发展的主要模式。

与传统开发模式相比,开源开发展现出充分共享、自由协同、无偿贡献、用户创新、持续演化的新特征,颠覆了诸多经典软件工程的基本假设和理论。越来越多的IT公司在内部推行开源理念和开发方法,以期提高创新能力以及开发效率和质量等。相比传统软件开发,开源软件开发有一套新的模型和技术。然而,鉴于相关课程的缺乏,广大同学们往往对此缺乏理解和实践;而初学者在试图对开源软件做出贡献时,通常会感到无从下手,困难重重。因此,我们开设此课程,以帮助计算机领域的同学们了解开源软件开发和开源社区参与,这是现时代技术环境下亟待掌握的基本知识。

先置知识

  1. (必须)熟练掌握至少一门编程语言
  2. (必须)具备基本的英语沟通交流能力
  3. (推荐)对开源和计算机技术有兴趣,有想要做出贡献的领域,希望培养自我驱动力和锻炼自主学习能力
  4. (可选)开发过有一定规模的软件项目,或阅读过软件工程有关书籍,或选修过软件工程相关课程

内容提要

本课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术,具体包含如下内容:

  1. 开源模式: 开源历史发展;互联网协作技术的演变和革新;工业界开源布道师分享;...
  2. 开源开发活动: 开源开发流程、社区维护/协作模式、贡献指南、如何沟通、Issues、Pull-Based Development、...
  3. 相关流程、工具和最佳实践: git、GitHub/Gitee/GitLab、CI/CD/DevOps、Code Review、Good First Issue、...
  4. 前沿研究和实践: 开源社区治理、商业协作、开源生态系统、开源软件供应链管理、安全性/可持续性问题、相关实证研究方法、...

课程的主要考核方式如下(每学期会有所调整,以最终发布的课程作业为准):

  1. 实践作业(Lab): 创建GitHub项目、提交PR、配置CI/CD流水线、发布开源软件包、...
  2. 报告: 开源项目和任务选择、Linux Kernel中的沟通实践、前沿学术论文阅读、...
  3. 课程项目: 选择某个开源项目并做出实际贡献,在课程上报告进展和思考,并提交期末报告

学分/学时分配

课程为3学分,总学时为48学时(3*16),大致学时分配:课程讲授占50%,学生的文献阅读和讨论占20%,学生参与开源项目的实践报告占30%。

文件结构

如何贡献

  • 在我们的课程上宣传您的开源项目! 详见CONTRIBUTING.md
  • 希望使用相关材料用于您的教学?请联系我们
  • 认为课程设计和作业设计存在不足?有任何意见和建议?请发起一个Discussion
  • 在任何地方发现了Typo、Bug、或格式问题?请开启一个Issue或者直接提交Pull Request

关于贡献指南相关、和项目开发的基本约定等更多信息,请参见CONTRIBUTING.md

使用本仓库的课程

  1. 北京大学信息科学技术学院,《开源软件技术》

    • 2021-2022学年秋季学期、2022-2023学年秋季学期
  2. 跟头歌共建的实训课程参见:https://www.educoder.net/paths/9i8a7og6

About

北京大学信息科学技术学院《开源软件技术》课程材料 // Course Materials for “Open Source Software Development and Technology” at School of EECS, Peking University

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published