You might know algorithms, but do you know advanced algorithms? We're not really sure what that means either, because the distinction is a bit arbitrary. In a nutshell, this is an extension of our basic algorithms course, and here you'll learn more niche algorithms and pick up new ways of thinking that will help you advance your career from a junior to a senior developer.
Overview
Syllabus
- Dijkstra's
- Learn about Dijkstra's algorithm, one of the best ways to find the shortest path between two points
- Bellman-Ford
- Implement the Bellman-Ford algorithm, a specialized way to find the shortest path on a weighted graph
- Heaps
- Master priority queues and heaps. You'll efficiently find the minimum or maximum element in a collection
- A* Search
- The A* algorithm is an advanced search that uses heuristics to guide the search to a more optimal solution
- Dynamic Programming
- Dynamic programming is all about trading space for time, learn how we can take exponential problems and make them linear
- Edit Distance
- Edit distance is a classic problem in computer science, learn how to solve it with dynamic programming
- Linear Programming
- Learn about how to solve complex optimization problems
Taught by
Lane Wagner, Allan, Matt, Hunter, and Dan