# 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 [Introduction to Programming with MATLAB](https://www.coursera.org/learn/matlab)| - | - ### 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 (Skiena)](http://www3.cs.stonybrook.edu/~skiena/373/) | 15 weeks | 6-8 hours/week [Analysis of Algorithms (Sedgewick)](https://www.coursera.org/course/aofa)| 6 weeks | 6-8 hours/week [Programming Challenges (Skiena)](http://www3.cs.stonybrook.edu/~skiena/392/) | 14 weeks | 6-8 hours/week [Mathematical Logic and Algorithms Theory](https://iversity.org/en/courses/mathematical-logic-and-algorithms-theory) | 7 weeks | 3-4 hours/week [Algorithmic Toolbox](https://www.coursera.org/learn/algorithmic-toolbox/) | 5 weeks | 4-8 hours/week [Algorithms on Graphs and Trees](https://www.coursera.org/learn/algorithms-on-graphs-and-trees/) | - | - [Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/) | - | - [Advanced Algorithms and Complexity](https://www.coursera.org/learn/advanced-algorithms-and-complexity/) | - | - [Analysis of Algorithms](https://www.coursera.org/course/aofa) | 6 weeks | 6-8 hours/week [Algorithmic Thinking (Part 1)](https://www.coursera.org/learn/algorithmic-thinking-1/) | - | - [Algorithmic Thinking (Part 2)](https://www.coursera.org/learn/algorithmic-thinking-2/) | - | - [Statistical Mechanics: Algorithms and Computations](https://www.coursera.org/learn/statistical-mechanics/) | - | - [Approximation Algorithms Part I](https://www.coursera.org/learn/approximation-algorithms-part-1/) | - | - ### 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) Courses | Duration | Effort :-- | :--: | :--: [Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | - ### 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 [CompTIA Linux+](https://www.cybrary.it/course/comptia-linux-plus/)| - | 5.25 hours ### Computer Networks Courses | Duration | Effort :-- | :--: | :--: [Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about) | - | 5-10 hours/week [CompTIA Network+](https://www.cybrary.it/course/comptia-network-plus/) | - | 32 hours ### Databases Courses | Duration | Effort :-- | :--: | :--: [Using Databases with Python](https://www.coursera.org/learn/python-databases) | 5 weeks | 2-3 hours/week ### Cloud Computing Courses | Duration | Effort :-- | :--: | :--: [CompTIA Cloud+](https://www.cybrary.it/course/comptia-cloud-plus/) | - | 2.5 hours [Cloud Computing Concepts](https://www.coursera.org/course/cloudcomputing) | 5 weeks | 4-8 hours/week [Cloud Computing Concepts: Part 2](https://www.coursera.org/course/cloudcomputing2) | 5 weeks | 4-8 hours/week [Cloud Computing Applications](https://www.coursera.org/course/cloudapplications) | 5 weeks | 10-15 hours/week ### 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 [Cryptography](https://www.cybrary.it/course/cryptography/)| - | 2.9 hours ### 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 [CompTIA Security+](https://www.cybrary.it/course/comptia-security-plus/)| - | 9.5 hours [Cyberwar, Surveillance and Security](https://www.edx.org/course/cyberwar-surveillance-security-adelaidex-cyber101x-0)| 6 weeks | 2-3 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 [Machine Learning for Data Science and Analytics](https://www.edx.org/course/machine-learning-data-science-analytics-columbiax-ds102x-0)| 5 weeks | 7-10 hours/week ### Natural Language Processing ### Big Data Courses | Duration | Effort :-- | :--: | :--: [Big Data for Smart Cities](https://www.edx.org/course/big-data-smart-cities-ieeex-introdatax)| 4 weeks | 3-5 hours/week [Processing Big Data with Azure HDInsight](https://www.edx.org/course/processing-big-data-azure-hdinsight-microsoft-dat202-1x-0)| 5 weeks | 3-4 hours/week [Big Data Science with the BD2K-LINCS Data Coordination and Integration Center](https://www.coursera.org/course/bd2klincs)| 7 weeks | 4-5 hours/week ### Data Mining Courses | Duration | Effort :-- | :--: | :--: [Mining Massive Datasets](https://www.coursera.org/course/mmds)| 7 weeks | 8-10 hours/week [Text Retrieval and Search Engines](https://www.coursera.org/learn/text-retrieval)| - | - [Text Mining and Analytics](https://www.coursera.org/learn/text-mining)| - | - [Pattern Discovery in Data Mining](https://www.coursera.org/learn/data-patterns)| - | - [Cluster Analysis in Data Mining](https://www.coursera.org/learn/cluster-analysis)| - | - ### 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