# Computer Science - Extra Resources ## Courses - [Introduction to Computer Science](#introduction-to-computer-science) - [Math (Mathematical Thinking)](#math-mathematical-thinking) - [Program Design](#program-design) - [Math (Discrete Math)](#math-discrete-math) - [Algorithms](#algorithms) - [Programming Paradigms](#programming-paradigms) - [Software Testing](#software-testing) - [Math (Calculus)](#math-calculus) - [Software Architecture](#software-architecture) - [Theory](#theory) - [Software Engineering](#software-engineering) - [Math (Probability)](#math-probability) - [Computer Architecture](#computer-architecture) - [Operating Systems](#operating-systems) - [Computer Networks](#computer-networks) - [Databases](#databases) - [Cloud Computing](#cloud-computing) - [Math (Linear Algebra)](#math-linear-algebra) - [Cryptography](#cryptography) - [Security](#security) - [Compilers](#compilers) - [Parallel Computing](#parallel-computing) - [UX Design](#ux-design) - [Computer Graphics](#computer-graphics) - [Artificial Intelligence](#artificial-intelligence) - [Machine Learning](#machine-learning) - [Natural Language Processing](#natural-language-processing) - [Big Data](#big-data) - [Data Mining](#data-mining) - [Internet of Things](#internet-of-things) --- ### Introduction to Computer Science Courses | Duration | Effort :-- | :--: | :--: [Introduction to Computer Science (Udacity)](https://www.udacity.com/course/intro-to-computer-science--cs101)| 7 weeks | 10-20 hours/week [Introduction to Computer Science](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!)| 12 weeks | 10-20 hours/week [An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1)| 5 weeks | - [An Introduction to Interactive Programming in Python (Part 2)](https://www.coursera.org/learn/interactive-python-2)| - | - [Introduction to Computational Thinking and Data Science](https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-2#!)| 10 weeks | 15 hours/week [Introduction to Programming with Java Part 1: Starting to Code with Java](https://prod-edx-mktg-edit.edx.org/course/introduction-programming-java-part-1-uc3mx-it-1-1x-0)| 5 weeks | 5-7 hours/week [Introduction to Programming with Java Part 2: Writing Good Code](https://prod-edx-mktg-edit.edx.org/course/introduction-programming-java-part-2-uc3mx-it-1-2x)| 5 weeks | 5-7 hours/week [CS For All: Introduction to Computer Science and Python Programming](https://www.edx.org/course/cs-all-introduction-computer-science-harveymuddx-cs005x-0)| 14 weeks | 5-7 hours/week [Programming Basics](https://www.edx.org/course/programming-basics-iitbombayx-cs101-1x)| 9 weeks | 8 hours/week [Introduction to Logic](https://www.coursera.org/course/intrologic)| 8 weeks | 4-10 hours/week ### Math (Mathematical Thinking) Courses | Duration | Effort :-- | :--: | :--: [Introduction to Mathematical Thinking](https://www.coursera.org/course/maththink)| 10 weeks | 8-10 hours/week ### Program Design ### Math (Discrete Math) ### Algorithms Courses | Duration | Effort :-- | :--: | :--: [Analysis of Algorithms](https://www.coursera.org/course/aofa)| 6 weeks | 6-8 hours/week ### Programming Paradigms Courses | Duration | Effort :-- | :--: | :--: [Principles of Reactive Programming](https://www.coursera.org/course/reactive)| 7 weeks | 5-7 hours/week [Object-Oriented Programming](https://www.edx.org/course/object-oriented-programming-iitbombayx-cs101-2x)| 4 weeks | 8 hours/week [Introduction to Functional Programming](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0)| 7 weeks | 4-6 hours/week ### Software Testing ### Math (Calculus) Courses | Duration | Effort :-- | :--: | :--: [Pre-Calculus](https://www.coursera.org/course/precalculus)| 10 weeks | 10-12 hours/week [Multivariable Calculus](https://www.coursera.org/course/m2o2c2)| 6 weeks | 5-7 hours/week ### Software Architecture Courses | Duration | Effort :-- | :--: | :--: [Web Application Architectures](https://www.coursera.org/course/webapplications)| 6 weeks | 6-9 hours/week ### Theory ### Software Engineering Courses | Duration | Effort :-- | :--: | :--: [Agile Development Using Ruby on Rails - Basics](https://www.edx.org/course/agile-development-using-ruby-rails-uc-berkeleyx-cs169-1x)| 9 weeks | 12 hours/week [Agile Development Using Ruby on Rails - Advanced](https://www.edx.org/course/agile-development-using-ruby-rails-uc-berkeleyx-cs169-2x)| 8 weeks | 12 hours/week [Startup Engineering](https://www.coursera.org/course/startup) | 12 weeks | 2-20 hours/week ### Math (Probability) ### Computer Architecture Courses | Duration | Effort :-- | :--: | :--: [The Hardware/Software Interface](https://www.coursera.org/course/hwswinterface)| 8 weeks | 10-15 hours/week ### Operating Systems Courses | Duration | Effort :-- | :--: | :--: [Operating System Engineering](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/)| - | - [Introduction to Linux](https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-0)| 8 weeks | 5-8 hours/week ### Computer Networks Courses | Duration | Effort :-- | :--: | :--: [Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about) | - | 5-10 hours/week ### Databases ### Cloud Computing ### Math (Linear Algebra) Courses | Duration | Effort :-- | :--: | :--: [Linear Algebra - Foundations to Frontiers (LAFF)] (https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-03x)| 15 weeks | 8 hours/week ### Cryptography Courses | Duration | Effort :-- | :--: | :--: [Applied Cryptography](https://www.udacity.com/course/applied-cryptography--cs387)| 8 weeks | 6 hours/week [Cryptography](https://www.coursera.org/learn/cryptography/)| 7 weeks | 4-7 hours/week ### Security Courses | Duration | Effort :-- | :--: | :--: [Usable Security](https://www.coursera.org/learn/usable-security/)| 7 weeks | 5-8 hours/week [Software Security](https://www.coursera.org/learn/software-security/)| 6 weeks | 3-5 hours/week [Cybersecurity and Its Ten Domains](https://www.coursera.org/learn/cyber-security-domain/)| 7 weeks | 4-7 hours/week [Designing and Executing Information Security Strategies](https://www.coursera.org/course/infosec)| 10 weeks | 4-6 hours/week ### Compilers ### Parallel Computing ### UX Design ### Computer Graphics ### Artificial Intelligence Courses | Duration | Effort :-- | :--: | :--: [Discrete Optimization](https://www.coursera.org/course/optimization)| 9 weeks | 10-20 hours/week [Intro to Artificial Intelligence](https://www.udacity.com/course/intro-to-artificial-intelligence--cs271)| 16 weeks | 6-10 hours/week ### Machine Learning Courses | Duration | Effort :-- | :--: | :--: [Intro to Machine Learning](https://www.udacity.com/course/intro-to-machine-learning--ud120)| 10 weeks | 6-10 hours/week ### Natural Language Processing ### Big Data ### Data Mining ### Internet of Things Courses | Duration | Effort :-- | :--: | :--: [Introduction to the Internet of Things and Embedded Systems](https://www.coursera.org/learn/iot/?source=phoenixCdp2016AbTest)| 4 weeks | 1-3 hours/week [Internet of Things: How did we get here?](https://www.coursera.org/learn/internet-of-things-history/)| 2 weeks | 2-3 hours/week [Internet of Things: Setting Up Your DragonBoard™ Development Platform](https://www.coursera.org/learn/internet-of-things-dragonboard/)| 10 weeks | 2-3 hours/week [Internet of Things: Sensing and Actuation From Devices](https://www.coursera.org/learn/internet-of-things-sensing-actuation)| 6 weeks | 3-5 hours/week [Internet of Things: Communication Technologies](https://www.coursera.org/learn/internet-of-things-communication)| 4 weeks | 1 hours/week [Internet of Things: MultimediaTechnologies](https://www.coursera.org/learn/internet-of-things-multimedia)| 3 weeks | 1-2 hours/week