Description
This course will teach you data structures and algorithms by having you solve 80+ practise problems. Each course will begin with you learning to solve defined problems related to a specific data structure and algorithm. By the end of each course, you will be able to evaluate and assess various data structures and algorithms for any open-ended problem and implement a solution based on your design choices.
Syllabus:
Course 1: Supervised Learning
- Introduction
- Python Refresher
- How to Solve Problems
- Big O Notation
Project: Unscramble Computer Science Problems
- Break down a set of open-ended problems into smaller components (e.g, inputs, outputs, series of functions).
Course 2: Data Structures
- Collection data structures (lists, arrays, linked lists, queues, stack)
- Recursion
- Trees
- Maps and Hashing
Project: Show Me the Data Structures
- Solve a series of open-ended practise problems like LRU Cache, Private Blockchain, File Recursion, and others. Improve your ability to identify and implement appropriate data structures and methods that meet given constraints.
Course 3: Basic Algorithms
- Binary Search
- Sorting Algorithms
- Divide & Conquer Algorithms
Project: Problems vs. Algorithms
- A set of real-world open-ended problems, such as request routing for a web server, search-term auto-completion, and the Fibonacci heap, that teach you how to apply appropriate data structures and algorithms in various contexts.
Course 4: Advanced Algorithms
- Greedy Algorithms
- Graph Algorithms
- Dynamic Programming
- Linear Programming
Project: Route Planner
- You will create a route-planning algorithm similar to the one used in Google Maps to calculate the shortest path between two points on a map in this project. You will first choose and implement an appropriate data structure to represent points on a map, followed by the A* algorithm to find the shortest path.