ossu/computer-science
GitHub: ossu/computer-science
OSSU 提供了一套对标计算机科学本科水平的免费自学课程体系,整合全球顶尖高校的开放在线课程并按学位标准系统化组织。
Stars: 207001 | Forks: 25659
# 目录
- [摘要](#summary)
- [社区](#community)
- [课程体系](#curriculum)
- [行为准则](#code-of-conduct)
- [团队](#team)
# 摘要
OSSU 的课程体系是使用在线材料进行的**完整的计算机科学教育**。
它不仅仅是为了职业培训或专业发展。
它是为那些希望在所有计算学科的基础概念上获得适当且*全面*的 grounding 的人准备的,
并且是为那些有纪律、有意愿,以及(最重要的!)有良好习惯,主要靠自学来获得这种教育的人准备的,
但会有来自全球学习伙伴社区的支持。
它是根据计算机科学专业本科学位的要求设计的,去除了通识教育(非计算机科学)的要求,
因为假设遵循该课程体系的大多数人已经在计算机科学领域之外接受过教育。
这些课程本身都是世界上最好的,通常来自哈佛、普林斯顿、MIT 等,
但是经过专门挑选以满足以下标准。
**课程必须**:
- 开放注册
- 定期运行(最好是自定进度格式,否则每年多次运行)
- 在教学材料和教学原则上总体质量高
- 符合 [CS 2013](CURRICULAR_GUIDELINES.md):计算机科学本科学位项目课程指南的课程体系标准
当没有课程满足上述标准时,课程作业将用一本书来补充。
当有些课程或书籍不适合该课程体系,但在其他方面质量很高时,
它们属于 [extras/courses](extras/courses.md) 或 [extras/readings](extras/readings.md)。
**组织方式**。课程体系设计如下:
- *计算机科学导论*:供学生尝试计算机科学并查看它是否适合他们
- *核心计算机科学*:大致相当于计算机科学课程的前三年,修读所有专业都要求修读的课程
- *高级计算机科学*:大致相当于计算机科学课程的最后一年,根据学生的兴趣选修课程
- *毕业项目*:让学生验证、巩固和展示他们的知识,并由全球的同伴进行评估
**持续时间**。如果你仔细计划并每周投入大约 20 小时学习,有可能在大约 2 年内完成。学习者可以使用 [此电子表格](https://docs.google.com/spreadsheets/d/1y2kMsIg9VaHMVmw35x_aH1hpty3V-ZMuV2jA13P_Cgo/copy) 来估计他们的完成日期。复制一份并在 `Timeline` 工作表中输入你的开始日期和每周预期投入小时数。在你学习课程时,你可以在 `Curriculum Data` 工作表中输入你实际的课程完成日期,并获得更新后的完成预估时间。
**费用**。全部或几乎所有的课程材料都是免费提供的。但是,一些课程可能会对作业/测试/项目评分收费。
请注意,[Coursera](https://www.coursera.support/s/article/209819033-Apply-for-Financial-Aid-or-a-Scholarship?language=en_US) 和 [edX](https://courses.edx.org/financial-assistance/) 都提供经济援助。
根据你自己的时间和预算决定花费多少;
只要记住你无法用钱买到成功!
**过程**。学生可以单独或在小组中,按顺序或不按顺序学习该课程体系。
- 我们建议修读核心计算机科学中的所有课程,只有当你确信你以前已经学过这些内容时才跳过一门课程。
- 为简单起见,我们建议从上到下按顺序学习课程(尤其是核心计算机科学)。一些学生选择同时学习多门课程,以丰富他们一天/一周内正在学习的内容。一种受欢迎的选择是将数学课程与入门课程同时进行。各门课程列出了先修课程,以帮助你确定你是否已经准备好学习某门特定的课程。
- 高级计算机科学中的课程为选修课。选择一个你想成为专家的主题(例如高级编程),并修读该标题下的所有课程。你也可以创建自己的自定义主题;Discord 社区可能会对你计划的主题提供反馈。
**内容政策**。如果你计划公开展示你的部分课程作业,你必须只分享允许分享的文件。
*尊重*你在每门课程开始时签署的*行为准则*!
**[获取帮助](HELP.md)**(关于我们的常见问题解答和聊天室的详细信息)
# 课程体系
- [先修要求](#prerequisites)
- [计算机科学导论](#intro-cs)
- [核心计算机科学](#core-cs)
- [核心编程](#core-programming)
- [核心数学](#core-math)
- [计算机科学工具](#cs-tools)
- [核心系统](#core-systems)
- [核心理论](#core-theory)
- [核心安全](#core-security)
- [核心应用](#core-applications)
- [核心伦理](#core-ethics)
- [高级计算机科学](#advanced-cs)
- [高级编程](#advanced-programming)
- [高级系统](#advanced-systems)
- [高级理论](#advanced-theory)
- [高级信息安全](#advanced-information-security)
- [高级数学](#advanced-math)
- [毕业项目](#final-project)
## 先修要求
- [核心计算机科学](#core-cs) 假设学生已经学过[高中数学](https://ossu.dev/precollege-math),包括代数、几何和微积分预备课程。
- [高级计算机科学](#advanced-cs) 假设学生已经学完了整个核心计算机科学
并且现在已经具备了足够的知识来决定选修哪些课程。
- 注意,[高级系统](#advanced-systems) 假设学生已经修过基础物理课程(例如高中的 AP Physics)。
## 计算机科学导论
本课程将向你介绍计算机科学与编程的世界。本课程让你对后续的材料有一个初步的体验。如果你在完成课程后还想要更多,那么计算机科学很可能适合你!
**涵盖主题**:
`计算`
`命令式编程`
`基本数据结构和算法`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[计算机科学与 Python 编程导论](coursepages/intro-cs/README.md) | 14 周 | 6-10 小时/周 | [高中代数](https://ossu.dev/precollege-math) | [聊天](https://discord.gg/jvchSm9)
## 核心计算机科学
除非另有说明,核心计算机科学下的所有课程作业都是**必选的**。
### 核心编程
**涵盖主题**:
`函数式编程`
`测试设计`
`程序需求`
`常用设计模式`
`单元测试`
`面向对象设计`
`静态类型`
`动态类型`
`ML 家族语言 (通过 Standard ML)`
`Lisp 家族语言 (通过 Racket)`
`Ruby`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[系统化程序设计](coursepages/spd/README.md) | 13 周 | 8-10 小时/周 | 无 | 聊天: [第 1 部分](https://discord.gg/RfqAmGJ) / [第 2 部分](https://discord.gg/kczJzpm)
[基于类的程序设计](coursepages/class-based/README.md) | 13 周 | 5-10 小时/周 | 系统化程序设计,高中数学 | [聊天](https://discord.com/channels/744385009028431943/891411727294562314)
[编程语言](https://courses.cs.washington.edu/courses/cse341/19sp/#lectures) | 11 周 | 4-8 小时/周 | 系统化程序设计 | [聊天](https://discord.gg/8BkJtXN)
[面向对象设计](https://course.ccs.neu.edu/cs3500f19/) | 13 周 | 5-10 小时/周 | 基于类的程序设计 | [聊天](https://discord.com/channels/744385009028431943/891412022120579103)
[软件架构](https://www.coursera.org/learn/software-architecture) | 4 周 | 2-5 小时/周 | 面向对象设计 | [聊天](https://discord.com/channels/744385009028431943/891412169638432788)
### 核心数学
离散数学(计算机科学的数学)是算法和数据结构学习的先修课程,且与之密切相关。微积分不仅为学生学习离散数学做准备,还有助于学生培养数学素养。
**涵盖主题**:
`离散数学`
`数学证明`
`基础统计学`
`O 记号`
`离散概率`
`以及更多`
课程 | 时长 | 投入精力 | 备注 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--: | :--:
[微积分 1A:微分](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.1x+2T2019/about) ([替代课程](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/index.htm)) | 13 周 | 6-10 小时/周 | 替代课程涵盖了此课程和接下来的 2 门课程 | [高中数学](https://ossu.dev/precollege-math) | [聊天](https://discord.gg/mPCt45F)
[微积分 1B:积分](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.2x+3T2019/about) | 13 周 | 5-10 小时/周 | - | 微积分 1A | [聊天](https://discord.gg/sddAsZg)
[微积分 1C:坐标系与无穷级数](https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.3x+1T2020/about) | 6 周 | 5-10 小时/周 | - | 微积分 1B | [聊天](https://discord.gg/FNEcNNq)
[计算机科学数学基础](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about) ([替代课程](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/)) | 13 周 | 5 小时/周 | [2015/2019 题解](https://github.com/spamegg1/Math-for-CS-solutions) [2010 题解](https://github.com/frevib/mit-cs-math-6042-fall-2010-problems) [2005 题解](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2005/assignments/). | 微积分 1C | [聊天](https://discord.gg/EuTzNbF)
### 计算机科学工具
理解理论很重要,但你也将被要求编写程序。有许多工具被广泛用于使这一过程变得更容易。现在学习它们可以减轻你以后编写程序的负担。
**涵盖主题**:
`终端与 shell 脚本`
`vim`
`命令行环境`
`版本控制`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[你的计算机科学教育中缺失的一课](https://missing.csail.mit.edu/) | 2 周 | 12 小时/周 | - | [聊天](https://discord.gg/5FvKycS)
### 核心系统
**涵盖主题**:
`过程式编程`
`手动内存管理`
`布尔代数`
`门逻辑`
`内存`
`计算机架构`
`汇编`
`机器语言`
`虚拟机`
`高级语言`
`编译器`
`操作系统`
`网络协议`
`以及更多`
课程 | 时长 | 投入精力 | 补充文本 / 作业 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--: | :--:
[从第一性原理构建现代计算机:从 Nand 到 Tetris](https://www.coursera.org/learn/build-a-computer) ([替代课程](https://www.nand2tetris.org/)) | 6 周 | 7-13 小时/周 | - | C 语言风格的编程语言 | [聊天](https://discord.gg/vxB2DRV)
[从第一性原理构建现代计算机:从 Nand 到 Tetris 第二部分](https://www.coursera.org/learn/nand2tetris2) | 6 周 | 12-18 小时/周 | - | [这些编程语言](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png)之一,从 Nand 到 Tetris 第一部分 | [聊天](https://discord.gg/AsUXcPu)
[操作系统:三大简易要素](coursepages/ostep/README.md) | 10-12 周 | 6-10 小时/周 | - | 从 Nand 到 Tetris 第二部分 | [聊天](https://discord.gg/wZNgpep)
[计算机网络:自顶向下方法](https://gaia.cs.umass.edu/kurose_ross/online_lectures.htm)| 8 周 | 4–12 小时/周 | [Wireshark 实验](https://gaia.cs.umass.edu/kurose_ross/wireshark.php) | 代数,概率,基础计算机科学 | [聊天](https://discord.gg/MJ9YXyV)
### 核心理论
**涵盖主题**:
`分治`
`排序和搜索`
`随机化算法`
`图搜索`
`最短路径`
`数据结构`
`贪心算法`
`最小生成树`
`动态规划`
`NP 完全性`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[算法:设计与分析,第一部分](https://www.edx.org/learn/algorithms/stanford-university-algorithms-design-and-analysis-part-1) ([替代课程](https://www.algorithmsilluminated.org/)) | 8 周 | 4-8 小时/周 | 任意编程语言,计算机科学数学基础 | [聊天](https://discord.gg/mKRS7tY)
[算法:设计与分析,第二部分](https://www.edx.org/learn/algorithms/stanford-university-algorithms-design-and-analysis-part-2) | 8 周 | 4-8 小时/周 | 算法第一部分 | [聊天](https://discord.gg/Qstqe4t)
### 核心安全
**涵盖主题**
`机密性、完整性、可用性`
`安全设计`
`防御性编程`
`威胁与攻击`
`网络安全`
`密码学`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[网络安全基础](https://www.edx.org/learn/cybersecurity/rochester-institute-of-technology-cybersecurity-fundamentals) | 8 周 | 10-12 小时/周 | - | [聊天](https://discord.gg/XdY3AwTFK4)
[安全编码原则](https://www.coursera.org/learn/secure-coding-principles)| 4 周 | 4 小时/ | - | [聊天](https://discord.gg/5gMdeSK)
[识别安全漏洞](https://www.coursera.org/learn/identifying-security-vulnerabilities) | 4 周 | 4 小时/周 | - | [聊天](https://discord.gg/V78MjUS)
选择以下**一项**:
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[识别 C/C++ 编程中的安全漏洞](https://www.coursera.org/learn/identifying-security-vulnerabilities-c-programming) | 4 周 | 5 小时/周 | - | [聊天](https://discord.gg/Vbxce7A)
[利用和修复 Java 应用程序中的漏洞](https://www.coursera.org/learn/exploiting-securing-vulnerabilities-java-applications) | 4 周 | 5 小时/周 | - | [聊天](https://discord.gg/QxC22rR)
### 核心应用
**涵盖主题**:
`敏捷方法论`
`REST`
`软件规格`
`重构`
`关系型数据库`
`事务处理`
`数据建模`
`神经网络`
`监督学习`
`无监督学习`
`OpenGL`
`光线追踪`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[数据库:建模与理论](https://www.edx.org/learn/databases/stanford-university-databases-modeling-and-theory)| 2 周 | 10 小时/周 | 核心编程 | [聊天](https://discord.gg/pMFqNf4)
[数据库:关系型数据库与 SQL](https://www.edx.org/learn/relational-databases/stanford-university-databases-relational-databases-and-sql)| 2 周 | 10 小时/周 | 核心编程 | [聊天](https://discord.gg/P8SPPyF)
[数据库:半结构化数据](https://www.edx.org/learn/relational-databases/stanford-university-databases-semistructured-data)| 2 周 | 10 小时/周 | 核心编程 | [聊天](https://discord.gg/duCJ3GN)
[机器学习](https://www.deeplearning.ai/courses/machine-learning-specialization/)| 11 周 | 9 小时/周 | 基础编码 | [聊天](https://discord.gg/NcXHDjy)
[计算机图形学](https://www.edx.org/learn/computer-graphics/the-university-of-california-san-diego-computer-graphics) ([替代课程](https://cseweb.ucsd.edu/~viscomp/classes/cse167/wi22/schedule.html))| 6 周 | 12 小时/周 | C++ 或 Java,[基础线性代数](https://ossu.dev/precollege-math/coursepages/precalculus) | [聊天](https://discord.gg/68WqMNV)
[软件工程:导论](https://www.edx.org/learn/software-engineering/university-of-british-columbia-software-engineering-introduction) ([替代课程](https://github.com/ubccpsc/310/blob/main/resources/README.md)) | 6 周 | 8-10 小时/周 | 核心编程,以及一个[具有一定规模的项目](FAQ.md#why-require-experience-with-a-sizable-project-before-the-Software-Engineering-courses) | [聊天](https://discord.gg/5Qtcwtz)
### 核心伦理
**涵盖主题**:
`社会背景`
`分析工具`
`职业伦理`
`知识产权`
`隐私与公民自由`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[伦理、技术与工程](https://www.coursera.org/learn/ethics-technology-engineering)| 9 周 | 2 小时/周 | 无 | [聊天](https://discord.gg/6ttjPmzZbe)
[知识产权导论](https://www.coursera.org/learn/introduction-intellectual-property)| 4 周 | 2 小时/周 | 无 | [聊天](https://discord.gg/YbuERswpAK)
[数据隐私基础](https://www.coursera.org/learn/northeastern-data-privacy)| 3 周 | 3 小时/周 | 无 | [聊天](https://discord.gg/64J34ajNBd)
## 高级计算机科学
在完成核心计算机科学中的**每一门必修课程**后,学生应根据自己的兴趣从高级计算机科学中选择一部分课程进行学习。
不需要修读子类别中的每一门课程。
但学生应该修读与他们打算进入的领域相关的*每一门*课程。
### 高级编程
**涵盖主题**:
`调试理论与实践`
`目标导向编程`
`并行计算`
`面向对象分析与设计`
`UML`
`大规模软件架构与设计`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求
:-- | :--: | :--: | :--:
[并行编程](https://www.coursera.org/learn/scala-parallel-programming)| 4 周 | 6-8 小时/周 | Scala 编程
[编译器](https://www.edx.org/learn/computer-science/stanford-university-compilers) | 9 周 | 6-8 小时/周 | 无
[Haskell 导论](https://www.seas.upenn.edu/~cis194/fall16/)| 14 周 | - | -
[立即学习 Prolog!](https://www.let.rug.nl/bos/lpn//lpnpage.php?pageid=online) ([替代课程](https://github.com/ossu/computer-science/files/6085884/lpn.pdf))*| 12 周 | - | -
[软件调试](https://www.youtube.com/playlist?list=PLAwxTw4SYaPkxK63TiT88oEe-AIBhr96A)| 8 周 | 6 小时/周 | Python,面向对象编程
[软件测试](https://www.youtube.com/playlist?list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g) | 4 周 | 6 小时/周 | Python,编程经验
(*) 作者为 Blackburn, Bos, Striegnitz(由[源码](https://github.com/LearnPrologNow/lpn)编译,根据 [CC 许可](https://creativecommons.org/licenses/by-sa/4.0/)重新分发)
### 高级系统
**涵盖主题**:
`数字信号`
`组合逻辑`
`CMOS 技术`
`时序逻辑`
`有限状态机`
`处理器指令集`
`缓存`
`流水线`
`虚拟化`
`并行处理`
`虚拟内存`
`同步原语`
`系统调用接口`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求 | 备注
:-- | :--: | :--: | :--: | :--:
[计算结构 1:数字电路](https://learning.edx.org/course/course-v1:MITx+6.004.1x_3+3T2016) [替代链接 1](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/) [替代链接 2](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2009/) | 10 周 | 6 小时/周 | [Nand2Tetris II](https://www.coursera.org/learn/nand2tetris2) | 备用链接包含所有 3 门课程。
[计算结构 2:计算机架构](https://learning.edx.org/course/course-v1:MITx+6.004.2x+3T2015) | 10 周 | 6 小时/周 | 计算结构 1 | -
[计算结构 3:计算机组成](https://learning.edx.org/course/course-v1:MITx+6.004.3x_2+1T2017) | 10 周 | 6 小时/周 | 计算结构 2 | -
### 高级理论
**涵盖主题**:
`形式语言`
`图灵机`
`可计算性`
`事件驱动的并发`
`自动机`
`分布式共享内存`
`共识算法`
`状态机复制`
`计算几何理论`
`命题逻辑`
`关系逻辑`
`Herbrand 逻辑`
`博弈树`
`以及更多`
课程 | 时长 | 投入精力 | 先修要求
:-- | :--: | :--: | :--:
[计算理论](https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/) ([替代课程](https://www.youtube.com/playlist?list=PLEE7DF8F5E0203A56)) | 13 周 | 10 小时/周 | [计算机科学数学基础](https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about),逻辑,算法
[计算几何](https://www.edx.org/learn/geometry/tsinghua-university-ji-suan-ji-he-computational-geometry) | 16 周 | 8 小时/周 | 算法,C++
[算法博弈论](https://timroughgarden.org/f13/f13.html) | 10 周 | 12 小时/周 | 核心理论
### 高级信息安全
课程 | 时长 | 投入精力 | 先修要求
:-- | :--: | :--: | :--:
[Web 安全基础](https://www.edx.org/learn/computer-security/ku-leuven-web-security-fundamentals) | 5 周 | 4-6 小时/周 | 理解基础 Web 技术
[安全治理与合规](https://www.coursera.org/learn/security-governance-compliance) | 3 周 | 3 小时/周 | -
[数字取证概念](https://www.coursera.org/learn/digital-forensics-concepts) | 3 周 | 2-3 小时/周 | 核心安全
[安全软件开发:需求、设计与复用](https://www.edx.org/learn/software-development/the-linux-foundation-secure-software-development-requirements-design-and-reuse) | 7 周 | 1-2 小时/周 | 核心编程与核心安全
[安全软件开发:实现](https://www.edx.org/learn/software-development/the-linux-foundation-secure-software-development-implementation) | 7 周 | 1-2 小时/周 | 安全软件开发:需求、设计与复用
[安全软件开发:验证与更多专题](https://www.edx.org/learn/software-engineering/the-linux-foundation-secure-software-development-verification-and-more-specialized-topics) | 7 周 | 1-2 小时/周 | 安全软件开发:实现
### 高级数学
课程 | 时长 | 投入精力 | 先修要求 | 讨论
:-- | :--: | :--: | :--: | :--:
[线性代数的本质](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | [高中数学](https://ossu.dev/precollege-math) | [聊天](https://discord.gg/m6wHbP6)
[线性代数](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/) | 14 周 | 12 小时/周 | 并修课程:线性代数的本质 | [聊天](https://discord.gg/k7nSWJH)
[数值计算方法导论](https://ocw.mit.edu/courses/mathematics/18-335j-introduction-to-numerical-methods-spring-2019/index.htm)| 14 周 | 12 小时/周 | [线性代数](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/) | [聊天](https://discord.gg/FNEcNNq)
[形式逻辑导论](https://forallx.openlogicproject.org/) | 10 周 | 4-8 小时/周 | [集合论](https://www.youtube.com/playlist?list=PL5KkMZvBpo5AH_5GpxMiryJT6Dkj32H6N) | [聊天](https://discord.gg/MbM2Gg5)
[概率论](https://stat110.hsites.harvard.edu/) | 15 周 | 5-10 小时/周 | [微积分](https://www.edx.org/course/calculus-1b-integration) | [聊天](https://discord.gg/UVjs9BU)
## 毕业项目
学习的一部分在于实践。
每门课程的作业和考试都是为了让你准备好运用你的知识去解决现实世界中的问题。
在你完成了核心计算机科学以及与你相关的高级计算机科学部分之后,
你应该找出一个你可以利用你所学到的知识来解决的问题。
你可以创造一个全新的东西,或者你可以改进一些你正在使用并希望它变得更好的工具或程序。
希望在创建项目时获得更多指导的学生,可以选择使用一系列面向项目的课程。
以下是一些示例选项
(还有更多选项可用,此时你应该有能力找到一个对你来说既有趣又相关的系列):
课程 | 时长 | 投入精力 | 先修要求
:-- | :--: | :--: | :--:
[全栈开发](https://fullstackopen.com/en/) | 12 周 | 15 小时/周 | 编程
[现代机器人学](https://modernrobotics.northwestern.edu) | 26 周 | 2-5 小时/周 | 大一物理,线性代数,微积分,[线性常微分方程](https://www.khanacademy.org/math/differential-equations)
[数据挖掘(专项课程)](https://www.coursera.org/specializations/data-mining) | 30 周 | 2-5 小时/周 | 机器学习
[大数据(专项课程)](https://www.coursera.org/specializations/big-data) | 30 周 | 3-5 小时/周 | 无
[物联网(专项课程)](https://www.coursera.org/specializations/internet-of-things) | 30 周 | 1-5 小时/周 | 扎实的编程能力
[云计算(专项课程)](https://www.coursera.org/specializations/cloud-computing) | 30 周 | 2-6 小时/周 | C++ 编程
[数据科学(专项课程)](https://www.coursera.org/specializations/jhu-data-science) | 43 周 | 1-6 小时/周 | 无
[Scala 函数式编程(专项课程)](https://www.coursera.org/specializations/scala) | 29 周 | 4-5 小时/周 | 一年编程经验
[使用 Unity 2020 进行游戏设计与开发(专项课程)](https://www.coursera.org/specializations/game-design-and-development) | 6 个月 | 5 小时/周 | 编程,交互设计
## 恭喜
在完成了上述课程体系的要求之后,
你就已经完成了相当于完整的计算机科学学士学位的学习。
恭喜!
接下来你会做什么?可能性是无限的且相互交织的:
- 寻找一份作为开发者!的工作
- 查看[阅读清单](extras/readings.md),阅读经典书籍,这些书籍能让你 sharpen skills 并扩展你的知识。
- 加入当地的开发者聚会(例如通过 [meetup.com](https://www.meetup.com/))。
- 关注软件开发世界中涌现的新兴技术:
+ 通过 [Elixir](https://elixir-lang.org/) 探索 **actor 模型**,这是一种基于经过实战考验的 Erlang 虚拟机的新型 Web 函数式编程语言!
+ 通过 [Rust](https://www.rust-lang.org/) 探索**所有权借用与生命周期**,这是一种在没有垃圾回收器的情况下实现内存和线程安全的系统级语言!
+ 通过 [Idris](https://www.idris-lang.org/) 探索**依赖类型系统**,这是一种受 Haskell 启发的新型语言,为类型驱动开发提供前所未有的支持!

# 行为准则
[OSSU 的行为准则](https://github.com/ossu/code-of-conduct)。
## 如何展示你的进度
将 [GitHub repo](https://github.com/ossu/computer-science) [Fork](https://www.freecodecamp.org/news/how-to-fork-a-github-repository/) 到你自己的 GitHub 账户,并在你完成的内容旁边打上 ✅。这可以作为你的 [看板](https://en.wikipedia.org/wiki/Kanban_board),并且实施起来比任何其他解决方案都要快(为你节省出花在课程上的时间)。
# 团队
* **[Eric Douglas](https://github.com/ericdouglas)**:OSSU 的创始人
* **[Josh Hanson](https://github.com/joshmhanson)**:首席技术维护者
* **[Waciuma Wanjohi](https://github.com/waciumawanjohi)**:首席学术维护者
* **[贡献者](https://github.com/ossu/computer-science/graphs/contributors)**
标签:后端开发, 多线程, 学习资源, 开源教育, 网络安全研究, 自学课程, 计算机教程, 计算机科学, 逆向工具