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, essential tools for evaluating different data structure & algorithms.

Python Refresher

How to Solve Problems


Unscramble Computer Science Problems

Arrays and Linked Lists

Stacks and Queues



Maps and Hashing

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.

Sorting Algorithms

Faster Divide & Conquer Algorithms

Problems vs. Algorithms

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

Graph Algorithms

Dynamic Programming


Route Planner

01. Prepared for Programming

The data structures and algorithms you learn in this program can be implemented in any number of different languages. For that reason, when we discuss these concepts in videos, we’ll explain them in general terms and demonstrate them using pseudocode.

However, it’s also essential to get lots of practice applying the algorithms for yourself, so we’ll provide exercises and projects where you can implement the algorithms using concrete code.

The language we’ll be using for these exercises is Python 3. It will help you a lot if you take the time now to make sure your understanding of fundamental Python is strong. In this section, we’ll briefly review some of the main concepts you should know. This will help you see if you have areas where you need to do some additional review or practice.

At the bottom of the main menu for this Nanodegree, you’ll find an Extracurricular section. This contains our full Introduction to Python course. If you feel uncomfortable with any of the concepts we review in this brief refresher, feel free to use the full Python course to go deeper.