At 10 hrs/week
Get access to classroom immediately on enrollment
Hide details
Python & Basic Algebra.See detailed requirements.
Get an overview of your program. Meet your instructors, and refresh your Python skills. Learn the framework to deconstruct any open-ended problem and then understand the concepts of time and space complexity.
Learn different data structures that can be used to store data. Implement different methods used to manipulate these data structures and examine the efficiency. Understand the advantages and applications of different data structures. Learn how to approach open ended problems (either in interview or real-world) and select appropriate data structures based on requirements.
Learn and implement basic algorithms such as searching and sorting on different data structures and examine the efficiency of these algorithms. Use recursion to implement these algorithms and then learn how some of these algorithms can be implemented without recursion. Practice selecting and modifying these algorithms for a variety of interview problems.
Build on your algorithm skills by learning more advanced algorithms such as brute-force greedy algorithms, graph algorithms, and dynamic programming which optimizes recursion by storing results to sub problems.
Real-world projects from industry experts
1-on-1 technical mentor
Personal career coach and career services
Flexible learning program

Instructor
Brynn is a former Udacity employee who worked as Lead Data Analyst at Udacity before joining Facebook as Data Engineer. Currently, she is working as software engineer with 10x Genomics.

Content Developer
Abe is a Content Developer at Udacity and previously taught university courses in psychology and computer science. He loves both learning and teaching, and has a particular passion for breaking down difficult concepts and making them easier to master.

Content Developer
Kyle has developed projects for a variety of Udacity's Nanodegree programs, such as Self-Driving Car Engineer, Robotics, and Blockchain. Kyle, a self-taught developer, is always striving towards creating great learning experience for students.

Numbers don't lie. See what difference it makes in career searches.*
Career-seeking and job-ready graduates found a new, better job within six months of graduation.
Average salary increase for graduates who found a new, better job within six months of graduation.
Whether you want to be a web developer, a machine learning engineer, or a data scientist, having a deep understanding of Data Structures and Algorithms is essential to acing job interviews and becoming a successful software engineer. As Linus Torvalds famously said, "Bad programmers worry about the code. Good programmers worry about data structures and their relationships".
The Data Structures and Algorithms Nanodegree program will help you excel at solving everything from well-defined problems, like how to calculate the efficiency of a specific algorithm, to more open-ended problems, like building your own private blockchain or writing a web-crawler.
You’ll work on over 80 exercises and four real-world projects so that you can get the hands-on practice required to learn how to implement appropriate solutions based on your design choices.
While this course is not designed to prepare you for a specific job, after completing this program, you will have had extensive practice solving data structures and algorithm problems to help you prepare for the data structures and algorithms part of coding interviews.
If you are looking to improve your skills in data structures and algorithms -- to prepare for the technical portion of job interviews, to improve your software engineering skills, etc. -- then this Nanodegree program will provide you with extensive practice with defined and open-ended problems so that you learn how to implement the appropriate solution based on your design choices.
This Nanodegree program was a collaboration between Udacity’s content and engineering teams, as well as industry experts.
Curriculum Advisors
Instructors
Other Udacity Contributors:
There is no application. This Nanodegree program accepts everyone, regardless of experience and specific background.
To optimize your chances of success in the Data Structures and Algorithms Nanodegree program, you should have the following knowledge:
Intermediate Python programming
Basic algebra
If you are new to programming, we recommend the Introduction to Programming Nanodegree program.
The Data Structures and Algorithms Nanodegree program is comprised of content and curriculum to support four (4) projects. We estimate that students can complete the program in four (4) months working 10 hours per week.
Each project will be reviewed by the Udacity reviewer network. Feedback will be provided and if you do not pass the project, you will be asked to resubmit the project until it passes.
Access to this Nanodegree program runs for the length of time specified in the payment card above. If you do not graduate within that time period, you will continue learning with month to month payments. See the Terms of Use and FAQs for other policies regarding the terms of access to our Nanodegree programs.
Please see the Udacity Nanodegree program FAQs for policies on enrollment in our programs.
Software/version requirements:
Hardware Requirements:
A modern personal computer running macOS, Windows, or Linux, with a high-speed Internet connection.