本文档详细介绍了从先修课程到最终项目完成的整个OSSU计算机科学课程的进展。它提供了课程组件如何相互连接、相互构建以形成完整计算机科学教育的高层架构视图。
有关特定课程阶段的详细信息,请参阅:先修课程、计算机科学入门、计算机科学核心课程、计算机科学高级课程和最终项目。有关课程设计原则和学术标准,请参阅课程设计原则。
OSSU课程遵循结构化的四年阶段进展,旨在模仿传统的本科计算机科学学位
来源:README.md48-52 README.md54-56
核心CS阶段代表了课程的大部分内容,并遵循学科之间的特定依赖关系
来源:README.md135-159 README.md160-177 README.md179-192 README.md193-217 README.md218-239 README.md240-262 README.md263-288 README.md289-304
学生在开始核心CS课程之前,必须完成高中数学,包括代数、几何和预科微积分。高级系统课程还需要基础物理知识。
| 要求 | 复杂度 | 备注 |
|---|---|---|
| 数学 | 预科微积分 | 链接至 ossu.dev/precollege-math |
| 物理 | 高中水平 | 仅限高级系统课程 |
| 编程 | 无 | CS入门提供入口 |
提供单课程介绍,让学生接触到基础的CS概念
| 课程 | 持续时间 | 工作量 | 实现 |
|---|---|---|---|
| MIT 6.100L 计算机科学与编程导论 (Python) | 14周 | 每周6-10小时 | coursepages/intro-cs/README.md |
核心CS阶段包含八个必须全部完成的必修科目领域
| 学科领域 | 课程数量 | 总时长 | 关键主题 |
|---|---|---|---|
| 核心编程 | 7门课程 | 47周 | 函数式编程、面向对象编程、设计模式、软件架构 |
| 核心数学 | 4门课程 | 45周 | 微积分、离散数学、证明、统计学 |
| CS 工具 | 1门课程 | 2周 | Shell脚本、版本控制、开发环境 |
| 核心系统 | 4门课程 | 30-32周 | 计算机体系结构、操作系统、网络 |
| 核心理论 | 4门课程 | 16周 | 算法、数据结构、计算复杂性 |
| 核心安全 | 3-4门课程 | 20-24周 | 网络安全、安全编码、漏洞分析 |
| 核心应用 | 6门课程 | 25周 | 数据库、机器学习、图形学、软件工程 |
| 核心伦理 | 3门课程 | 16周 | 职业道德、知识产权、隐私 |
关键课程实现包括
coursepages/spd/README.mdcoursepages/ostep/README.md来源:README.md133-134 README.md135-304
学生根据职业兴趣选择专业领域
| 专项 | 课程选择 | 重点领域 |
|---|---|---|
| 高级编程 | 6门课程 | 并行计算、编译器、函数式语言、调试 |
| 高级系统 | 3门课程 | 数字电路、计算机体系结构、硬件设计 |
| 高级理论 | 3门课程 | 形式语言、计算几何、博弈论 |
| 高级安全 | 6门课程 | Web安全、取证、安全开发生命周期 |
| 高级数学 | 5门课程 | 线性代数、数值方法、形式逻辑、概率 |
毕业设计要求,学生可以通过解决实际问题来展示他们的掌握程度。选项包括创建原创项目或完成结构化的专业课程,例如
Fullstack Open(12周,每周15小时)现代机器人技术专业课程(26周,每周2-5小时)数据挖掘专业课程(30周,每周2-5小时)总预计时长:约2年,每周学习投入20小时
课程提供了一个跟踪电子表格,可根据个人学习计划进行个性化时间估算。
来源:README.md54-56 README.md64-68
学生可以根据自己的学习偏好调整课程结构
| 方法 | 描述 | 推荐 |
|---|---|---|
| 顺序 | 按列出顺序完成课程 | 推荐给初学者 |
| 并行 | 同时学习多门课程 | 热门:数学课程与入门课程并行学习 |
| 灵活 | 跳过已掌握的课程 | 只有在确信掌握的情况下才能跳过核心CS课程 |
先修课程和依赖关系:课程先修课程已明确列出,以确保适当的准备。依赖结构允许一定的灵活性,同时保持学术严谨性。