Learn essential computer science and object-oriented programming concepts in this introductory Java course.
Learn key computer science concepts in this introductory Python course. You'll learn by doing, and will build your own search engine and social network.
Learn how to model problems, and how to optimize performance by using some of the advanced features of Python.
This class will give you an introduction to the design and analysis of algorithms, enabling you to analyze networks and discover how individuals are connected.
Write Python code to find numerical solutions to systems of differential equations. The models you create will fight wildfires, bring spaceships back to earth, and more!
Starting from the basics of how the web works, you will learn everything you need to know to build your own blog and scale it to support large numbers of users.
Learn how to build high-performance web games with HTML5. We'll port industry-standard development techniques to the web and use them to create a game.
In this course, you'll learn how to build great mobile web experiences. We'll cover performance issues on mobile, and how to make use of mobile sensors.
Learn how to catch bugs and break software as you discover different testing methods that will help you build better software.
In this course you will learn how to debug programs systematically using scientific methods and build several automated debugging tools in Python.
This course is an introduction to the fundamentals of programming languages. Concepts include how to specify and process valid strings, sentences and program structures.
This course will introduce you to the basics of AI. Topics include machine learning, probabilistic reasoning, robotics, computer vision, and natural language processing.
This course will teach you the principles of 3D computer graphics: meshes, transforms, lighting, animation, and making interactive 3D applications run in a browser.
Learn the basic concepts in theoretical computer science. Discover what they imply for solving tough computational challenges.
Learn the fundamentals of parallel computing with the GPU and the CUDA programming environment by coding a series of image processing algorithms. #filters, #cuda.
This course will teach you how to efficiently verify chip functionality, learn about automated test generation, and learn to improve code reuse.
Learn how to program all the major systems of a robotic car. Topics include planning, search, localization, tracking, and control.
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 will provide you with the insight to start recognizing the role of design in today’s world, and to start making better design decisions in your own life.
Learn what it takes to build a successful startup using the Customer Development process, where entrepreneurs "get out of the building" to gather and iterate on feedback.
Know a course absent here? Share with us