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

Extensive practice with their solutions to sharpen your problem-solving skills and smooth interviews preparations

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

What you’ll learn

  • Extensive practice to sharpen problem-solving and algorthmic skills.
  • Expose yourself to many recursive-based techniques.
  • After the course, a smooth experience to prepare for coding interviews.
  • Short and well written codes.

Course Content

  • Getting Started –> 4 lectures • 37min.
  • Online Judges –> 2 lectures • 13min.
  • Recursion: Basics Review –> 17 lectures • 1hr 33min.
  • Complexity Analysis 1 –> 5 lectures • 46min.
  • Sorting: Insertion, Selection and Count –> 18 lectures • 2hr 25min.
  • Searching: Binary Search –> 21 lectures • 2hr 41min.
  • Graph Representation –> 13 lectures • 2hr 10min.
  • Graph Depth First Search –> 4 lectures • 45min.

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


  • Strong programming background.
  • Solving several practice during a programming course.
  • STL, especially vector class.
  • Optional: Do programming projects.
  • Highly recommended: Attended a strong data structure course first.

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


Content of this part

  • Online Judges and How to use
  • Recursion: Basics Review
  • Complexity Analysis (Part 1)
  • Sorting: Insertion, Selection and Count
  • Searching: Binary Search (Basic and generalised forms)
  • Graph Representation
  • Graph DFS
  • Graph Topological Ordor
  • Graph BFS
  • Graph Union-Find Data Structure
  • Extensive practice on these subjects


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