2015-10-03 15:35:37 -04:00
2015-10-03 16:15:04 -04:00
![open source society university ](http://i.imgur.com/h8xjrrj.png )
2015-05-14 18:23:14 -04:00
2015-10-03 22:06:24 -04:00
:mortar_board: **Path to a free self-taught graduation in Computer Science!**
2015-05-14 09:51:21 -04:00
2015-10-03 20:08:40 -04:00
## Contents
- [About ](#about )
- [Becoming an OSS student ](#becoming-an-oss-student )
- [Topics ](#topics )
2015-10-04 06:19:06 -04:00
- [How to use this guide ](#how-to-use-this-guide )
2015-10-04 06:25:47 -04:00
- [Prerequisite ](#prerequisite )
2015-10-04 06:32:57 -04:00
- [How to collaborate ](#how-to-collaborate )
2015-10-04 08:00:02 -04:00
- [Community ](#community )
2015-10-03 20:08:40 -04:00
- [Next Goals ](#next-goals )
- [References ](#references )
2015-05-14 09:51:21 -04:00
2015-10-03 20:08:40 -04:00
## About
2015-10-03 15:33:25 -04:00
2015-10-04 16:26:46 -04:00
This is a **solid path** for those of you who want to complete a Computer Science course on your own time, **for free** , with courses from the **best universities** in the World.
2015-10-03 20:11:12 -04:00
2015-10-04 16:26:46 -04:00
In the future, more categories and/or courses will be added to this list or a more advanced/specialized list.
2015-10-03 15:33:25 -04:00
2015-10-04 16:26:46 -04:00
Initially, we will also give preference to MOOC (Massive Open Online Course) type of courses because those courses were created with our style of learning in mind.
2015-10-03 15:33:25 -04:00
2015-10-03 20:08:40 -04:00
## Becoming an OSS student
2015-10-04 17:02:18 -04:00
Your registration for this graduation course will be effectuated after you create your profile in our [students profile ](https://github.com/open-source-society/computer-science-and-engineering/issues/28 ) issue.
2015-10-03 20:08:40 -04:00
2015-10-03 21:52:26 -04:00
> **"How can I do this?"**
2015-10-03 20:08:40 -04:00
2015-10-04 17:02:18 -04:00
Comment in [that ](https://github.com/open-source-society/computer-science-and-engineering/issues/28 ) issue in order to officially enrolling in our course, and make your public commitment!
2015-10-03 20:08:40 -04:00
2015-10-04 17:02:18 -04:00
Use the following model to create your profile:
2015-10-03 20:08:40 -04:00
2015-10-03 20:49:49 -04:00
```
2015-10-03 22:00:08 -04:00
- **Name**: YOUR NAME
- **GitHub**: [@your_username]()
- **Twitter**: [@your_username]()
- **Linkedin**: [link]()
- **Website**: [yourblog.com]()
2015-10-03 20:08:40 -04:00
2015-10-04 17:02:18 -04:00
## Completed Courses
2015-10-03 20:08:40 -04:00
2015-10-03 20:56:05 -04:00
**Name of the Section**
2015-06-05 06:33:10 -04:00
2015-10-03 21:56:55 -04:00
Course|Files
2015-10-03 20:08:40 -04:00
:--|:--:
2015-10-03 20:56:05 -04:00
Course Name| [link]()
2015-10-03 20:08:40 -04:00
```
2015-10-04 17:02:18 -04:00
**IMPORTANT**: add your profile **once** and **after** you **finish** each course you can **return** here and **update** your comment.
2015-10-04 16:26:46 -04:00
**ps**: In the *Completed Courses* section, you should link the repository that contains the files that you created in the respective course.
2015-10-03 22:13:18 -04:00
2015-10-03 21:52:26 -04:00
> **"Why should I do this?"**
2015-10-03 20:49:49 -04:00
2015-10-04 16:26:46 -04:00
By making a [public commitment ](http://renewablewealth.com/articles/the-power-of-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.
2015-10-03 20:49:49 -04:00
2015-10-04 16:26:46 -04:00
For those reasons we are using this strategy.
2015-10-03 20:49:49 -04:00
2015-10-03 20:08:40 -04:00
---
2015-06-05 06:33:10 -04:00
2015-05-14 09:51:21 -04:00
## Topics
2015-10-03 15:33:25 -04:00
- [Introduction ](#introduction )
- [Program Design ](#program-design )
- [Programming Paradigms ](#programming-paradigms )
2015-05-14 11:04:35 -04:00
- [Software Testing ](#software-testing )
2015-10-03 17:24:54 -04:00
- [Math ](#math )
2015-10-03 18:16:38 -04:00
- [Algorithms ](#algorithms )
2015-10-03 17:24:54 -04:00
- [Software Architecture ](#software-architecture )
2015-10-03 16:39:52 -04:00
- [Software Engineering ](#software-engineering )
2015-05-14 11:04:35 -04:00
- [Operating Systems ](#operating-systems )
2015-10-03 21:07:59 -04:00
- [Computer Networks ](#computer-networks )
2015-10-03 19:21:12 -04:00
- [Databases ](#databases )
2015-10-03 15:33:25 -04:00
- [Cloud Computing ](#cloud-computing )
2015-05-14 11:04:35 -04:00
- [Cryptography ](#cryptography )
- [Compilers ](#compilers )
2015-10-03 19:09:45 -04:00
- [UX Design ](#ux-design )
2015-05-14 11:04:35 -04:00
- [Artificial Intelligence ](#artificial-intelligence )
- [Machine Learning ](#machine-learning )
- [Natural Language Processing ](#natural-language-processing )
2015-10-03 21:39:06 -04:00
- [Big Data ](#big-data )
2015-05-14 11:04:35 -04:00
- [Data Mining ](#data-mining )
2015-10-03 15:33:25 -04:00
2015-10-03 19:03:12 -04:00
---
2015-10-03 15:33:25 -04:00
### Introduction
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Introduction to Computer Science ](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#! )| 9 ~ 15 weeks
[Introduction to Computer Science and Programming Using Python ](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-5#! )| 9 weeks
[Introduction to Computational Thinking and Data Science ](https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-2#! )| 10 weeks
2015-10-03 15:33:25 -04:00
### Program Design
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Systematic Program Design- Part 1: The Core Method ](https://www.edx.org/course/systematic-program-design-part-1-core-ubcx-spd1x-0 )| 5 weeks
[Systematic Program Design- Part 2: Arbitrary Sized Data ](https://www.edx.org/course/systematic-program-design-part-2-ubcx-spd2x )| 5 weeks
[Systematic Program Design- Part 3: Abstraction, Search and Graphs ](https://www.edx.org/course/systematic-program-design-part-3-ubcx-spd3x )| 5 weeks
2015-10-03 16:19:58 -04:00
2015-10-03 15:33:25 -04:00
### Programming Paradigms
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Introduction to Functional Programming ](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0#ct-read-review-widget )| 7 weeks
[Principles of Reactive Programming ](https://www.coursera.org/course/reactive )| 7 weeks
[Programming Languages ](https://www.coursera.org/course/proglang )| 8-16 hours/week
[Functional Programming Principles in Scala ](https://www.coursera.org/course/progfun )| 7 weeks
2015-05-14 10:34:52 -04:00
### Software Testing
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Software Testing ](https://www.udacity.com/course/software-testing--cs258 )| 4 weeks
[Software Debugging ](https://www.udacity.com/course/software-debugging--cs259 )| 8 weeks
2015-05-14 10:34:52 -04:00
### Math
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Effective Thinking Through Mathematics ](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x )| 9 weeks
[Applications of Linear Algebra Part 1 ](https://www.edx.org/course/applications-linear-algebra-part-1-davidsonx-d003x-1#ct-read-review-widget )| 5 weeks
[Applications of Linear Algebra Part 2 ](https://www.edx.org/course/applications-linear-algebra-part-2-davidsonx-d003x-2 )| 4 weeks
[Linear and Discrete Optimization ](https://www.coursera.org/course/linearopt )| 3-6 hours/week
[Probabilistic Graphical Models ](https://www.coursera.org/course/pgm )| 11 weeks
[Game Theory ](https://www.coursera.org/course/gametheory )| 9 weeks
2015-05-14 10:34:52 -04:00
2015-10-03 18:16:38 -04:00
### Algorithms
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Algorithms, Part I ](https://www.coursera.org/course/algs4partI )| 6 weeks
[Algorithms, Part II ](https://www.coursera.org/course/algs4partII )| 6 weeks
[Analysis of Algorithms ](https://www.coursera.org/course/aofa )| 6 weeks
2015-10-03 18:16:38 -04:00
2015-10-03 18:35:06 -04:00
### Software Architecture
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Web Application Architectures ](https://www.coursera.org/course/webapplications )| 6-9 hours/week
2015-10-04 12:58:08 -04:00
[Software Architecture & Design ](https://www.udacity.com/course/software-architecture-design--ud821 )| -
2015-10-03 23:21:01 -04:00
[Microservice Architectures TODO]()| -
2015-10-03 18:35:06 -04:00
2015-10-03 18:57:11 -04:00
### Software Engineering
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Engineering Software as a Service (SaaS), Part 1 ](https://www.edx.org/course/engineering-software-service-saas-part-1-uc-berkeleyx-cs169-1x )| 9 weeks
[Engineering Software as a Service (Saas), Part 2 ](https://www.edx.org/course/engineering-software-service-saas-part-2-uc-berkeleyx-cs169-2x )| 8 weeks
[Software Product Management Specialization ](https://www.coursera.org/specializations/product-management )| -
2015-10-03 18:57:11 -04:00
2015-05-14 10:34:52 -04:00
### Operating Systems
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Operating System Engineering ](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/ )| -
[Operating Systems and System Programming ](https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL3289DD0D0F0CD4A3 )| -
2015-05-14 10:34:52 -04:00
2015-10-03 21:07:59 -04:00
### Computer Networks
2015-05-14 10:34:52 -04:00
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
2015-10-04 08:00:02 -04:00
[Computer Networks ](https://www.coursera.org/course/comnetworks )| 4– 12 hours/week
[Software Defined Networking ](https://www.coursera.org/course/sdn1 )| 7-10 hours/week
2015-05-14 10:34:52 -04:00
### Databases
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Introduction to Databases ](https://www.coursera.org/course/db )| -
[Database Design ](https://www.udemy.com/database-design/#reviews )| 9 hours
[Database Management Essentials ](https://www.coursera.org/learn/database-management )| weeks
2015-10-03 19:21:12 -04:00
### Cloud Computing
2015-05-14 10:44:08 -04:00
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Introduction to Cloud Computing ](https://www.edx.org/course/introduction-cloud-computing-ieeex-cloudintro-x-0 )| 4 weeks
[Cloud Computing Specialization ](https://www.coursera.org/specializations/cloudcomputing )| -
2015-10-03 19:25:15 -04:00
2015-05-14 10:34:52 -04:00
### Cryptography
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Cryptography I ](https://www.coursera.org/course/crypto )| 6 weeks
[Cryptography II ](https://www.coursera.org/course/crypto2 )| 6 weeks
[Applied Cryptography ](https://www.udacity.com/course/applied-cryptography--cs387 )| 8 weeks
2015-05-14 10:44:08 -04:00
2015-05-14 10:34:52 -04:00
### Compilers
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Compilers ](https://www.coursera.org/course/compilers )| 11 weeks
2015-05-14 10:44:08 -04:00
2015-10-03 21:07:59 -04:00
### UX Design
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Interaction Design Specialization ](https://www.coursera.org/specializations/interaction-design )| -
[UX Design for Mobile Developers ](https://www.udacity.com/course/ux-design-for-mobile-developers--ud849 )| 6 weeks
2015-10-03 21:07:59 -04:00
2015-05-14 10:34:52 -04:00
### Artificial Intelligence
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Artificial Intelligence ](https://www.edx.org/course/artificial-intelligence-uc-berkeleyx-cs188-1x#! )| 12 weeks
2015-05-14 10:34:52 -04:00
2015-05-14 10:50:16 -04:00
### Machine Learning
2015-05-14 10:34:52 -04:00
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Practical Machine Learning ](https://www.coursera.org/course/predmachlearn )| 4 weeks
[Machine Learning ](https://www.coursera.org/learn/machine-learning )| 11 weeks
[Neural Networks for Machine Learning ](https://www.coursera.org/course/neuralnets )| 8 weeks
2015-05-14 18:01:14 -04:00
2015-05-14 10:44:08 -04:00
### Natural Language Processing
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
[Natural Language Processing ](https://www.coursera.org/course/nlangp )| 10 weeks
[Natural Language Processing ](https://www.coursera.org/course/nlp )| 10 weeks
2015-05-14 18:01:14 -04:00
2015-10-03 21:39:06 -04:00
### Big Data
2015-05-14 10:44:08 -04:00
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
2015-10-04 06:19:06 -04:00
[Big Data Specialization ](https://www.coursera.org/specializations/big-data )| -
2015-05-14 10:34:52 -04:00
2015-10-03 21:39:06 -04:00
### Data Mining
2015-05-14 10:34:52 -04:00
2015-10-03 23:21:01 -04:00
Course|Duration
:--|:--:
2015-10-04 06:19:06 -04:00
[Data Mining specialization ](https://www.coursera.org/specializations/datamining )| -
## How to use this guide
### Order of the classes
2015-10-04 16:26:46 -04:00
This guide was developed to be consumed in a linear approach. What does this mean? That you should complete one course at a time.
2015-10-04 06:19:06 -04:00
2015-10-04 16:26:46 -04:00
The courses are **already** in the order that you should complete them. Just start in the **Introduction** section and after finishing the first course, start the next one.
2015-10-04 06:19:06 -04:00
**If the course isn't open, do it anyway with the resources from the previous class.**
### Should I take all courses?
**Yes**! The intention is to conclude **all** the courses listed here!
### Duration of the project
2015-10-04 16:26:46 -04:00
It may take longer to complete all of the classes compared to a regular CS course, but I can **guarantee** you that your **reward** will be proportional to **your motivation/dedication** !
2015-10-04 06:19:06 -04:00
### How can I track my progress?
2015-10-04 16:26:46 -04:00
You should create a repository on GitHub to put all of the files that you created for each course.
2015-10-04 06:19:06 -04:00
2015-10-04 16:26:46 -04:00
You can create one repository per course, or just one repository that will contain all of the files for each course. The first option is our preferred approach.
2015-10-04 06:19:06 -04:00
### Cooperative work
2015-10-04 16:26:46 -04:00
**We love cooperative work**! But is quite difficult to manage a large base of students with specific projects. Use our channels to communicate with other fellows to combine and create new projects.
2015-10-04 06:19:06 -04:00
### Which programming languages should I use?
2015-10-04 16:26:46 -04:00
My friend, here is the best part of liberty! You can use **any** language that you want to complete the courses.
2015-10-04 06:19:06 -04:00
2015-10-04 16:26:46 -04:00
The **important** thing for each course is to **internalize** the **core concepts** and to be able to use them with whatever tool (programming language) that you wish.
2015-10-04 06:19:06 -04:00
### Stay tuned
[Watch ](https://help.github.com/articles/watching-repositories/ ) this repository for futures improvements and general information.
2015-10-03 18:57:11 -04:00
2015-10-04 06:25:47 -04:00
## Prerequisite
2015-10-04 16:26:46 -04:00
The **only things** that you need to know are how to use **Git** and **GitHub** . Here are some resources to learn about them:
2015-10-04 06:25:47 -04:00
- [Try Git ](https://try.github.io/levels/1/challenges/1 )
- [GitHub Training & Guides ](https://www.youtube.com/playlist?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB- )
- [GitHub Hello World ](https://guides.github.com/activities/hello-world/ )
- [Git Immersion ](http://gitimmersion.com/index.html )
- [How to Use Git and GitHub ](https://www.udacity.com/course/how-to-use-git-and-github--ud775 )
2015-10-04 16:26:46 -04:00
**ps**: You don't need to do all of the courses. Just pick one and learn the basics because you will learn more on the go!
2015-10-04 06:25:47 -04:00
2015-10-04 06:32:57 -04:00
## How to collaborate
2015-10-04 16:26:46 -04:00
You can [open an issue ](https://help.github.com/articles/creating-an-issue/ ) and give us your suggestions as to how we can improve this guide, or what we can do to improve the learning experience.
2015-10-04 06:32:57 -04:00
You can also fork this project and fix any mistakes that you have found.
Let's do it together! =)
2015-10-04 08:00:02 -04:00
## Community
2015-10-04 08:26:44 -04:00
Join us in our [group ](https://groups.google.com/forum/#!forum/open-source-society-university )!
2015-10-04 08:00:02 -04:00
2015-10-04 08:26:44 -04:00
You can also interact through [GitHub issues ](https://github.com/open-source-society/computer-science-and-engineering/issues ).
2015-10-04 16:26:46 -04:00
> **ps**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
2015-10-04 08:00:02 -04:00
2015-10-03 20:08:40 -04:00
## Next Goals
2015-10-03 18:57:11 -04:00
2015-10-04 16:26:46 -04:00
- [Adding our university page at Linkedin ](https://help.linkedin.com/app/answers/detail/a_id/40128/~/adding-a-new-university-page ), so that way we will be able to add **OSS University** in our Linkedin profile.
2015-10-03 20:08:40 -04:00
## References
- [Google - Guide for Technical Development ](https://www.google.com/about/careers/students/guide-to-technical-development.html )
- [Coursera ](https://www.coursera.org/ )
- [edX ](https://www.edx.org )
- [MIT Open Courseware ](http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science )