100% found this document useful (1 vote)
103 views

Handout Competitive Programming

This document outlines the course details for an Introduction to Competitive Programming course. The course aims to teach students how to approach problems, choose optimal data structures and algorithms, and prepare for coding interviews. Over 20 lectures, students will learn about arrays, sorting, two pointers, binary search, linked lists, hashing, stacks, queues, strings, bit manipulation, greedy algorithms, heaps, math, trees, graphs, tries, and dynamic programming. Students will complete homework problems and take 3 online tests. The instructor has experience in competitive programming and founding a programming club.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
103 views

Handout Competitive Programming

This document outlines the course details for an Introduction to Competitive Programming course. The course aims to teach students how to approach problems, choose optimal data structures and algorithms, and prepare for coding interviews. Over 20 lectures, students will learn about arrays, sorting, two pointers, binary search, linked lists, hashing, stacks, queues, strings, bit manipulation, greedy algorithms, heaps, math, trees, graphs, tries, and dynamic programming. Students will complete homework problems and take 3 online tests. The instructor has experience in competitive programming and founding a programming club.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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