You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
本课程为大学本科生和研究生设计,课程目的是使得计算机领域的同学们对于开源软件的开发方法、过程和技术有深入的了解,对于如何将抽象方法和理论知识结合到工程中有更好的锻炼,对于参与开源软件社区有基本的掌握。
## 课程背景:
了解开源软件开发和开源社区成长及其相关支撑技术和方法是计算机领域的同学们在现时代技术环境下亟待掌握的基本知识,不仅可以帮助理解和使用开源软件、参与开源开发和开源社区,并且还可以学习掌握一种新型软件开发模型。本课程采用理论知识和开源实践相结合的方式进行设计,从开放的开源开发活动出发,面向软件工程的典型问题,讲授开源软件开发涉及的理论知识、方法技术和实践经验,并以课程项目为要求训练开源实践能力。
## 内容提要:
本课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术。本课程将首先讲述开源模式,接下来分别介绍每个开发活动的背后的原理、基本操作流程和技术及最佳实践。其中,开源模式以开源历史发展为基础,介绍互联网协作技术的演变和革新,并计划邀请工业界开源布道师进行分享,让同学们对开源活动有直观的认知和体验;开源开发活动的理论知识和最佳实践将参考当前学术界对开源软件开发的经典以及最新的研究工作进行教授;开发活动的基本操作流程、技术和实践将邀请业界开源领域的优秀开发者进行传授。最后,课程将以选择并参与某个开源项目为课程大作业,以训练同学们将所学理论知识应用到实践当中的能力。
## 学时分配
课程总学时为48学时( 3*16) , 大概分配: 课程讲授占50%, 学生的文献阅读和讨论占20%, 学生参与开源项目的实践报告占30%,分配和操作的细节参见课程大纲。