Add files via upload

课程简介和课程大纲
This commit is contained in:
minghuizhou 2021-07-06 16:32:57 +08:00 committed by GitHub
parent 7e2e9af553
commit 4771838ed2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 2 deletions

View File

@ -1,2 +1,13 @@
# OSSDevelopment
Materials for the course <open source software development/open source technology>
本课程为大学计算机系本科生和研究生设计,课程目的是使得计算机领域的同学们对于开源软件的开发方法、开发过程和支持技术有深入的了解,对于如何将抽象方法和理论知识结合到工程中有更好的锻炼,对于参与开源软件社区有基本的掌握。
## 课程背景:
开源软件在科学研究、工业制造、以及日常生活中发挥着重要作用。特别是近年来,开源软件在云计算、大数据、人工智能等新兴领域迅速成为技术主流。开源软件不仅是重要的计算基础设施, 也成为了社会生活依赖的基础设施。此外国内很多IT公司也逐渐推出了一些高质量的开源项目比如openEuler、TiDB、oceanBase、PaddlePaddle等。开源已经成为软件技术创新和软件产业发展的主要模式。
与传统开发模式相比开源开发展现出充分共享、自由协同、无偿贡献、用户创新、持续演化的新特征颠覆了诸多经典软件工程的基本假设和理论。越来越多的IT公司在内部推行开源理念和开发方法以期提高创新能力以及开发效率和质量等。相比传统软件开发开源软件开发有一套新的模型和技术。然而鉴于相关课程的缺乏广大同学们对此缺乏理解和实践。因此我们开设此课程以帮助计算机领域的同学们了解开源软件开发和开源社区参与这是现时代技术环境下亟待掌握的基本知识。
## 内容提要:
本课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术。本课程将首先讲述开源模式,接下来分别介绍每个开发活动的背后的原理、基本操作流程和技术及最佳实践。其中,开源模式以开源历史发展为基础,介绍互联网协作技术的演变和革新,并计划邀请工业界开源布道师进行分享,让同学们对开源活动有直观的认知和体验;开源开发活动的理论知识和最佳实践将参考当前学术界对开源软件开发的经典以及最新的研究工作进行教授;开发活动的基本操作流程、技术和实践将邀请业界开源领域的优秀开发者进行传授。最后,课程将以选择并参与某个开源项目为课程大作业,以训练同学们将所学理论知识应用到实践当中的能力。
## 学时分配
课程总学时为48学时3*16大概分配课程讲授占50%学生的文献阅读和讨论占20%学生参与开源项目的实践报告占30%。

31
outline.md Normal file
View File

@ -0,0 +1,31 @@
课程大纲
## 第1次课开源软件及其开发概述历史和现状国际开源社区国内开源发展。引言
## 第2次课软件开发过程开源的变革。传统软工与开源软工的异同。软工基础理论篇
## 第3次课开源开发的支持平台、技术以及参与贡献的过程。熟悉开源平台和相关参与操作布置开源任务的选择
## 第4次课课程项目的开始选择开源项目和开源任务。criteria to select open source project and task
## 第5次课邀请国内开源项目maintainer分享其创建、维护/开发开源项目的经验。(多个项目,为开源任务选择做准备&提供依据)
## 第6次课软件工程经典思想和原则设计原理。及其在开源项目中的应用和变化。软工基础理论篇
## 第7次课开源软件开发的典型开发活动及支持技术1开源贡献实践篇如何沟通如何提交PR, et al.
## 第8次课课程项目报告1任务选择合作反馈工具使用等。
## 第9次课开源社区及开源文化。与开源布道师面对面。
## 第10-11次课开源软件开发的开发活动和支持技术、及实践2开源贡献实践篇讲授+课堂实践)
## 第12次课课程项目报告2工具使用社区体验问题和挑战等尤其协同协作问题
 
## 第13次课开源治理开源基金会开源与法律。
## 第14次课开源软件开发的挑战和相关研究。
## 第15次课邀请业界开源专家就开源开发进行经验分享开源需要的技术和能力。
## 第16次课课程项目结题报告。