Free Course

Intro to Data Structures and Algorithms

Grow With Google

Confidently take on the tech interview

Nanodegree Program

Introduction to Programming

Learn to Code

Advance your career by learning the basics of programming.

About this Course

Technical interviews follow a pattern. If you know the pattern, you’ll be a step ahead of the competition. This course will introduce you to common data structures and algorithms in Python. You'll review frequently-asked technical interview questions and learn how to structure your responses.

You will answer practice problems and quizzes to test your abilities. Then you'll practice mock interviews to get specific recommendations for improvement. Be ready for anything the technical interviewer throws at you.

Course Cost
Approx. 4 weeks
Skill Level
Included in Product

Rich Learning Content

Interactive Quizzes

Taught by Industry Pros

Self-Paced Learning

Student Support Community

Join the Path to Greatness

This course is your first step towards a new career with the Introduction to Programming Program.

Free Course

Intro to Data Structures and Algorithms

byGrow With Google

Enhance your skill set and boost your hirability through innovative, independent learning.

Icon steps

Course Leads

Brynn Claypoole

Brynn Claypoole

Lead Data Analyst

Horatio Thomas

Horatio Thomas

Student Experience Lead, Android

What You Will Learn

lesson 1

Introduction and Efficiency

  • Basic introduction to topics covered in this course.
  • Leand the definition of efficiency as well as an explanation of the notation commonly used to describe efficiency.
  • Practice describing efficiency with code snippets.
lesson 2

List-Based Collections

  • Learn the formal definition of a list, see definitions and examples of list-based data structures, arrays, linked lists, stacks, and queues.
  • Examine the efficiency of common list methods, and practice using and manipulating these data structures.
lesson 3

Searching and Sorting

  • Explore how to search and sort with list-based data structures, including binary search and bubble, merge, and quick sort.
  • Examine the efficiency of each and learn how to use recursion in searching and sorting.
  • See and write examples of these methods, as well as more sorting algorithms like insertion sort.
lesson 4

Maps and Hashing

  • Understand the concepts of sets, maps (dictionaries), and hashing.
  • Examine common problems and approaches to hashing, and practice with examples of hash tables and hash maps.
lesson 5


  • Learn the concepts and terminology associated with tree data structures.
  • Investigate common tree types, such as binary search trees, heaps, and self-balancing trees.
  • See examples of common tree traversal techniques, examine the efficiency of traversals and common tree functions, and practice manipulating trees.
lesson 6


  • Examine the theoretical concept of a graph and understand common graph terms, coded representations, properties, traversals, and paths.
  • Practice manipulating graphs and determining the efficiency associated with graphs.
lesson 7

Case Studies in Algorithms

  • Explore famous computer science problems, specifically the Shortest Path Problem, the Knapsack Problem, and the Traveling Salesman Problem.
  • Learn about brute-force, greedy, and dynamic programming solutions to such problems.
lesson 8

Technical Interviewing Techniques

  • Learn about the “algorithm” for answering common technical interviewing questions.
  • See how to clarify and explain practice interview questions using the concepts taught in this course, and get tips for giving interviewers exactly what they’re looking for in an interview.
lesson 9

Practice Interview

  • Use Pramp to meet with another Udacity student and get live technical interview practice.

Prerequisites and Requirements

  • Proficient in spoken and written English
  • Python (intermediate)
  • Algebra (intermediate)

See the Technology Requirements for using Udacity.

Why Take This Course

The key to successful technical interviews is practice. In this course, you'll review common Python data structures and algorithms. You'll learn how to explain your solutions to technical problems. This course is ideal for you if you've never taken a course in data structures or algorithms. It's also a good refresher if you have some experience with these topics. You'll learn the concepts through video tutorials. You'll watch experienced engineers review supplementary examples and discuss different interview approaches. Then, apply your skills and practice in mock interviews with Pramp!

Udacity partners with tech industry leaders to bring you the most comprehensive resources for your job search. Join this course if you want to be in the driver’s seat of your job search where you decide which roles to interview for and land those interviews!

What do I get?
Instructor videosLearn by doing exercisesTaught by industry professionals