Courses and Nanodegree Programs

Java Programming Basics
Take your first steps towards becoming a Java developer! Learn Java syntax and create conditional statements, loops, and functions.
Intro to Computer Science
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.
How to Use Git and GitHub
Learn to use version control, an important tool for any developer. The course will focus on Git, a specific version control system, and GitHub, a collaboration platform.
Introduction to Python Programming
In this course, you'll learn the fundamentals of the Python programming language, along with programming best practices. You’ll learn to represent and store data using Python data types and variables, and use conditionals and loops to control the flow of your programs. You’ll harness the power of complex data structures like lists, sets, dictionaries, and tuples to store collections of related data. You’ll define and document your own custom functions, write scripts, and handle errors. Lastly, you’ll learn to find and use modules in the Python Standard Library and other third-party libraries.
Intro to Artificial Intelligence
This course will introduce you to the basics of AI. Topics include machine learning, probabilistic reasoning, robotics, computer vision, and natural language processing.
Intro to Algorithms
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.
Scalable Microservices with Kubernetes
This course is designed to teach you about managing microservices, using Kubernetes. This course is built in partnership with experts such as Google’s Kelsey Hightower.

In collaboration with:  Google

Intro to Hadoop and MapReduce
In this short course, learn the fundamentals of MapReduce and Apache Hadoop to start making sense of Big Data in the real world!

In collaboration with:  Cloudera

Technical Interview
Learn the skills technical interviewers expect you to know—efficiency, common algorithms, manipulating popular data structures, and how to explain a solution.

In collaboration with:  Pramp

Artificial Intelligence for Robotics
Learn how to program all the major systems of a robotic car. Topics include planning, search, localization, tracking, and control.

In collaboration with:  Georgia Institute of Technology

GitHub & Collaboration
Learn how to interact with remote repositories and collaborate with other developers on GitHub.
Data Wrangling with MongoDB
Data Scientists spend most of their time cleaning data. In this course, you will learn to convert and manipulate messy data to extract what you need.

In collaboration with:  MongoDB

Networking for Web Developers
You've used the Internet. Now find out more about how it works.
Software Testing
Learn how to catch bugs and break software as you discover different testing methods that will help you build better software.
Programming Languages
This course is an introduction to the fundamentals of programming languages. Concepts include how to specify and process valid strings, sentences and program structures.
Software Development Process
Software Development Processes explores requirements engineering, architecture and design, testing, and software quality in general.

In collaboration with:  Georgia Institute of Technology

Interactive 3D Graphics
This course will teach you the principles of 3D computer graphics: meshes, transforms, lighting, animation, and making interactive 3D applications run in a browser.

In collaboration with:  Autodesk

Design of Computer Programs
Learn how to model problems, and how to optimize performance by using some of the advanced features of Python.
Intro to Theoretical Computer Science
Learn the basic concepts in theoretical computer science. Discover what they imply for solving tough computational challenges.
Applied Cryptography
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.
Software Debugging
In this course you will learn how to debug programs systematically using scientific methods and build several automated debugging tools in Python.
Please waitLoading…

Udacity on the go

Now you can achieve your goals on the move. Discover our offerings, personalised recommendations, classroom experience and so much more. Install Now!