Git Product home page Git Product logo

oss101's Introduction

oss101

欢迎大家来到《开源软件通识》这门课程,本文档从课程背景、定位目标、课程体系、拓展大赛、课程进程等几个方面,详细介绍这门课程,带你一起畅游开源软件的世界。

《开源软件通识》课程整体设计

1、课程背景

A. 开源发展

随着开源技术体系逐渐成为全球数字化转型的核心驱动力,开源软件已经成为各类信息系统构建的公共基础件,关系着国家数字经济基础设施的未来,开源正在经历着一个全球大发展的过程。以开源开放的**建立各类信息系统,越来越成为当下公平、公开、透明、可信等核心价值观的共识,为国家发展以我为核心的全球化 2.0 战略,提供了一个重要技术要素。包括教育评价、社会信用、法律咨询、政府治理、公益平台等这类具有公共属性的社会服务,均对开源开放的技术体系有着强烈需求。

开源软件与开放系统在各行业的持续发展,离不开开源知识体系的构建开源人才的培养,加速培育以**为主导的开源生态体系也已成为包括国家十四五规划在内的共识。开源软件的基础知识,已经成为现代大学生数字素养与技能中的一项核心能力,需要系统构建通识性课程,来弥补全球产业需求与高校人才培养之间的巨大鸿沟。

B. 定位目标

开源软件的基础知识,已经成为现代大学生数字素养与技能中的一项核心能力,本课程是面向大学生全体的一门软件通识课,培养学生:

  • 了解开源软件领域的全貌,建立开源的基本意识;
  • 掌握开源软件的基本内涵和应用模式,包括使用开源、贡献开源和发展开源的基础内容;
  • 掌握以社区为中心的软件开发基本流程,并做到初步的参与开源社区贡献的训练,以及通过数据理解开源生态的面貌与演变;
  • 让大家感受到开源创新的精神,领略到开源协作的愉悦,体会到开源贡献的成就;
  • 点燃大家参与到开源活动中的热情与兴趣!

C. 学习收益

学员能够从本课程中获得的收益包括:

  • 知识:系统的开源基础知识,包括使用开源、贡献开源以及发展开源;
  • 技能:基于 Git 协作的数字产品协作全流程,以及基于社区的组织治理与运营方法;
  • 品行:融入开源社区的团队协作、沟通交流、道德规范、以及领导力与影响力;
  • 职业:将开源素养和自己的专业能力进行融合,提升自身在各行业中的数字竞争力。

D. 主创团队

本课程主要由 X-lab 开放实验室出品,同时也参考、借鉴、复用了部分互联网上的开放内容。X-lab 开放实验室是一个聚焦于开源软件产业开放式创新的研究群体;专业学科领域主要包括软件工程、数据科学与工程,但也涉及管理学、社会学、经济学等交叉学科;长期思考并实践开源战略、开源测量学、开源数字生态系统等主题;目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等方面做出了较有影响的工作。

2、课程体系

《开源软件通识》课程主要包括拥抱开源、贡献开源、以及发展开源三个依次进阶的模块。

每个部分的课程包括五讲的内容(每周一讲),每讲由不同类型的学习资源所支撑,每一讲(每周)大约需要花费 3 ~ 6 个小时的学习与实践时间。

  • 试一试:(Trying to Answer):课前课后问答
  • 看一看(Watching Lectures):在线视频观看
  • 读一读(Extended Reading):扩展阅读分析
  • 做一做(Learning by Doing):动手实验/实践
  • 悟一悟(Case Based Learning):基于案例的学习

详细的课程内容安排如下所示:

3、课程进程


周数📆 日期🕣 内容📒 主讲💂‍♂️ 本周任务 📌 电子课本📘 开放资源📂
01 2.27 开源世界漫游 @will-ww 任务01 查看 仓库
02 3.6 多学科视角下探索开源 @frank-zsy 任务02 查看 仓库
03 3.13 软件产业与开源软件商业化 @frank-zsy 任务03 查看 仓库
04 3.20 全球开源软件生态发展 @will-ww 任务04 查看 仓库
05 3.27 软件工程与数据科学视角看开源 @will-ww 任务05 查看 仓库
06 4.3 复习课-拥抱开源
07 4.10 软件开发流程与工具 @frank-zsy 任务06 查看 仓库
08 4.17 个人开源贡献 @will-ww 任务07 查看 仓库
09 4.24 团队开源协作 @will-ww 任务08 查看 仓库
10 5.1 DevOps 开源实践 @AliceCodeZhang 任务09 查看 仓库
11 5.8 深入洞察与参与开源社区 @will-ww 任务10 查看 仓库
12 5.15 复习课-贡献开源
13 5.22 企业开源治理 @zhuangbiaowei 任务11
14 5.29 开源社区运营 @legist 任务12
15 6.5 开源成长与职业发展 @RexWzh 任务13
16 6.12 浅谈谷歌 SRE 与开源技术的新发展
17 6.19 开源人才发展与评价 @will-ww
18 6.26 复习课-发展开源

4、学习模式

课程采取开放课程的模式,将“线下课”和“线上课”的授课内容、时间节奏、实践方式等进行高度统一。每次课程的学习模式与节奏如下:

  • 周五:每周五发布下周学习任务;
  • 周一:线下课,重点知识回顾、课题互动答疑;
  • 周二 ~ 周四:本周课程的关键点内容、补充材料、学员互动等。

Tips:找到自己感兴趣的材料,并进行自主学习,才是王道~

5、学习评价

总体来说采取过程性评价的模式,充分利用“学习行为数据”与“指导老师主观评价”相结合的方式。本课程将学员在本仓库中的活跃行为作为课程参与的重要评价依据,线下课的评分主要包括:

  • 平时成绩:线下出勤与签到
  • 平时作业:本仓库中的活跃行为
  • 期末项目:完成大作业并答辩

对于线上参与的学员,我们通过本仓库中的活跃度计算与排名,给大家提供部份礼品作为支持。

Tips:对错很多时候并不那么重要,参与与协作才是本质~

6、拓展大赛

《开源软件通识》课程同时和今年的“OpenDigger 开源软件生态数据分析挖掘平台全球大赛”(与开放原子共建的形式)充分结合,课程作为大赛的标准配套培训课,供参赛选手进行学习;同时线下班的期末大作业也择优选取,作为大赛作品的推荐。本次大赛共一等奖 1 名,二等奖 4 名,三等奖 8 名,OpenRank 影响力奖 50 名,奖金池总共 50 万元。具体情况后续更新,敬请关注~

Tips:学以致用,以赛促学,也是一个不错的方式~

7、课程参考教材

oss101's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

oss101's Issues

[Labeled data] 第一讲线下班正式学员签到专用贴

本课程的学习过程将利用 OpenDigger 开源项目来辅助进行助教自动化统计工作,因此,需要所有参与学员把自己的 GitHub 账号标注到仓库中,因此你需要:

  1. 如果还没有 GitHub 账号,请注册一个;
  2. 到 OpenDigger 仓库下指定 Issue 上,登记你的姓名与 GitHub 账号
  3. 登记链接:X-lab2017/open-digger#1217

第四讲课后作业(截至时间4月3日)

作业:部署一个静态网页博客。静态网页博客是一种不需要后端服务器和数据库支持的网站,只需要使用HTML、CSS和JavaScript等前端技术就可以实现。静态网页博客有很多优点,比如速度快、安全稳定、易于维护等。

可能用到的技术以及概念:

  • SSG框架
    • 一种常用的框架是 Jekyll ,它是一个Ruby编写的、快速、简洁且高效的静态网站生成引擎,它使用一个模板目录作为网站布局的基础框架,支持 Markdown、Textile 等标记语言的解析,提供了模板、变量、插件等功能,最终生成一个完整的静态 Web 站点。你可以在 GitHub Pages 上直接使用 Jekyll 来搭建博客,并且选择不同的主题来美化你的博客界面。
    • 另一种常用的框架是 Hexo,它也是一个快速、简洁且高效的静态网站生成引擎,它使用 Node.js 编写,并且提供了丰富的插件和主题来扩展和定制你的博客功能和外观。你可以在本地使用 Hexo 来编写和预览你的博客内容,并且通过简单的命令就能将生成的网页上传到 GitHub Pages 上。
    • 如果你想要更多选择或灵感,你可以参考以下链接中收集或推荐了一些基于 GitHub Pages 的各类开源项目模板 ,比如程序员个性化简历、程序员酷炫博客等等。这些模板都有相应的项目地址和预览地址,你可以根据自己喜欢或需要来选择或修改。Static Site Generators - Top Open Source SSGs | Jamstack
  • Github Actions
    • GitHub Actions 是一种在 GitHub 上自动化、定制和执行软件开发工作流程的功能。它可以帮助你在不同的事件(例如代码提交、拉取请求或标签创建)上触发不同的任务(例如构建、测试或部署)。
    • 在部署静态网页中,GitHub Actions 可以用来构建和发布 Jekyll 站点到 GitHub Pages。Jekyll 是一种简单、博客感知的静态网站生成器,它可以将 Markdown 或 AsciiDoc 等格式的文本转换为 HTML 页面,并提供各种主题和插件。
    • 使用 GitHub Actions 部署 Jekyll 站点有以下优点:
      • 控制 gemset 和 Jekyll 版本 — 你可以使用任何你想要的 Jekyll 版本,而不是受限于 GitHub Pages 默认支持的版本(目前是 3.9.0)。
      • 使用任意插件 — 你可以使用任何 Jekyll 插件,无论它们是否在 GitHub Pages 的白名单中,甚至是直接放在 _plugins 目录下的 *.rb 文件。
      • 自定义工作流管理 — 通过创建一个工作流文件来运行 Actions,你可以指定自定义的构建步骤,使用环境变量等。
  • Git
    • 分布式版本控制系统,用于管理你的代码和文件。你需要使用 Git 将你的静态网页上传到 GitHub 上,同步到 GitHub Pages。
  • Frontmatter
    • Frontmatter 是一种在 Markdown 文件中添加元数据的方法,它由三条虚线包围的有效的 YAML、JSON 或 TOML 格式的内容组成。
    • 在静态博客中,Frontmatter 可以用来指定一些页面的配置选项,例如标题、描述、布局、语言、标签、分类等。这些选项可以影响页面的生成和展示方式,也可以被其他组件或插件访问和使用。
  • Markdown
    • Markdown 语法的官方规范可以在 ruanyf/document-style-guide: 中文技术文档的写作规范 (github.com) 查看,其中包含了基本语法和扩展语法的说明和示例。
    • 检查 Markdown 的源代码是否规范排版正确,有以下几种方法:
      • 使用在线工具,如 Markdownlint,可以直接在网页上输入或粘贴 Markdown 源代码,然后查看是否有错误或警告提示,并按照建议进行修改。
      • 使用 VSCode 插件,如 Markdown All in One和 Markdownlin,可以在 VSCode 编辑器中实时检查和预览 Markdown 源代码,并提供一键修复的功能。

本次作业的具体内容和要求如下:

  • 作业内容:你需要选择一个自己感兴趣或擅长的主题来制作一个静态网页博客,比如个人介绍、爱好分享、技术总结等。你需要设计至少四个页面来展示博客内容,不限于首页、关于我、文章列表、文章详情等。
  • 作业要求:你需要遵循以下规范或标准来完成作业:
    • 代码风格:你需要使用合理的缩进和空格来格式化代码,并且使用有意义的变量名和函数名来提高代码可读性。
    • 注释规范:你需要在代码中添加必要的注释来说明代码逻辑和功能,并且使用统一的注释风格。
    • 文件命名:你需要使用有意义且符合规范的文件名来组织代码文件,并且使用小写字母和下划线分隔单词。
  • 作业提交:你需要在指定issue中给出博客链接,并附上自己对本次作业的总结或反思(可以把这部分内容放在博客页面中,给出对应链接即可)。总结或反思可以包括但不限于包括以下内容:
    • 博客主题及其选取原因
    • 博客页面布局及其设计思路
    • 博客功能实现及其技术选择
    • 博客样式设计及其美学考量
    • 博客制作过程中遇到的问题及其解决方法
  • 作业截止:本次作业将于3月20日开始,持续两周,请大家在截止日期(4月3日)上课之前完成并提交作业。请注意时间安排和进度控制,不要拖延到最后一刻。

本次作业将按照以下几个维度对总结报告网站内容给出评分:

  • 博客主题:评价学生选择了什么样的主题来展示自己的兴趣或专长,并且是否能够吸引读者关注,博客页面中存在实质性内容即可通过。
  • 页面数量:评价学生设计了什么样的页面结构来展示博客内容,并且是否有达到足够四个页面的内容,达标即可通过。
  • 技术汇报:评价学生利用了哪些技术或工具来实现博客功能,并且是否能够正常运行和并且足够了解相关技术。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.