Skip to content

This repository will host my journey into self-teaching myself a computer science degree.

License

Notifications You must be signed in to change notification settings

marrov/self-taught-computer-science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self-taught Computer Science Degree

This repository hosts my journey into self-teaching myself a computer science degree.

The following is a curated list of free courses from reputable universities like Harvard, Stanford, and Princeton that I will be following to satisfy the same requirements as an undergraduate computer science degree. This repository has been based on others' work, which can be found here, here, and here. Additionally, this roadmap to computer science has been tweaked to my specific background and interests. For instance, all mathematics courses (calculus, linear algebra, statistics, etc) have not been included as they have been already covered by my previous studies (i.e. B.Sc. and M.Sc. in aerospace engineering).

Computer Science Basics

ID Course University Duration Requirements Status
CSB1 CS50's Introduction to Computer Science Harvard 6-18 hours/week for 12 weeks None Completed

Final project: Rebalance - a website for portfolio rebalancing. Check out the video demo

Programming

Core

ID Course University Duration Requirements Status
PC1 Java Programming: Solving Problems with Software Duke 4 weeks None Started
PC2 Java Programming: Arrays, Lists, and Structured Data Duke 4 weeks PC1 Not started
PC3 Object Oriented Programming in Java Duke 6 weeks PC2 Not started
PC4 Data Structures and Performance Duke 6 weeks PC3 Not started
PC5 Java Programming: Principles of Software Design Duke 4 weeks PC2 Not started
PC6 Java Programming: Build a Recommendation System Duke 4 weeks PC5 Not started

Optional

ID Course University Duration Requirements Status
PO1 Programming Languages, Part A UW 5 weeks PC3 Not started
PO2 Programming Languages, Part B UW 3 weeks PO1 Not started
PO3 Programming Languages, Part C UW 3 weeks PO2 Not started

Algorithms and Data Structures

ID Course University Duration Requirements Status
T1 Computer Science: Algorithms, Theory, and Machines Princeton 10 weeks CSB1 Not started
T2 Algorithms, Part I Princeton 6 weeks T1 Not started
T3 Algorithms, Part II Princeton 6 weeks T2 Not started

Systems

Computer Architecture

Operating Systems

Networking

Distributed Systems

ID Course University Duration Requirements Status
DS1 6.824: Distributed Systems MIT 12 weeks To be determined In progress

Applications

Core

ID Course University Duration Requirements Status
AC1 Machine Learning Stanford 11 weeks CSB1 Not started
AC2 Database Management Essentials CU 7 weeks CSB1 Not started

Optional

ID Course University Duration Requirements Status
AO1 Software Engineering: Introduction UBCx 6 weeks PC6 Not started
AO2 Cryptography I Stanford 7 weeks None Not started

C++

Prerequisites: CSB1, PC1-PC6, PO1-PO3 and T1-T3.

Unlike many other programming languages, which are often picked up on the go, few are able to quickly pick up C++ without studying a well-written C++ book. It is way too big and complex for doing this. In fact, it is so big and complex, that there are very many very bad C++ books out there. The following is a small list of key books extracted from the Definitive C++ Book Guide and List:

About

This repository will host my journey into self-teaching myself a computer science degree.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published