Path to a free self-taught education in Computer Science!
Go to file
2015-10-03 21:58:00 -03:00
computer-science Stanford Computer Science 101 - add link to statement 2015-06-28 21:47:25 -03:00
.gitignore Add first course folder - cs intro mit 2015-05-26 12:56:21 -03:00
OLD-README.md New structure 🎉 2015-10-03 16:33:25 -03:00
README.md Add Compilers section 2015-10-03 21:58:00 -03:00

open source society university

🎓 Path to a self-taught graduation in Computer Science!

Contents

About

This is a solid path for you that want to graduate in a Computer Science course in your own time, for free, with courses from the best universities of the World.

Here we will try to choose a maximum of 3 courses for each category. Futurely, more categories and/or courses can be added to this list or in a more advanced list.

Initially, we will also give preference for MOOC (Massive Open Online Course) type of courses because those courses were created with our style of learning in mind.

Becoming an OSS student

Your registration for this graduation course will be effectuated after you create your profile in our students folder.

"How can I do this?"

Just fork this repository and create a markdown file named with your GitHub username. Its that simple.

Use the model below to create your own file:

# Student Profile

**Name**: YOUR NAME
**GitHub**: [@your_username]()
**Twitter**: [@your_username]()
**Linkedin**: [link]()

# Completed Courses

**Name of the Section**

Course||Files
:--|:--:
Course Name| [link]()

"Why should I do this?"

Making a public commitment, we have much more chances to succeed in our graduation, know better our fellows and share the things that we have done.

For those reasons we are using that strategy.


Topics


Introduction

Course Duration Files Status
Introduction to Computer Science 9 ~ 15 weeks -
Introduction to Computer Science and Programming Using Python 9 weeks -
Introduction to Computational Thinking and Data Science 10 weeks -

Program Design

Course Duration Files Status
Systematic Program Design- Part 1: The Core Method 5 weeks -
Systematic Program Design- Part 2: Arbitrary Sized Data 5 weeks -
Systematic Program Design- Part 3: Abstraction, Search and Graphs 5 weeks -

Programming Paradigms

Course Duration Files Status
Introduction to Functional Programming 7 weeks -
Principles of Reactive Programming 7 weeks -
Programming Languages 8-16 hours/week -
Functional Programming Principles in Scala 7 weeks -

Software Testing

Course Duration Files Status
Software Testing 4 weeks -
Software Debugging 8 weeks -

Math

Course Duration Files Status
Effective Thinking Through Mathematics 9 weeks -
Applications of Linear Algebra Part 1 5 weeks -
Applications of Linear Algebra Part 2 4 weeks -
Linear and Discrete Optimization 3-6 hours/week -
Probabilistic Graphical Models 11 weeks -
Game Theory 9 weeks -

Algorithms

Course Duration Files Status
Algorithms, Part I 6 weeks -
Algorithms, Part II 6 weeks -
Analysis of Algorithms 6 weeks -

Software Architecture

Course Duration Files Status
Web Application Architectures 6-9 hours/week -
Microservice Architectures TODO - -

Software Engineering

Course Duration Files Status
Engineering Software as a Service (SaaS), Part 1 9 weeks -
Engineering Software as a Service (Saas), Part 2 8 weeks -
Software Product Management Specialization - -

Operating Systems

Course Duration Files Status
Operating System Engineering - -
Operating Systems and System Programming - -

Networks

Course Duration Files Status
Computer Networks 412 hours/week -
Software Defined Networking 7-10 hours/week -

Databases

Course Duration Files Status
Introduction to Databases - -
Database Design 9 hours -
Database Management Essentials weeks -

Cloud Computing

Course Duration Files Status
Introduction to Cloud Computing 4 weeks -
Cloud Computing Specialization - -

Cryptography

Course Duration Files Status
Cryptography I 6 weeks -
Cryptography II 6 weeks -
Applied Cryptography 8 weeks -

Compilers

Course Duration Files Status
Compilers 11 weeks -

Artificial Intelligence

  1. Artificial Intelligence -

Machine Learning

  1. Practical Machine Learning -
  2. Machine Learning -
  3. Neural Networks for Machine Learning -

Natural Language Processing

  1. Natural Language Processing -
  2. Natural Language Processing -

Internet of Things

Graphs

Data Mining

  1. Data Mining -

Parallel Programming

  1. Parallel Computing -
  2. Heterogeneous Parallel Programming -

Programming Languages

  1. Practical Programming in C -
  2. Introduction to C Memory Management and C++ Object-Oriented Programming -
  3. Effective Programming in C and C++ -

Others

  1. Introduction to Functional Programming
  2. Engineering Software as a Service
  3. Engineering Software as a Service, Part 2
  4. Automata, Computability, and Complexity -
  5. Computational Biology: Genomes, Networks, Evolution -
  6. Creating Video Games -
  7. Computer Graphics -
  8. User Interface Design and Implementation -
  9. Making Sense of Data -
  10. Data Science -

Next Goals

References