0.md 4.6 KB
Newer Older
SoftwareTeacher's avatar
SoftwareTeacher 已提交
1 2 3 4 5 6 7
## 课程简介:
《开源软件开发导论》课程是一门面向软件工程、计算机科学与技术等专业的高年级本科生的专业课程。课程的目的是通过系统地讲授开源软件的发展历史与现状、基本思想与概念、开发方法与关键技术、支撑工具与系统平台以及相关科研工作,同时结合基于互联网开源软件平台的课程实践环节,使学生掌握开源软件开发的理论知识与实践技能,具备进行开源软件开发和开展相关研究的能力。


This course is designed for senior undergraduate students majoring in software engineering and computer science and technology. The main objectives of this course are: introduction to the history and current status, the basic ideas and concepts, development methods and key technologies, supporting tools and platform, and related research of open source software; course project practice based on Internet open source software platforms; enabling students to master the theoretical knowledge and practical skills for open source software development; prepare the students for future research and engineering work in this field. 

## 课程计划
SoftwareTeacher's avatar
Master  
SoftwareTeacher 已提交
8 9 10 11 12 13 14
- 1.  开源软件背景知识(2学时)
- 2.  开源软件开发的基本概念与实例剖析(6学时)
- 3.  开源软件开发方法与支撑工具(6学时)
- 4.  开源软件开发实践(10学时)
- 5.  开源软件研究(2学时)
- 6.  开源的发展趋势与未来展望(2学时)
- 7.  个人实践报告,项目实践总结报告(4学时)
SoftwareTeacher's avatar
SoftwareTeacher 已提交
15 16 17 18 19

## 教学方法与考核
【教学方法】本课程采用课堂教学、团队实践和研讨并重、结合课外学习和实践的教学方法。由于这门课程是讲开源软件的,绝大部分课程资料和学生的作业都已公开的形式展现出来。 
【考核】平时成绩 50%,项目实践成绩 50% 

SoftwareTeacher's avatar
Master  
SoftwareTeacher 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
## 课程安排
- 课次1: 课程介绍,开源背景介绍,第一次作业布置
- 课次2: 介绍开源软件开发的基本概念,包括开源平台、开源社区、开源项目、开源生态和开源协议等
- 课次3: 开源软件开发的实例剖析 (1)
- 课次4: 开源软件开发的实例剖析 (2)
- 课次5: 开源软件开发的实例剖析 (3)
- 课次6: 开源软件开发方法与支撑工具(1)
- 课次7: 开源软件开发方法与支撑工具(2)
- 课次8: 开源软件开发方法与支撑工具(3)
- 课次9: 开源软件开发实践(1)
- 课次10: 开源研究
- 课次11: 开源软件开发实践(2)
- 课次12: 开源软件开发实践(3)
- 课次13: 开源软件开发实践(4)
- 课次14: 开源软件开发实践(5)
- 课次15: 开源的趋势与未来展望
- 课次16: 项目报告(1):个人实践报告,项目实践报告
- 课次17: 项目报告(2):实践报告总结

SoftwareTeacher's avatar
SoftwareTeacher 已提交
39 40 41 42 43 44
## 这门课的老师  
- 孙海龙: http://shi.buaa.edu.cn/sunhailong/zh_CN/index.htm 
- 高翔:http://soft.buaa.edu.cn/info/1124/6921.htm 
- 邹欣:https://edu.csdn.net/me/softwareteacher 

## 关于这门课的教学方法
SoftwareTeacher's avatar
SoftwareTeacher 已提交
45
Learning by Doing (做中学),通过实践来学习。
SoftwareTeacher's avatar
SoftwareTeacher 已提交
46 47 48 49 50
工欲善其事,必先利其器,在这门课中,我们需要一些工具:
- git,markdown,linux:请看这个在线课程: https://edu.csdn.net/skill/gml
- 常用的编程环境,可以从简单的 VS Code 开始
- 开一个 CSDN 账号,我们的教案都放在这里 https://gitcode.net/csdn/intro-ossd
    其中,目录 plan 是放教学的内容; 目录 PlayGround 是让同学们尝试各种 git 的协作操作,例如 git merge,等。 
SoftwareTeacher's avatar
SoftwareTeacher 已提交
51 52 53

## 参考项目
大家可以从这些项目中选择一个或者几个项目参与:
SoftwareTeacher's avatar
SoftwareTeacher 已提交
54

SoftwareTeacher's avatar
SoftwareTeacher 已提交
55
- 开源的技能树:https://gitcode.net/csdn/skill_tree_opensource (构建一个覆盖开源软件开发知识和技能的结构化的知识图谱 + 练习题)
SoftwareTeacher's avatar
SoftwareTeacher 已提交
56
- 开源的 CSDN 可视化项目: https://gitcode.net/csdn/csdn-datav  (一个基于海量 CSDN 数据的大数据可视化项目,由 CSDN 的技术人员和社区开源爱好者一起合作开发)
SoftwareTeacher's avatar
SoftwareTeacher 已提交
57
- 开源的笔记项目: https://gitcode.net/weixin_45873510/okidoki (一个帮助用户做笔记和事项管理的开源小软件,由北航学生开发了第一版,作为 北航计算机学院软件工程课程的项目之一)
SoftwareTeacher's avatar
SoftwareTeacher 已提交
58 59
- https://gitcode.net/ViewDesign/view-design (View Design 是基于 Vue.js 3 的企业级 UI 组件库和前端解决方案,有开源版本)

SoftwareTeacher's avatar
SoftwareTeacher 已提交
60
- 大家还可以参加一些企业的开源项目,只要事先得到老师的批准,并且工作量和工作质量得到企业和老师的认可,这也可以算为是课程的开源部分。 
SoftwareTeacher's avatar
Master  
SoftwareTeacher 已提交
61

SoftwareTeacher's avatar
SoftwareTeacher 已提交
62
详细的参考项目介绍可以看本目录下的 project.md 文件。