Live Sessions and Courses

Advanced Programming Algorithms

This exclusive advanced algorithm course, recommended for those who have completed C++ training, equips students to confidently tackle Senior-level problems in the CCC (Canadian Computing Contest) using C++.

413,961 already enrolled!

Course Detail

CS200 is an advanced course that explores complex computing algorithms and advanced C++ programming techniques. This course is designed for students who have completed basic programming and C++ courses. Successful completion of this course will equip students with the skills and knowledge necessary to challenge the Canadian Computing Contest (Senior Level) and tackle more advanced programming challenges.

Course Features

  • In-Depth Algorithm Exploration
  • Advanced C++ Proficiency
  • Contest-Style Problem Solving

Oliver Feng

Instructor in Computer Science

Meet Oliver, a seasoned computer science instructor with a profound passion for teaching and extensive professional experience. Oliver combines a deep knowledge of programming with a commitment to nurturing students’ growth, making every class an inspiring journey into the world of computer science.


  • Live Class Sessions With Hands On Coding
  • Full Lifetime Access
  • Access on Mobile and TV
  • Certificate of Completion

Course Content

  • Algorithmic complexity analysis (Big O notation)
  • Common algorithm design techniques (greedy, divide and conquer, dynamic programming)
  • Practical applications of algorithm analysis
  • Advanced data structures like heaps, trees, and graphs
  • Implementing and manipulating complex data structures in C++
  • Graph algorithms (e.g., breadth-first search, depth-first search)
  • Understanding dynamic programming principles
  • Solving optimization problems with dynamic programming
  • Implementing dynamic programming solutions in C++
  • Advanced sorting algorithms (e.g., quicksort, mergesort)
  • Advanced searching algorithms (e.g., binary search, hash tables)
  • Algorithmic trade-offs and selection of appropriate algorithms
  • Divide and conquer algorithms
  • Greedy algorithms and their applications
  • Backtracking and problem-solving techniques
  • Advanced C++ concepts like templates and lambda expressions
  • Exception handling and RAII (Resource Acquisition Is Initialization) principles
  • Smart pointers and resource management
  • Solving contest-style problems similar to the Canadian Computing Contest (Senior Level)
  • Analyzing and optimizing code for efficiency
  • Strategies for tackling challenging algorithmic problems
  • Students work on a significant C++ programming project that incorporates advanced algorithms.
  • Preparation for the Canadian Computing Contest (Senior Level), including a practice contest.
  • Weekly programming assignments and problem sets: 40%
  • Midterm exam: 20%
  • Final project and presentation: 20%
  • Contest-style problem-solving assessment: 20%

“Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

  • Online coding platforms and contest-style problems
  • Canadian Computing Contest (Senior Level) practice materials

10,000 Online Courses

Expert Teachers

Unlimited Access

Start Getting New Knowledge and Experience, Together!

Embrace Full Access Today and Unleash Your Potential for Success at Every Turn.