If you've had trouble getting past a hard whiteboarding session, this course is for you. Big-O complexity is arguably the most important concept students learn in a formal computer science degree. You'll build data structures from scratch in Python and improve your problem-solving skills. We'll cover binary trees, linked lists, stacks, graphs and more. This Python course will give you the foundation you need to start your career off on the right foot. After completing this course, you'll be comfortable crushing interview questions and writing performant code.
Overview
Syllabus
- Algorithms Intro
- Learn about what algorithms are and why they matter
- Math
- Learn the math required to understand Big-O notation, namely exponents, logarithms, and factorials
- Big-O Analysis
- Figure out what Big-O notation and time complexity mean in the context of algorithms and performant code
- Sorting Algorithms
- Learn how data is sorted on a computer, and how to sort it faster
- Exponential Time
- Understand why exponential time complexity is so dangerous
- Data Structures Intro
- Learn about data structures and how they play a critical role in algorithms
- Stacks
- Learn about stacks, the original LIFO data structure and build one from scratch
- Queues
- Learn about the FIFO queue data structure and how to implement a simple one from scratch
- Linked Lists
- Understand how linked lists vary from arrays and how to use one to build a faster queue
- Binary Trees
- Learn about binary trees, what they are used for, and implement one from scratch
- Red Black Trees
- Solve the classic balancing problem of traditional binary trees with a red-black algorithm
- Hashmaps
- Build a hashmap from scratch and learn how to use the Python dictionary type effectively
- Tries
- Build all the methods of a trie class, and efficiently search entire documents of text
- Graphs
- Learn about graph structures and how we can use them to quickly solve a wide array of search problems
- BFS and DFS
- Implement and understand the ever-famous breadth first and depth-first search algorithms
- P vs NP
- Learn about P and NP
Taught by
Lane Wagner, Allan, Matt, Hunter, and Dan