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