Project Icon

computer-science

系统化的计算机科学在线学习路径

OSSU提供系统化的计算机科学在线学习课程,包括编程入门、核心课程和高级选修。课程来自哈佛、MIT等顶尖院校,注重打造全面的计算机科学基础。学习者可灵活安排进度,获得全球社区支持。该项目为自学者提供高质量、结构化的计算机科学教育资源,适合希望系统学习计算机科学的人群。

开源社区标志

开源社区大学

计算机科学免费自学教育之路!

超棒 开源社区大学 - 计算机科学

目录

概要

OSSU课程是使用在线资料进行的完整的计算机科学教育。 它不仅仅是为了职业培训或专业发展。 它适合那些希望获得所有计算学科基本概念的适当、全面基础的人, 以及那些有纪律、有意愿和(最重要的是!)良好习惯,能够在很大程度上自主获得这种教育的人, 但同时也能得到来自全球学习者社区的支持。

它是根据本科计算机科学专业的学位要求设计的,减去了通识教育(非CS)要求, 因为我们假设大多数遵循这个课程的人在CS领域之外已经受过教育。 课程本身是世界上最好的课程,通常来自哈佛、普林斯顿、麻省理工等, 但专门选择以满足以下标准。

课程必须

  • 开放报名
  • 定期运行(理想情况下是自定进度的形式,否则每年多次运行)
  • 在教学材料和教学原则方面具有普遍高质量
  • 符合CS 2013:计算机科学本科学位课程指南的课程标准

当没有课程满足上述标准时,课程工作会辅以一本书。 当有不适合课程但质量高的课程或书籍时, 它们属于extras/coursesextras/readings

组织。课程设计如下:

  • CS入门:供学生尝试CS并看看是否适合他们
  • CS核心:大致对应计算机科学课程的前三年,学习所有主修学生都必须学习的课程
  • CS高级:大致对应计算机科学课程的最后一年,根据学生的兴趣选修课程
  • 最终项目:一个让学生验证、巩固和展示他们的知识的项目,由全球同行评估

持续时间。如果你仔细规划并每周投入大约20小时的学习时间,在大约2年内完成是可能的。学习者可以使用这个电子表格 来估计他们的结束日期。复制一份并在Timeline表中输入你的开始日期和预期每周学习时间。当你完成课程时,可以在Curriculum Data表中输入实际的课程完成日期,并获得更新的完成估计。

**警告:**虽然电子表格是估算完成本课程所需时间的有用工具,但它可能不是最新的课程。仅使用电子表格来估算所需时间。使用OSSU CS网站仓库来查看需要学习的课程。

费用。所有或几乎所有课程材料都是免费的。然而,一些课程可能会对作业/测试/项目的评分收费。 请注意,CourseraedX都提供经济援助。

根据自己的时间和预算决定花费多少; 只要记住你不能购买成功!

过程。学生可以独自或分组完成课程,按顺序或不按顺序进行。

  • 我们建议完成CS核心的所有课程,只有当你确定之前已经学习过该材料时才跳过课程。
  • 为简单起见,我们建议按照从上到下的顺序学习课程(特别是CS核心)。一些学生选择同时学习多门课程,以便在一天/一周内学习不同的材料。一个受欢迎的选择是同时学习数学课程和入门课程。列出了课程先决条件,以帮助你确定是否为某门课程做好了准备。
  • CS高级中的课程是选修课。选择一个你想成为专家的主题(例如高级编程)并学习该标题下的所有课程。你也可以创建自己的自定义主题;Discord社区可能会对你计划的主题提供反馈。

内容政策。如果你计划公开展示一些课程作业,你必须只分享你被允许分享的文件。 尊重你在每门课程开始时签署的行为准则

如何贡献

获取帮助 (关于我们的常见问题和聊天室的详细信息)

社区

  • 我们有一个Discord服务器!Discord 这应该是你与其他OSSU学生交谈的第一站。为什么不现在就介绍一下自己呢?加入OSSU Discord
  • 你也可以通过GitHub issues进行互动。如果课程有问题,或者需要对课程进行更改,这里是开始对话的地方。在这里阅读更多信息。
  • 开源社区大学添加到你的Linkedin个人资料中!

**警告:**在搜索OSSU时,你可能会发现一些第三方/废弃/过时的材料。我们建议你忽略它们,只使用OSSU CS网站OSSU CS Github仓库。一些已知的过时材料包括:

  • 一个未维护和废弃的firebase应用。在FAQ中阅读更多信息。
  • 一个未维护和废弃的trello板
  • 第三方notion模板

课程

课程版本8.0.0(查看CHANGELOG


先决条件

  • CS核心假设学生已经学习过高中数学,包括代数、几何和预算。
  • CS高级假设学生已经学习了整个CS核心 并且现在有足够的知识来决定选修哪些课程。
  • 请注意,高级系统假设学生已经学习过基础物理课程(例如高中的AP物理)。

CS入门

编程入门

如果你从未写过for循环,或者不知道编程中的字符串是什么,请从这里开始。这门课程是自定进度的,允许你根据自己的需求调整每周投入的时间。

涵盖的主题简单程序 简单数据结构

课程持续时间努力先决条件讨论
编程入门10周每周10小时聊天

计算机科学入门

这门课程将向你介绍计算机科学的世界。已经接触过编程的学生,无论是通过上述课程还是其他学习途径,都应该学习这门课程,以了解将要学习的内容。如果你完成课程后想要更多,那么计算机科学很可能适合你!

涵盖的主题计算 命令式编程 基本数据结构和算法 等等

课程持续时间努力先决条件讨论
使用Python进行计算机科学和编程入门9周每周15小时高中代数聊天

CS核心

除非另有说明,CS核心下的所有课程都是必修的。

核心编程

涵盖的主题函数式编程 测试设计 程序要求 常见设计模式 单元测试 面向对象设计 静态类型 动态类型 ML系列语言(通过Standard ML) Lisp系列语言(通过Racket) Ruby 等等

课程持续时间努力先决条件讨论
系统程序设计13周每周8-10小时聊天:第1部分 / 第2部分
编程语言,A部分5周每周4-8小时系统程序设计(听讲师说明聊天
编程语言,B部分3周每周4-8小时编程语言,A部分聊天
编程语言,C部分3周每周4-8小时编程语言,B部分聊天
面向对象设计4周每周4小时基础Java聊天
设计模式4周每周4小时面向对象设计聊天
软件架构4周每周2-5小时设计模式聊天

核心数学

离散数学(CS数学)是先决条件,与算法和数据结构的研究密切相关。微积分既为学生准备离散数学,又帮助学生发展数学成熟度。

课程持续时间工作量注释先决条件讨论
微积分1A:微分 (替代课程)13周每周6-10小时替代课程涵盖本课程和后续2门课程高中数学聊天
微积分1B:积分13周每周5-10小时-微积分1A聊天
微积分1C:坐标系和无穷级数6周每周5-10小时-微积分1B聊天
计算机科学的数学基础 (替代课程)13周每周5小时2015/2019解答 2010解答 2005解答.微积分1C聊天

计算机科学工具

理解理论很重要,但你也需要创建程序。有许多广泛使用的工具可以让这个过程更容易。现在学习它们,以便将来更轻松地编写程序。

涵盖的主题: 终端和shell脚本 vim 命令行环境 版本控制 等等

课程持续时间工作量先决条件讨论
你的计算机科学教育中缺失的一学期2周每周12小时-聊天

核心系统

涵盖的主题: 过程式编程 手动内存管理 布尔代数 门逻辑 内存 计算机体系结构 汇编 机器语言 虚拟机 高级语言 编译器 操作系统 网络协议 等等

课程持续时间工作量附加文本/作业先决条件讨论
从头开始构建现代计算机:从与非门到俄罗斯方块 (替代课程)6周每周7-13小时-类C编程语言聊天
从头开始构建现代计算机:从与非门到俄罗斯方块 第二部分6周每周12-18小时-这些编程语言之一, 从与非门到俄罗斯方块 第一部分聊天
操作系统:三个简单的部分10-12周每周6-10小时-从与非门到俄罗斯方块 第二部分聊天
计算机网络:自顶向下方法8周每周4–12小时Wireshark实验代数, 概率, 基础计算机科学聊天

核心理论

涵盖的主题: 分治法 排序和搜索 随机算法 图搜索 最短路径 数据结构 贪心算法 最小生成树 动态规划 NP完全性 等等

课程持续时间工作量先决条件讨论
分治法、排序与搜索、随机算法4周每周4-8小时任何编程语言, 计算机科学的数学基础聊天
图搜索、最短路径和数据结构4周每周4-8小时分治法、排序与搜索、随机算法聊天
贪心算法、最小生成树和动态规划4周每周4-8小时图搜索、最短路径和数据结构聊天
最短路径重访、NP完全问题及其对策4周每周4-8小时贪心算法、最小生成树和动态规划聊天

核心安全

涵盖的主题 机密性、完整性、可用性 安全设计 防御性编程 威胁和攻击 网络安全 密码学 等等

课程持续时间工作量先决条件讨论
网络安全基础8周每周10-12小时-聊天
安全编码原则4周每周4小时-聊天
识别安全漏洞4周每周4小时-聊天

选择以下之一:

课程持续时间工作量先决条件讨论
识别C/C++编程中的安全漏洞4周每周5小时-聊天
利用和保护Java应用程序中的漏洞4周每周5小时-聊天

核心应用

涵盖的主题: 敏捷方法 REST 软件规格说明 重构 关系数据库 事务处理 数据建模 神经网络 监督学习 无监督学习 OpenGL 光线追踪 等等

课程持续时间工作量先决条件讨论
数据库:建模和理论2周每周10小时核心编程聊天
数据库:关系数据库和SQL2周每周10小时核心编程聊天
数据库:半结构化数据2周每周10小时核心编程聊天
机器学习11周每周9小时基本编码聊天
计算机图形学 (替代课程)6周每周12小时C++或Java, 线性代数聊天
软件工程:入门4周每周8-10小时核心编程, 以及一个较大的项目聊天

核心伦理

涵盖的主题: 社会背景 分析工具 专业伦理 知识产权 隐私和公民自由 等等

课程持续时间工作量先决条件讨论
伦理、技术与工程9周每周2小时聊天
知识产权导论4周每周2小时聊天
数据隐私基础3周每周3小时聊天

高级计算机科学

在完成核心计算机科学的每门必修课程后,学生应根据兴趣从高级计算机科学中选择一部分课程。 不需要学习每个子类别的所有课程。 但学生应该学习与他们打算从事的领域相关的每门课程。

高级编程

涵盖的主题: 调试理论与实践 目标导向编程 并行计算 面向对象分析与设计 UML 大规模软件架构与设计 等等

课程持续时间工作量先决条件
并行编程4周每周6-8小时Scala编程
编译器9周每周6-8小时
Haskell入门14周--
现在学习Prolog! (替代链接)*12周--
软件调试8周每周6小时Python, 面向对象编程
软件测试4周每周6小
课程时长投入先修要求
:--:--::--::--:
计算理论 (替代)13周每周10小时计算机科学数学、逻辑、算法
计算几何16周每周8小时算法、C++
博弈论8周每周3小时数学思维、概率、微积分

高级信息安全

课程时长投入先修要求
Web安全基础5周每周4-6小时了解基本的Web技术
安全治理与合规3周每周3小时-
数字取证概念3周每周2-3小时核心安全
安全软件开发:需求、设计和重用7周每周1-2小时核心编程和核心安全
安全软件开发:实现7周每周1-2小时安全软件开发:需求、设计和重用
安全软件开发:验证和更专业的主题7周每周1-2小时安全软件开发:实现

高级数学

课程时长投入先修要求讨论
线性代数的本质--高中数学聊天
线性代数14周每周12小时同修:线性代数的本质聊天
数值方法导论14周每周12小时线性代数聊天
形式逻辑导论10周每周4-8小时集合论聊天
概率论15周每周5-10小时微分与积分聊天

最终项目

学习的一部分是实践。 每门课程的作业和考试都是为了让你准备好运用所学知识解决现实世界的问题。

在完成核心计算机科学课程和与你相关的高级计算机科学部分后, 你应该确定一个可以用你所获得的知识解决的问题。 你可以创造一些全新的东西,或者改进你使用的并希望能变得更好的某些工具/程序。

希望获得更多指导来创建项目的学生可以选择使用一系列面向项目的课程。 以下是一些选项示例 (还有更多可用选项,此时你应该能够确定一个有趣且与你相关的系列):

课程时长投入先修要求
全栈开放12周每周15小时编程
现代机器人学(专业)26周每周2-5小时大一物理、线性代数、微积分、线性常微分方程
数据挖掘(专业)30周每周2-5小时机器学习
大数据(专业)30周每周3-5小时
物联网(专业)30周每周1-5小时强大的编程能力
云计算(专业)30周每周2-6小时C++编程
数据科学(专业)43周每周1-6小时
Scala函数式编程(专业)29周每周4-5小时一年编程经验
Unity 2020游戏设计与开发(专业)6个月每周5小时编程、交互设计

恭喜

完成上述课程要求后, 你将完成相当于计算机科学学士学位的全部内容。 恭喜你!

接下来你可以做什么?可能性是无限的,而且相互交叉:

  • 寻找开发人员工作!
  • 查看阅读列表,阅读能提高你技能并扩展知识的经典书籍。
  • 加入当地的开发者聚会(例如通过meetup.com)。
  • 关注软件开发世界中的新兴技术:
    • 通过Elixir探索参与者模型,这是一种基于经过战斗考验的Erlang虚拟机的新型Web函数式编程语言!
    • 通过Rust探索借用和生命周期,这是一种无需垃圾回收就能实现内存和线程安全的系统语言!
    • 通过Idris探索依赖类型系统,这是一种受Haskell启发的新语言,具有前所未有的类型驱动开发支持。

继续学习

行为准则

OSSU的行为准则

如何展示你的进度

GitHub仓库分叉到你自己的GitHub账户,并在完成内容时在已完成的内容旁边放置✅。这可以作为你的看板,实施起来比任何其他解决方案都快(让你有时间专注于课程)。

团队

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号