Almost all other courses focus on knowledge. In this course, we focus on gaining real skills.
Overall:
The course covers a good subset of algorthmic topics
Learn the inner details of the algorithms and their time & memory complexity analysis
Learn how to code line-by-line
Source code and Slides and provided for all content
An extensive amount of practice to master the taught algorithms (where most other content fails!)
Content:
Dynamic Programming: Intro
DP: Pick or Leave Pattern
DP: Enumerating the choices
DP Range Patterns
DP on Graph and Grids
DP Counting
DP: Printing Solution
DP Tabulation
DP Solving Marathon
Backtracking
Divide and Conquer
Shortest Path Algorithm: Floyd-Warshal
Shortest Path Algorithm: Bellman-Ford
Shortest Path Algorithm: Dijkstra
Minimum Spanning Tree: Prim
Minimum Spanning Tree: Kruskal
Teaching Style:
Instead of long theory then coding style, we follow a unique style
I parallelize the concepts with the codes as much as possible
Unless better for you to work on pseudocode first
Go Concrete as possible
Use Clear Simple Visualization
Engagement
By the end of the journey
Solid understanding of Algorithms topics in C++
Mastering different skills
Analytical and Problem-Solving skills
Clean coding for algorithms
With the administered problem-solving skills
You can start competitive programming smoothly
A strong step toward interviews preparation
Prerequisites
Programming Skills:
Strong Programming skills
Solving a lot of basic problem-solving problems on fundamentals
Good understanding for basic recursion (E.g. Fibonacci)
STL, especially Vectors, map/set, unordered map/set
Highly Preferred:
Do programming projects
Finish a descent data structure course (extensive data structure practice)
Don't miss such a unique learning experience!
Acknowledgement: “I’d like to extend my gratitude towards Robert Bogan for his help with proofreading the slides for this course”