Mastering critical SKILLS in Algorithms using C++: Part 2

Master recursive based techniques, greedy and shortest-path algorithms

Almost all other courses focus on knowledge. In this course, we focus on gaining real skills.

What you’ll learn

  • Master recursive techniques by solving MANY problems.
  • Expose yourself to many algorithmic techniques.
  • After the course, a smooth experience to prepare for coding interviews.
  • Short and well written codes.

Course Content

  • Dynamic Programming (DP) – Intro –> 4 lectures • 42min.
  • DP: Pick or Leave Pattern –> 13 lectures • 2hr 19min.
  • DP: Enumerating the choices –> 5 lectures • 41min.
  • DP: Range Patterns –> 1 lecture • 6min.

Mastering critical SKILLS in Algorithms using C++: Part 2


Almost all other courses focus on knowledge. In this course, we focus on gaining real skills.



  • 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!)



  • Dynamic Programming: Intro
  • DP: Pick or Leave Pattern
  • DP: Enumerating the choices
  • Coming
  • DP Range Patterns
  • DP on Graph and Grids
  • DP Counting
  • DP: Printing Solution
  • DP Tabulation
  • DP Solving Marathon
  • Backtracking
  • Divide and Conquer
  • Greedy
  • Shortest Path Algorithm: Dijkstra
  • Shortest Path Algorithm: Bellman
  • Shortest Path Algorithm: Floyd Warshal
  • Minimum Spanning Tree


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
  • 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



  • 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)


About the Instructor (relevant experience): I was ICPC Finalists in 2010 where algorithms and data structures are the key to success. Learning the exact inner details of these algorithms and how to build real experience compare to others is an important key. For more about me, visit my website.


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”

Get Tutorial