Update Syllabus.md
本课程主要面向大学计算机系本科生和研究生设计,希望通过本课程的教学,使得计算机领域的同学们能够:
开源软件在科学研究、工业制造、以及日常生活中发挥着重要作用。近年来,开源软件在云计算、大数据、人工智能等新兴领域迅速成为技术主流。开源软件不仅在计算机科学和软件工程中扮演了重要的角色,也成为了社会生活所依赖的关键基础设施。国内很多IT公司也在逐渐推出高质量的开源项目,例如openEuler、TiDB、OceanBase、PaddlePaddle等。开源已经成为软件技术创新和软件产业发展的主要模式。
与传统开发模式相比,开源开发展现出充分共享、自由协同、无偿贡献、用户创新、持续演化的新特征,颠覆了诸多经典软件工程的基本假设和理论。越来越多的IT公司在内部推行开源理念和开发方法,以期提高创新能力以及开发效率和质量等。相比传统软件开发,开源软件开发有一套新的模型和技术。然而,鉴于相关课程的缺乏,广大同学们往往对此缺乏理解和实践;而初学者在试图对开源软件做出贡献时,通常会感到无从下手,困难重重。因此,我们开设此课程,以帮助计算机领域的同学们了解开源软件开发和开源社区参与,这是现时代技术环境下亟待掌握的基本知识。
本课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术,具体包含如下内容:
课程的主要考核方式如下(每学期会有所调整,以最终发布的课程作业为准):
课程为3学分,总学时为48学时(3*16),大致学时分配:课程讲授占50%,学生的文献阅读和讨论占20%,学生参与开源项目的实践报告占30%。
关于贡献指南相关、和项目开发的基本约定等更多信息,请参见CONTRIBUTING.md
北京大学信息科学技术学院,《开源软件技术》
跟头歌共建的实训课程参见:https://www.educoder.net/paths/9i8a7og6
本课程为大学计算机系本科生和研究生设计,课程目的是使得计算机领域的同学们对于开源软件的开发方法、开发过程和支持技术有深入的了解,对于如何将抽象方法和理论知识结合到工程中有更好的锻炼,对于参与开源软件社区有基本的掌握。课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
OSSDevelopment //《开源软件开发/技术》课程
本课程主要面向大学计算机系本科生和研究生设计,希望通过本课程的教学,使得计算机领域的同学们能够:
课程背景
开源软件在科学研究、工业制造、以及日常生活中发挥着重要作用。近年来,开源软件在云计算、大数据、人工智能等新兴领域迅速成为技术主流。开源软件不仅在计算机科学和软件工程中扮演了重要的角色,也成为了社会生活所依赖的关键基础设施。国内很多IT公司也在逐渐推出高质量的开源项目,例如openEuler、TiDB、OceanBase、PaddlePaddle等。开源已经成为软件技术创新和软件产业发展的主要模式。
与传统开发模式相比,开源开发展现出充分共享、自由协同、无偿贡献、用户创新、持续演化的新特征,颠覆了诸多经典软件工程的基本假设和理论。越来越多的IT公司在内部推行开源理念和开发方法,以期提高创新能力以及开发效率和质量等。相比传统软件开发,开源软件开发有一套新的模型和技术。然而,鉴于相关课程的缺乏,广大同学们往往对此缺乏理解和实践;而初学者在试图对开源软件做出贡献时,通常会感到无从下手,困难重重。因此,我们开设此课程,以帮助计算机领域的同学们了解开源软件开发和开源社区参与,这是现时代技术环境下亟待掌握的基本知识。
先置知识
内容提要
本课程采用理论知识和开源实践相结合的方式进行设计,从开源模式出发,以学生参与开源项目的实践为整体线索,讲授开源软件开发方法、过程及其涉及的理论知识和技术,具体包含如下内容:
课程的主要考核方式如下(每学期会有所调整,以最终发布的课程作业为准):
学分/学时分配
课程为3学分,总学时为48学时(3*16),大致学时分配:课程讲授占50%,学生的文献阅读和讨论占20%,学生参与开源项目的实践报告占30%。
文件结构
如何贡献
关于贡献指南相关、和项目开发的基本约定等更多信息,请参见CONTRIBUTING.md
使用本仓库的课程
北京大学信息科学技术学院,《开源软件技术》
跟头歌共建的实训课程参见:https://www.educoder.net/paths/9i8a7og6