## 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.

### 01

#### STL

Introduction to Basic Problem solving, Contest platform, national contests and also a little STL(Standard Template Library) of C++.

### 02

#### Time/Memory Complexity

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?

### 03

#### Sorting Algorithms

Basic Sorting Algorithms : Selection Sort, Bubble Sort, Insertion Sort, Counting Sort etc. Little introduction to Quick Sort, Merge Sort.

### 04

#### Basic Data-Strucutre

Some Basic Data-Structure and their Use. (Stack,Queue, Deque), And also use of C++ Map,Priority Queue,Set.

### 05

#### Recursion

Problem Solving with Recursion and Introduction to Backtracking.

### 06

#### Basic String

Basic String Problems and manipulation of strings in c++.

### 07

#### Greedy Algorithm

Problem Solving with Greedy Algorithms. When to use greedy algorithms and more important when not to use greedy algorithms?

### 08

#### 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?

### 09

#### Basic Graph Theory

Introduction to Basic Graph Theory terminology, Some basic algorithms and theorems. Converting problems into Graph theory problems.

### 10

#### 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).

### 11

#### Bitwise Operator

What is Bitwise Operator? How is the representation of a number in computer? How to manipulate bit of a number in problem solving?

### 12

#### Number Theory(Phase 2)

Introduction to Modular Arithmetic. What is Fermat's Little Theorem? Totient Function? how to calculate BigMod?

### 13

#### Dynamic Programming(Basic)

Introduction to Dynamic Programming, States of DP, Memoization, CoinChange.

### 14

#### Counting Problem Solving

Problem solving using Combinatorics, Math, Counting.