Skip to content

FlorianValery/Online-CS-Degree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 

Repository files navigation

Online Path to an Online Computer Science Degree Equivalent

Contents

Overview

At the end of 2018, I decided to fully commit myself towards Computer Science. I hold a bachelor degree in Foreign Languages (English & Chinese), so the transition was not easy. My goal was to obtain the equivalent of a real computer science BA through MOOCs and other online courses, ultimately to be able to apply for master degrees. Here is the record of the courses I have taken, and some useful information about them (duration, knowledge acquired etc).

Curriculum

Introduction to Computer Science

CS50, like a lot of other people before me, changed my life and made me love computer science. David J. Malan introduces Computer Science to begginers in an amazing and challenging way. Taking this course if you have never writen a line of code before can be tough, really tough, but completing each week's assignment can feel really rewarding.

The content of the course itself is really complete: from how to use a basic command-line interface to fully implementing a complexe stock related website through explaining how simple algorithms work, CS50 is a incredible class to give you a taste of what Computer Science is. This class also requires a Final Project.

Courses Author Duration
CS50's : Introduction to computer Science Harvard 11 weeks
Topics covered
  • Basic Computational Thinking
  • Scratch
  • C Language
  • Arrays
  • Memory (RAM and ROM)
  • Introduction to Data Structures
  • Basic web: HTTP, HTML, CSS
  • Python Language
  • Web Programming using Flask and Javascript
  • Databases (SQL)
Notable Projects
  • CS50 Finance : This is the main imposed project throughout the course. The goal is to implement a fully functional website where we can buy and sell stocks, using real live data.
  • Final Project : Final project of our choice where we a free to build anything we want, as long as it draws upon CS50’s lessons. I decided to implement a fictive e-learning platform.

Programming

Because I have been spending a lot of my time working on side projects using Python as the main programming language, I thought that it was also important to spend some time learning an other one. The Object Oriented Programming Specialization from UC San Diego & Duke was perfect, as it's also focusing Object Oriented Programming.

Courses Author Duration
Java Programming: Solving Problems with Software Duke 4 weeks
Java Programming: Arrays, Lists, and Structured Data Duke 6 weeks
Object Oriented Programming in Java UC San Diego 6 weeks
Data Structures and Performance UC San Diego 6 weeks
Topics covered
  • Java OOP
  • Working with CSV's
  • Data Structures (ArrayList, HashMap, HashSet, LinkedList, Trees...)
  • Memory Models
  • Creating GUI's
  • Inheritance, Polymorphism
  • Basic Algorithms (Binary Search, Linear Search, Merge sort etc)
  • Intro to Asymptotic Analysis, benchmark
Notable Projects
  • Earthquake Map: This is the main project of course 3, and every week's goal is to complete a milestone. The goal is to implement a interactive visualization of a large dataset tagged by geospatial information focus on earthquakes around the world.
  • Speller: This is the main project of course 4, and every week's goal is to complete a milestone. The goal is to implement a 'a smart text editor/processor that incorporates “intelligent” behaviors of modern-day text interfaces including autocomplete, flagging misspelled words and spelling auto-correct'.

Readings

Math

Coming from a non-technical degree, having a strong foundation in Maths was really important. Therefore, I decided to start over from Pre-algebra. Khan Academy was really useful for this. When it comes to Linear ALgebra and Discrete Maths - which are probably the most important fields for CS students , the University of Texas and UC San Diego's respective courses are great and well explained

Basic Math

Courses Author
Pre-algebra Khan Academy
Algebra 1 Khan Academy
Algebra 2 Khan Academy
Precalculus Khan Academy

Advanced Math - General Math

Courses Author Duration
Essence of Linear Algebra 3Blue1Brown (Youtube) -
Linear Algebra - Foundations to Frontiers (alt) University of Texas 15 weeks
Calculus 1A: Differentiation MIT 12 weeks
Calculus 1B: Integration MIT 15 weeks
Calculus 1C: Coordinate Systems & Infinite Series MIT 8 weeks

Advanced Math - Mathematics for Computer Science

Courses Author Duration
Mathematical Thinking in Computer Science UC San Diego & HSE 6 weeks
Combinatorics and Probability UC San Diego & HSE 6 weeks
Introduction to Graph Theory UC San Diego & HSE 5 weeks
Number Theory and Cryptography UC San Diego & HSE 4 weeks
Delivery Problem UC San Diego & HSE 3 weeks

Readings

Systems

Nand2tetris is THE reference when it comes to understanding computer hardware. This class literaly made me start with logic gates, the most primitive components that you can find in a computer, through building a complete computing system which is able to play Tetris. This course was extremely tough, but I now have a deeper understanding about how computers work.

Courses Author Duration
Build a Modern Computer from First Principles: From Nand to Tetris The Hebrew University of Jerusalem 6 weeks
Topics covered
  • Boolean Functions and Gate Logic
  • Boolean Arithmetic and the ALU
  • Memory
  • Machine Language
  • Computer Architecture
  • Assembler

Readings

Data Structure and Algorithms

Tim Roughgarden's course at Stanford University is probably the most complex course about Data Structures and Algorithms. Can be really challenging, but rewarding as well.

Courses Author Duration
Divide and Conquer, Sorting and Searching, and Randomized Algorithms Stanford 4 weeks
Graph Search, Shortest Paths, and Data Structures Stanford 4 weeks
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming Stanford 4 weeks
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them Stanford 4 weeks
Topics covered
  • Asymptotic Analysis
  • Divide & Conquer Algos
  • Randomized Algos
  • Graph Primitives
  • Greedy Algos
  • Minimum Spanning Trees
  • NP-Compete Problems

Readings

About

A fully online curriculum in Computer Science

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published