Nanodegree Program

Data Structures and Algorithms

Ace technical coding interviews

Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.

Enrollment Closing In

Why Take This Nanodegree Program?

This program will help you gain an in-depth understanding of data structures and algorithms through 100+ practice problems and dedicated mentor support. Learn by doing as you practice with both defined and open-ended questions. This practice will help you learn to design elegant solutions to new and open-ended problems.

Icon - Dark upwards trend arrow

Data Structures and Algorithms questions are a key component of every technical interview for software engineers

I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
— Linus Torvalds, Linux and Git creator
Selling Points - group of 3 people holding papers and gathered around a laptop
Icon - checklist (black on green)

Practice With Over 100 Exercises

Complete over 100 data structures and algorithms problems and four projects to help prepare you for job interviews and on-the-job scenarios.

Icon - lightbulb (white on blue)

Solve Data Structures and Algorithms Problems

Learn how to approach well-defined or open-ended data structures and algorithms interview problems and how to implement the appropriate solution based on your design choices.

Selling Points - Happy woman smiling at tablet
Icon - chat bubble (white on pink)

Beneficial and Supportive Project Review

Advance quickly and successfully through the curriculum with the support of qualified reviewers whose detailed feedback will ensure you learn skills the right way.

Icon - person wearing tie (white on purple)

An Outstanding Community

Draw inspiration and knowledge from your student community. Stay on-track with the support of the mentor network directly in the classroom when you need guidance on specific challenges or projects.


Download Syllabus

Data Structures & Algorithms

In this course you will learn data structures and algorithms by solving 100+ practice problems. You will begin each course by learning to solve defined problems related to a particular data structure and algorithm. By the end of each course, you would be able to evaluate and assess different data structures and algorithms for any open-ended problem and implement a solution based on your design choices.

Learn data structures and algorithms by solving 100+ practice problems.

Hide details

3 months to complete

Prerequisite Knowledge

Python & Basic Algebra.See detailed requirements.

  • Welcome

    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.

    Unscramble computer science problems
  • Data Structures

    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.

    Show me the data structures
  • Basic Algorithms

    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.

    Problems vs. Algorithms
  • Advanced Algorithms

    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.

    Route Planner

Learn with the best

Brynn Claypoole
Brynn Claypoole


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.

 Abe Feinberg
Abe Feinberg

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.

Kyle Stewart-Franz
Kyle Stewart-Franz

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.

Advance Your Career

We’ll support your career journey throughout the preparation and search process, and our goal is to help you secure a rewarding role in your chosen career.

The Data Structures and Algorithms program is built with industry practitioners and engineers in different roles to help prepare you for software engineering interviews and on-the-job problems. Whether you are preparing for a role as a web-developer, machine-learning engineer, or data engineer, you’ll emerge from the program uniquely prepared to provide immediate value to any organization. We’ll support your career journey throughout the preparation and search process, and our goal is to help you secure a rewarding role in your chosen career.

Be in high demand
Connect with Opportunities

Practice with 100+ problems with Udacity and open up a world of opportunities.

Be in high demand. Practice with 100+ data structures and algorithms problems and open up a world of opportunities. The Udacity Talent Program employers are eager to meet you.

Build a Great Network

Connect with our global community to grow your career.

Connect with 70,000+ highly-skilled alumni to collaborate, share referrals, or hire your own team. The Udacity Alumni Network offers opportunities to continue building your professional skills while you advance your career.

Target Your Job Search

Work with career professionals to impress recruiters.

Work with a career coach to get personalized advice, improve your job search and impress recruiters. Build your professional brand with feedback from industry professionals on your resume, LinkedIn, and GitHub profile.

Get Started Now


Data Structures & Algorithms

$599 USD
11 days left to enroll!
Enroll Now
Ace technical coding interviews.

Program Details

  • Why should I enroll?

    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 100 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.

  • What jobs will this program prepare me for?

    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.

  • How do I know if this program is right for me?

    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.

  • Who built this Nanodegree program?

    This Nanodegree program was a collaboration between Udacity’s content and engineering teams, as well as industry experts.

    Curriculum Advisors

    • Mat Leonard, Product Lead, School of AI at Udacity


    • Brynn Claypoole, Software Engineer at 10x Genomics
    • Kyle Stewart Frantz, Content Developer at Udacity
    • Abe Feinberg, Content Developer at Udacity

    Other Udacity Contributors:

    • Dane Hammer, Robin Robin, James Bibby, Pradeep Uppala, Brok Bucholtz, Cezanne Camacho, Alan Anderson, Peiyan, David Harris, Stephen Welch, and Chris Gearhart
    Enrollment and Admission
  • Do I need to apply? What are the admission criteria?

    There is no application. This Nanodegree program accepts everyone, regardless of experience and specific background.

  • What are the prerequisites for enrollment?

    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 I do not meet the requirements to enroll, what should I do?

    If you are new to programming, we recommend the Introduction to Programming Nanodegree program.

    Tuition and Term of Program
  • How is this Nanodegree program structured?

    This program consists of one three (3)-month long term. To graduate from the program, you'll need to successfully complete all required projects.

    These projects are designed to give you hands-on practice, and enable you to demonstrate your mastery of the concepts.

    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.

  • How long is this Nanodegree program?

    Access to this Nanodegree program runs for the period noted in the Term Length section above.

    See the Terms of Use for other policies around the terms of access to our Nanodegree programs.

  • Can I switch my start date? Can I get a refund?

    Please see the Udacity Nanodegree program FAQs for policies on enrollment in our programs.

  • How much does the program cost?

    The full program consists of one 3-month long Term at a cost of USD $599. Payment is due before the term begins.

  • What software and versions will I need in this program?

    Software/version requirements:

    • Python 3
    • A code/text editor, such as vim, Sublime Text, Atom, or VSCode
    • A web browser
    • A command line interface, such as Terminal (on Mac) or Git Bash (on Windows)

    Hardware Requirements:

    A modern personal computer running macOS, Windows, or Linux, with a high-speed Internet connection.

Data Structures and Algorithms

Learn fundamental software engineering skills.