- Introduction to Computer Science
- Math (Mathematical Thinking)
- Program Design
- Math (Discrete Math)
- Algorithms
- Programming Paradigms
- Software Testing
- Math (Calculus)
- Software Architecture
- Theory
- Software Engineering
- Math (Probability)
- Computer Architecture
- Operating Systems
- Computer Networks
- Databases
- Cloud Computing
- Math (Linear Algebra)
- Cryptography
- Security
- Compilers
- Parallel Computing
- UX Design
- Computer Graphics
- Artificial Intelligence
- Machine Learning
- Natural Language Processing
- Big Data
- Data Mining
- Internet of Things
- Specializations
Courses | Duration | Effort |
---|---|---|
Introduction to Computer Science and Programming Using Python | 9 weeks | 15 hours/week |
From Nand to Tetris (Part 1) | 6 weeks | 5-10 hours/week |
Courses | Duration | Effort |
---|---|---|
Effective Thinking Through Mathematics | 9 weeks | 5 hours/week |
Courses | Duration | Effort |
---|---|---|
How to Code: Systematic Program Design - Part 1 | 5 weeks | 8-12 hours/week |
How to Code: Systematic Program Design - Part 2 | 5 weeks | 8-12 hours/week |
How to Code: Systematic Program Design - Part 3 | 5 weeks | 8-12 hours/week |
Courses | Duration | Effort |
---|---|---|
Mathematics for Computer Science | 12 weeks | 5 hours/week |
Courses | Duration | Effort |
---|---|---|
Algorithms, Part I | 6 weeks | 6-12 hours/week |
Algorithms, Part II | 6 weeks | 6-12 hours/week |
Courses | Duration | Effort |
---|---|---|
Functional Programming Principles in Scala | 7 weeks | 5-7 hours/week |
Object Oriented Programming in Java | 6 weeks | 4-6 hours/week |
Courses | Duration | Effort |
---|---|---|
Software Testing | 4 weeks | 6 hours/week |
Software Debugging | 8 weeks | 6 hours/week |
Courses | Duration | Effort |
---|---|---|
Calculus One | 16 weeks | 8-10 hours/week |
Calculus Two: Sequences and Series | 7 weeks | 9-10 hours/week |
Courses | Duration | Effort |
---|---|---|
Software Architecture & Design | 8 weeks | 6 hours/week |
Courses | Duration | Effort |
---|---|---|
Automata | 6 weeks | 8-10 hours/week |
Courses | Duration | Effort |
---|---|---|
Software Processes and Agile Practices | 4 weeks | 6-8 hours/week |
Courses | Duration | Effort |
---|---|---|
Introduction to Probability - The Science of Uncertainty | 16 weeks | 12 hours/week |
Courses | Duration | Effort |
---|---|---|
Computer Architecture | - | 5-8 hours/week |
Courses | Duration | Effort |
---|---|---|
Operating Systems and System Programming | 10 weeks | 2-3 hours/week |
Courses | Duration | Effort |
---|---|---|
Computer Networks | - | 4–12 hours/week |
Courses | Duration | Effort |
---|---|---|
Databases | 12 weeks | 8-12 hours/week |
Courses | Duration | Effort |
---|---|---|
Introduction to Cloud Computing | 4 weeks | 1 hour/week |
Courses | Duration | Effort |
---|---|---|
Coding the Matrix: Linear Algebra through Computer Science Applications | 10 weeks | 7-10 hours/week |
Courses | Duration | Effort |
---|---|---|
Cryptography I | 6 weeks | 5-7 hours/week |
Cryptography II | 6 weeks | 6-8 hours/week |
Courses | Duration | Effort |
---|---|---|
Introduction to Cyber Security | 8 weeks | 3 hours/week |
Courses | Duration | Effort |
---|---|---|
Compilers | 9 weeks | 6-8 hours/week |
Courses | Duration | Effort |
---|---|---|
Heterogeneous Parallel Programming | 11 weeks | 8-10 hours/week |
Courses | Duration | Effort |
---|---|---|
UX Design for Mobile Developers | 6 weeks | 6 hours/week |
Courses | Duration | Effort |
---|---|---|
Computer Graphics | 6 weeks | 12 hours/week |
Courses | Duration | Effort |
---|---|---|
Artificial Intelligence | 12 weeks | 15 hours/week |
Courses | Duration | Effort |
---|---|---|
Machine Learning | 11 weeks | 4-6 hours/week |
Courses | Duration | Effort |
---|---|---|
Natural Language Processing | 10 weeks | 8-10 hours/week |
Courses | Duration | Effort |
---|---|---|
Introduction to Big Data | 3 weeks | 5-6 hours/week |
Courses | Duration | Effort |
---|---|---|
Pattern Discovery in Data Mining | 4 weeks | 4-6 hours/week |
Courses | Duration | Effort |
---|---|---|
The Internet of Things | 4 weeks | 2 hours/week |
This guide was developed to be consumed in a linear approach. What does this mean? That you should complete one course at a time.
The courses are already in the order that you should complete them. Just start in the Introduction to Computer Science section and after finishing the first course, start the next one.
If the course isn't open, do it anyway with the resources from the previous class.
- Projects: A list of practical projects that anyone can solve in any programming language.
- app-specs: A curated list of applications specifications and implementations to practice new technologies, improve your portfolio and sharpen your skills.
- FreeCodeCamp: Course that teaches you fullstack JavaScript development through a bunch of projects.
- JavaScript Projects: List of projects related with the JavaScript Path.