bestcourses is supported by learners. When you buy through links on our website, we may earn an affiliate commission. Learn more

Competitive Programming

Master the Theory and Application of Algorithms and Data Structures to Excel in Programming Contests

3.7 / 5.0
7262 students11 hours 36 minutes

Created by Blanca Huergo, offered on Udemy

bestcourses score™

Student feedback


To make sure that we score courses properly, we pay a lot of attention to the reviews students leave on courses and how many students are taking a course in the first place. This course has a total of 7262 students which left 67 reviews at an average rating of 3.7, which is average.

Course length


We analyze course length to see if courses cover all important aspects of a topic, taking into account how long the course is compared to the category average. This course has a length of 11 hours 36 minutes, which is pretty short. This might not be a bad thing, but we've found that longer courses are often more detailed & comprehensive. The average course length for this entire category is 4 hours 58 minutes.

Overall score


This course currently has a bestcourses score of 5.7/10, which makes it an average course. Overall, there are probably better courses available for this topic on our platform.


Ready to take your programming skills to the next level? In this course, which will help both novice and advanced programmers alike, you will dominate the algorithms and data structures necessary to do well in contests and to gain a competitive edge over other candidates in software interviews.

There are many tricks which are gained through experience and competitive programmers have a sixth sense when it comes to breaking problems down into the building blocks that make up a solution and which many are reluctant to share. Here I will let you in on the techniques and the applications that are useful for the field, focusing on real problems and how they are solved, while giving you an intuition on what is going on under the hood and why these ideas work.

From dynamic programming to graph algorithms and backtracking, you will get to practise and feel confident about many topics, learning advanced concepts such as union-find disjoint sets, tries and game theory without feeling lost, and to apply new content as soon as you learn it, with over 100 suggested problems, both from past olympiads and online judges and some created by me specifically for this course. All of them come with detailed solutions. With this course, you will be ready to participate in online contests and informatics olympiads, and will have the experience necessary to continue advancing in this field. Are you ready to take this big step in your journey?

What you will learn

  • Competitive Programming
  • Algorithms
  • Data Structures
  • Programming
  • Merge Sort, QuickSort, Count Sort, Bucket Sort
  • Linear Search, Binary Search, QuickSelect, Two Pointer Technique
  • Stacks, Queues, Hash Tables, Hash Sets, Heap-Based Structures, Binary Search Tree-Based Data Structures, Coordinate Compression, Custom Comparators
  • Hash Functions, Collisions, Rabin-Karp, Sliding Window Technique
  • Greedy Algorithms
  • Iterative Complete Search, Backtracking, Permutations, Subsets, Pruning
  • Divide and Conquer, Binary Search the Answer, the Bisection Method
  • Dynamic Programming: Competitive Approach, Top-Down and Bottom-Up DP, Space Optimisation, Prefix Sums, Backtracking to Find Solutions
  • Graph Representation: Adjacency Lists, Adjacency Matrices, Edge Lists, Weighted and Unweighted Graphs
  • Graph Exploration: Breadth-First Search (BFS), Depth-First Search (DFS), Connected Components, Multi-Source BFS
  • Directed Graphs and Cycles: Topological Sort, Strongly Connected Components, BFS for Single-Source Shortest Paths
  • Shortest Paths: Dijkstra, Floyd-Warshall's, Bellman-Ford and Negative-Weight Cycles, Arbitrages and the Logarithm Trick
  • Trees: Special Properties, Faster Shortest Paths, Diameter, Minimum Spanning Trees
  • Union-Find Disjoint Sets: Optimised Implementation, Kruskal's Algorithm, Minimum Spanning Tree Variants
  • Strings: Dynamic Programming on Strings, Longest Common Subsequence, Edit Distance, Longest Palindromic Substring, Tries, Suffix Tries
  • Game Theory: States and Transitions, Minimax for Optimal Game Playing, Dynamic Programming To Recover Optimal Strategies
  • Approaching Interactive Problems


  • Basic C++, such as conditionals, loops, variables or functions. No Object-Oriented Programming (OOP) required.
Udemy logo
Available on


With almost 200,000 courses and close to 50 million students, Udemy is one of the most visited online learning platforms. Popular topics include software development, the digital economy, but also more traditional topics like cooking and music.

Frequently asked questions

  • Price: $94.99
  • Platform: Udemy
  • Language: English
  • 11 hours 36 minutes
Competitive Programming thumbnail

bestcourses score: 5.7/10

There might be better courses available for this topic.