open-source-cs README

The project's README from github.com/ForrestKnight/open-source-cs. As one markdown file: README.md.

The Open Source Computer Science Degree

This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education.

Computer Science Basics

Courses School Duration Effort Frequency Prerequisites
Intro to Computer Science Harvard 10 weeks 10-20 hours/week self-paced none

Programming

Courses School Duration Effort Frequency Prerequisites
Java Programming: Solving Problems with Software Duke 4 weeks 4-8 hours/week twice a month none
Java Programming: Arrays, Lists, and Structured Data Duke 4 weeks 4-8 hours/week twice a month Java Programming: Solving Problems with Software
Object Oriented Programming in Java Duke 6 weeks 4-6 hours/week every week Java Programming: Arrays, Lists, and Structured Data
Data Structures and Performance Duke 6 weeks 6-10 hours/week every week Object Oriented Programming in Java
Java Programming: Principles of Software Design Duke 4 weeks 4-8 hours/week twice a month Java Programming: Arrays, Lists, and Structured Data
Java Programming: Build a Recommendation System Duke 4 weeks 3-6 hours/week once a month Java Programming: Principles of Software Design
Programming Languages, Part A UW 5 weeks 8-16 hours/week once a month Object Oriented Programming in Java
Programming Languages, Part B UW 3 weeks 8-16 hours/week once a month Programming Languages, Part A
Programming Languages, Part C UW 3 weeks 8-16 hours/week once a month Programming Languages, Part B

Math

Courses School Duration Effort Frequency Prerequisites
Calculus 1A: Differentiation MIT 12 weeks 6-10 hours/week self-paced pre-calculus
Calculus 1B: Integration MIT 15 weeks 6-10 hours/week self-paced Calculus 1A: Differentiation
Calculus 1C: Coordinate Systems & Infinite Series MIT 8 weeks 6-10 hours/week self-paced Calculus 1B: Integration
Linear Algebra - Foundations to Frontiers UT Austin 15 weeks 6-10 hours/week self-paced pre-calculus
Introduction to Probability and Data Duke 5 weeks 5-7 hours/week twice a month none
Intro to Statistics Udacity 8 weeks 5-7 hours/week self-paced none

Systems

Courses School Duration Effort Frequency Prerequisites
Build a Modern Computer from First Principles: From Nand to Tetris Hebrew University of Jerusalem 6 weeks 5 hours/week twice a month basic programming knowledge
Build a Modern Computer from First Principles: From Nand to Tetris II Hebrew University of Jerusalem 6 weeks 10-15 hours/week once a month Build a Modern Computer from First Principles: From Nand to Tetris

Theory

Courses School Duration Effort Frequency Prerequisites
Computer Science: Algorithms, Theory, and Machines Princeton 10 weeks 2-5 hours/week once a month Calculus 1A (all), basic programming
Algorithms, Part I Princeton 6 weeks 6-12 hours/week once a month Computer Science: Algorithms, Theory, and Machines
Algorithms, Part II Princeton 6 weeks 6-12 hours/week once a month Algorithms, Part I

Applications

Courses School Duration Effort Frequency Prerequisites
Software Engineering: Introduction UBCx 6 weeks 8-10 hours/week self-paced Java Programming: Build a Recommendation System
Machine Learning Stanford 11 weeks 5-7 hours/week twice a month Linear Algebra - Foundations to Frontiers
Database Management Essentials CU 7 weeks 4-6 hours/week twice a month basic programming & CS knowledge
Cryptography I Stanford 7 weeks 5 hours/week once a month Linear Algebra - Foundations to Frontiers & Introduction to Probability and Data

Unix

Courses School Duration Effort Frequency Prerequisites
Linux Command Line Basics IBM 1 week 12 hours/week self-paced none
The Unix Workbench JHU 4 weeks 4 hours/week once a month none

open-source-cs (ForrestKnight/open-source-cs)

Searching Database…

这是什么?这是一份精选的免费在线课程清单,课程来自麻省理工学院(MIT)、斯坦福大学、普林斯顿大学、杜克大学等顶尖高校。按照清单学完这些课程,就能覆盖与计算机科学本科学位相同的内容,但不包括通识教育要求。
这是正式的大学学位课程,还是只是一份阅读清单?它不是经过认证的学位,而是一份自学路线图,由真正免费的 MOOC 课程组成,分为七个分类表格(基础、编程、数学、系统、理论、应用和 Unix),结构与计算机科学学位的课程设置相对应。
我应该从哪里开始?从哈佛大学的'Intro to Computer Science'课程开始,该课程没有前置要求,然后大致按顺序学习编程、数学、系统、理论、应用和 Unix 表格中的课程。
开始之前需要有编程经验吗?不需要。哈佛的入门课程和杜克大学的'Java Programming: Solving Problems with Software'等入门课程明确不设前置要求,不过后面的课程会建立在同一表格中前面课程的基础上。
学完这份清单能获得真正的学位或证书吗?不能。这是一份自主学习计划,而不是经过认证的项目,因此完成它不会获得官方大学学位,也不会获得大学学分或成绩单。
课程涵盖哪些科目?内容分为七个类别:计算机科学基础、编程、数学、系统、理论、应用和 Unix,涵盖 Java、微积分、线性代数、算法、机器学习、密码学和 Linux 命令行等内容。
这些课程需要按特定顺序学习吗?基本需要。许多条目把同一表格中的另一门课程列为前置课程(例如'Programming Languages, Part B'要求先学'Part A'),因此建议每个表格大致从上到下依次学习。
这份清单里的课程都是免费的吗?是的,README 明确将其描述为“精选的免费课程清单”,课程来自麻省理工学院、斯坦福大学、杜克大学和普林斯顿大学等学校。
为什么不选择付费训练营或学位,而用这份清单?它让你可以学习同样的计算机科学核心主题,包括编程、数学、系统、理论和应用,只需使用免费的大学水平 MOOC,而不必为正式学位支付学费。
Size
<0.1 MB
Stars
23.8K
Updated
CommitJun 11
Age
7y
Commits · 90 Days