Course Handout: First Semester 2019-2020
Course No:
Course Title: Introduction to Competitive Programming
Instructor-in-Charge: Bhavik Dhandhalya [
[email protected]]
Hours:
Room:
1. Objective and scope of the course: The main objective of this course is to teach
everyone how to approach a problem during competitive programming and an
interview. Moreover, How to decide the best data structure with optimal algorithm for
a given problem.
2. Learning Outcome: By the end of the course participants shall be able to identify,
deduce and optimize a wide variety of problems. This course shall help them get a
headstart in competitive programming.
3. Course Material :
- Participants shall be provided with specific set of problems [from codechef,
codeforces, hackerrank, interviewbit, geeksforgeeks] for every domain during
lectures. Mainly 3 problems will be discussed during classes and 3 to 5 will be
given as homework for practice.
4. Course Plan:
Lec Topic(s) HomeWork
- Brief intro about Course course content
- Online judges for practice
1 - How to prepare for coding interviews ?
- Do’s & Don’ts for Competitive programming(CP) &
Interview
2 - STL libraries required for competitive programming
- Arrays & Sorting 5+ problems
- Introduction to Arrays & Sorting algorithms
- Arrangement based problems
3
- Prefix Sum based problems
- Bucketing based problems
- Comparator based sorting problems
- Two pointers 3+ problems
- Basics of Two pointers
4
- Problems involving simultaneous iteration to achieve
optimality.
- Binary Search 3+ problems
- Basics of Binary Search Algorithm
- Lower, upper bound based problem
5
- Binary search on answer based problems
- Binary search on modified sort based problems
- Binary search on matrix based problems
- Linked List 3+ problems
- Implementing Linked List
6
- List two pointer based problems
- Linked list math based problems
- Hashing 5+ problems
- Introduction to different hashing techniques
7 - Hashing + two pointers based problems
- math + hashing based problems
- cloning a data structure based problems
- Stack & Queue 3+ problems
8 - Introduction to Stack & Queue data structure
- Introduction to Double ended Queue data structure
- String 3+ problems
- Basics of String
- validation of string based problem
9
- constructive algorithm/hard implementation based
problems
- KMP string matching based problem
- Bit Manipulation 2+ problems
- Basic bit operations
10
- XOR based problems
- bit masking technique based problems
- Greedy 4+ problems
11
- Introduction to greedy algorithms
- Heap 3+ problems
12 - Introduction to heap data structure
- Min heap and Max heap based problems
- Math 4+ problems
- GCD based problems
13 - Fast Exponentiation based problems
- Permutation, Combination, Number theory based
problems
- Trees 10+ problems
- Introduction to Trees and their coding representations
14-15 - Tree construction based problems
- Tree Search based problems
- Traversal based problems
16-17 - Graphs 5+ problems
- Introduction to graphs and their coding representations
- BFS, DFS based problems
- Cycle Detection based problems
- Connected Components based problems
- Strongly Connected Components based problems
- Trie 2+ problems
18 - Introduction to trie data structure
- Construction of Trie data structure
- Dynamic Programming 10+ problems
- Introduction to Dynamic Programming
- Simple 1D DP problems
19-20
- matrix based DP problems
- 2D DP problems
- Classical DP on Tree problem
Component Duration Type Max Marks Date
Homework - Open Book 40 -
Online Test - 1 2 Hr Closed Book 20 -
Online Test - 2 2 Hr Closed Book 20 -
Online Test - 3 2 Hr Closed Book 20 -
5. Evaluation Scheme: To be discussed in the class
6. Make-up policy: Only in genuine cases, on a case-by-case basis, Make-ups shall
be allowed.
7. Instructor’s Profile:
● I secured 64th rank in ACM ICPC 2016 Kolkata regional onsite after
competing with 900+ teams.
● I also participated in ACM ICPC 2015 Amritapuri regional onsite after
competing with 1500+ teams.
● 4 year of competitive programming experience
● I was a founder of “The programming Club” in my B.Tech and trained my
juniors for programming.
Instructor-in-Charge:
Bhavik Dhandhalya
Mob: 7984291448
[email protected]