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

Mastering critical SKILLS in Algorithms using C++. This course will teach students how to use the C++ programming language to write code that is effective and efficient when solving problems in algorithmic analysis. In this course, students will learn how to use algorithms effectively and efficiently, how to analyze algorithms, and how to design efficient algorithms. In this course, we will be discussing some of the basic skills necessary for analyzing and solving algorithms in C++.

When working with algorithms, it is important to understand the different types of data that can be processed. Algorithms can be used to process numeric data, strings, arrays, and structures. Each type of data requires a different approach when analyzing and solving them.

Greedy algorithms are those that always try to find the shortest path from the root to a given leaf. Shortest-path algorithms are those that always try to find the shortest path between two given points.

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

Understanding an algorithm is essential for understanding how it works and optimizing it for efficiency. Every algorithm has a particular structure, which can be difficult to understand without knowing how it works. Furthermore, many algorithms have time & memory complexity that is important to keep in mind when designing programs using them. By understanding these details, you can optimize your code and make sure it runs as fast as possible on your computer.

You will 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


  • The course covers a good subset of algorithmic 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!)
Free Course:  A Python project with coding framework and unit testing


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

Enroll Now

156 + Free courses Provided by Google Enroll Now
Coursera 1840 + Free Course Enroll Now
1500 + Free Online Courses of Udemy

Leave a Comment