In this course you will learn data structures and algorithms by solving 80+ practice problems. You will begin each course by learning to solve defined problems related to a particular data structure and algorithm. By the end of each course, you would be able to evaluate and assess different data structures and algorithms for any open-ended problem and implement a solution based on your design choices.
Course Outline
Intro
- Welcome
- Getting Help and Support
- Python Refresher
- How to Solve Problems
- A systematic way of approaching and breaking down problems
- Efficiency
- Understanding the importance of efficiency when working with data structures and algorithms.
- Project 1 - Unscramble CS Problems
- Complete five tasks based on a fabricated set of calls and texts exchanged during September 2016
- Use Python to analyze and answer questions about the texts and calls contained in the dataset
- Perform run time analysis of your solution and determine its efficiency
Data Structures
- Arrays and Linked Lists
- Build Stacks and Queues
- Apply Recursion to Problems
- Trees - basic trees, traversal & binary search trees
- Maps and Hashing
- Project 2 - Show Me the Data Structures: implement appropriate data structures and corresponding methods
- Least Recently Used (LRU) Cache
- File Recursion
- Huffman Coding
- Active Directory
- Blockchain
- Union and Intersection
- Show Me the Data Structures
- Include three test cases for each solution
- In separate text file, write explanation for using given data structure and explain the time and speed efficiency for each solution.
Basic Algorithms
- Basic Algorithms
- Sorting Algorithms
- Faster Divide & Conquer
- Project 3 - Problems vs. Algorithms
- Square Root of an Integer
- Search in a Rotated, Sorted Array
- Rearrange Array Digits
- Dutch National Flag Problem
- Autocomplete with Tries
- Unsorted Integer Array
- Request Routing in a Web Server with a Trie
Advanced Algorithms
- Greedy Algorithms
- Graph Algorithms
- Dynamic Programming
- A-Star (A*) Algorithm
- Project 4 - Route Planner **
- In this project, you will build a route-planning algorithm like the one used in Google Maps to calculate the shortest path between two points on a map.
Project #4 notebook requires plotly. However, trying to run the notebook locally resulted in this error:
ImportError:
The plotly.plotly module is deprecated,
please install the chart-studio package and use the
chart_studio.plotly module instead.
Also just changing import plotly.plotly as py
in the helpers.py to import chart_studio.plotly as py
does not work.
Throws an error AttributeError: 'Graph' object has no attribute '_node'
Possible Solution
Additional Info:
UPDATE NOTE It appears registration and an API key are required to use chart_studio.plotly.
The contents of this repository are covered under the MIT License