What you will learn
At the end of the course, you should be able to solve Codeforces div2A, B, C problems comfortably. You will also have clear idea of what to learn next to up your level.
Introduction to Basic Problem solving, Contest platform, national contests and also a little STL(Standard Template Library) of C++.
What is Time/Memory Complexity? How does it help to devise our algorithm to solve a problem? How to compute Time/Memory Complexity of an algorithm?
Basic Sorting Algorithms : Selection Sort, Bubble Sort, Insertion Sort, Counting Sort etc. Little introduction to Quick Sort, Merge Sort.
Some Basic Data-Structure and their Use. (Stack,Queue, Deque), And also use of C++ Map,Priority Queue,Set.
Problem Solving with Recursion and Introduction to Backtracking.
Basic String Problems and manipulation of strings in c++.
Problem Solving with Greedy Algorithms. When to use greedy algorithms and more important when not to use greedy algorithms?
Number Theory (Phase 1)
How to calculate GCD efficiently. What is Sieve of Eratosthenes? How to use it to Find Prime Numbers? How to use this technique in Other type of Problems?
Basic Graph Theory
Introduction to Basic Graph Theory terminology, Some basic algorithms and theorems. Converting problems into Graph theory problems.
Shortest Path Algorithms
How to calculate minimum distance between nodes in a graph? or in weighted graphs? Different kind of shortest path algorithms. (BFS/DFS/DIJKSTRA/Bellman-Ford etc).
What is Bitwise Operator? How is the representation of a number in computer? How to manipulate bit of a number in problem solving?
Number Theory(Phase 2)
Introduction to Modular Arithmetic. What is Fermat's Little Theorem? Totient Function? how to calculate BigMod?
Introduction to Dynamic Programming, States of DP, Memoization, CoinChange.
Counting Problem Solving
Problem solving using Combinatorics, Math, Counting.