Udacity

Udacity is the future of online higher education. We offer accessible, affordable, engaging classes that anyone can take, anytime. Udacity's mission is to bring accessible, affordable, engaging, and highly effective higher education to the world. They believe that higher education is a basic human right, and seek to empower their students to advance their education and careers.
All of the Udacity courses are available for free. However, there is a for-credit path for some of the courses which is clearly indicated on each of their course overview pages.
Course List
Ever played the Kevin Bacon game? This class will show you how it works by giving you an introduction to the design and analysis of algorithms, enabling you to discover how individuals are connected. This class assumes an understanding of programming at the level of CS101, including the ability to read and write short programs in Python; it also assumes a comfort level with mathematical notation at the level of high school Algebra II or the SATs. By the end of this class you will understand key concepts needed to devise new algorithms for graphs and other important data structures and to evaluate the efficiency of these algorithms.
Add to course comparison | | View your course lists

Cryptography is present in everyday life, from paying with a credit card to using the telephone. Learn all about making and breaking puzzles in computing. This course assumes previous programming experience, comparable to what is covered by the Udacity CS101 course, as well as some understanding of probability and theory of computation and algorithm analysis. Explore how secrets are written and shared, as well as what can go wrong when cryptography is misused or implemented badly.
Add to course comparison | | View your course lists

Learn how to program all the major systems of a robotic car from the leader of Google and Stanford's autonomous driving teams. This class will teach you basic methods in Artificial Intelligence, including: probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics. Extensive programming examples and assignments will apply these methods in the context of building self-driving cars. You should either already know Python, or have enough experience with another language to be confident you can pick up what you need on your own. Fortunately, Python was built to be easy to learn, read, and use. If you already know another programming language, you'll be coding in Python in less than an hour. Additionally, knowledge of probability and linear algebra will be helpful. This course will cover probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics.
Add to course comparison | | View your course lists

Learn new concepts, patterns, and methods that will expand your programming abilities, helping move you from a novice to an expert programmer. This course assumes previous programming experience, comparable to what is covered by the Udacity CS101 course. Move along the path towards becoming an expert programmer! In this class you will practice going from a problem description to a solution, using a series of assignments.
Add to course comparison | | View your course lists

In this course you will examine real world problems -- rescue the Apollo 13 astronauts, stop the spread of epidemics, and fight forest fires -- involving differential equations and figure out how to solve them using numerical methods. You'll need a basic knowledge of programming for this course, around the level of CS 101 or equivalent. You'll also need to understand trigonometry at the high school level, as well as basic vector algebra. This class will primarily involve solving equations numerically rather than analytically, but some exposure to calculus and physics at the level of PH 100 wouldn't hurt. By the end of this course, you'll develop an intuition for the use of differential equations in the applied sciences. You'll also learn how to build mathematical models for systems of differential equations. Along the way, you'll learn how to translate mathematical expressions into Python code, and solve some really cool problems!
Add to course comparison | | View your course lists

When developing chips it is essential that they get verified thoroughly because it is very hard or impossible to fix them once they have been manufactured. In this class, you will learn how to program verification environments that verify chip functionality efficiently, as well as understand and leverage automation such as constrained random test generation and improve code reuse leveraging a standardized methodology. Programming experience including object-oriented programming. Data & Control structure. This course is developed by Cadence Design Systems, a global leader in electronic design automation. Cadence® software, hardware, IP, and services help customers around the world to overcome a range of technical and economic hurdles. This course will teach you how to think like a verification engineer. It will show the software development aspects you need to know to ensure chips are working as expected. You will learn how to implement verification environments.
Add to course comparison | | View your course lists

Learn the key tools and steps to build a successful startup (or at least reduce the risk of failure).
Prior knowledge or experience are not required. Passion, tenacity, and a willingness to work hard are essential. Ideally, you'll join the class with at least a rough idea of the business model of the startup you'll work on step-by-step through the course of the class. You'll learn the key steps of the Customer Development process: how to identify and engage the first customers for your product, and how to gather, evaluate and use their feedback to make your product, marketing and business model far stronger.


This course will walk you through the major components of building GRITS, an HTML5 game. We'll talk about how to take standard game development techniques, and use them to create high performance HTML5 applications. Knowledge of HTML, Javascript, and how the web works is necessary for this course. There is an optional lesson on the specific parts of Javascript and the DOM that you'll need for this class as a refresher, but this is not an introductory course on Javascript. At the end of this course, you'll understand how to develop an HTML5 game. You will gain familiarity with HTML5 features such as 2D canvas and techniques for improving performance.
Add to course comparison | | View your course lists

This class will teach you about the basic principles of 3D computer graphics: meshes, transforms, cameras, materials, lighting, and animation. Course content is brought to you in partnership with Autodesk, a worldwide leader in 3D design, engineering, and entertainment software. Knowing how to program in some language is all you’ll need to get started. Some knowledge of JavaScript is useful later on if you wish to make your projects more interactive and engaging. Familiarity with vectors and matrices will ease your way but is not critical. To be able to see the interactive demos and do programming assignments you need a browser that supports WebGL technology. An up to date version of Chrome or Firefox will work. Almost all programming will be done in JavaScript using three.js library/API. By the end of this class you will know enough to make an animated 3D demo program that runs in a web browser, while also understanding the basic principles of how realistic computer images are generated. You will also have a portfolio of small interactive programs that run in any web browser that supports WebGL.
Add to course comparison | | View your course lists

The objective of this class is to teach you modern AI. You will learn about the basic techniques and tricks of the trade. We also aspire to excite you about the field of AI. Some of the topics in Introduction to Artificial Intelligence will build on probability theory and linear algebra. You should have understanding of probability theory comparable to that at our ST101: Introduction to Statistics class. This class introduces students to the basics of Artificial Intelligence, which includes machine learning, probabilistic reasoning, robotics, and natural language processing.
Add to course comparison | | View your course lists
