Handout Competitive Programming

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

 

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 

- Prefix Sum based problems 
- Bucketing based problems 
- Comparator based sorting problems 

- Two pointers  3+ problems 


- Basics of Two pointers 

- Problems involving simultaneous iteration to achieve 
optimality.  
- Binary Search  3+ problems 
- Basics of Binary Search Algorithm 
- Lower, upper bound based problem 

- 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 

- 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 

- 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] 

 
 

You might also like