Back close

Course Detail

Course Name Competitive Programming
Course Code 23CSE453
Program B. Tech. in Computer Science and Engineering (CSE)
Credits 3
Campus Amritapuri ,Coimbatore,Bengaluru, Amaravati, Chennai

Syllabus

Unit I

Introduction, Tips to be competitive, Problems on linear & non-linear data structures using STL/Collections/libraries, Problems on algorithmic paradigms – divide-and-conquer, greedy, dynamic programming.

Unit II

Implementation and application of advanced data structures – segment tree, Fenwick tree, suffix tree, suffix array, decision tree. Java BigInteger, Combinatorics – Fibonacci numbers, Binomial coefficients, Catalan numbers, Number theory – prime numbers, GCD, LCM, finding prime factors with optimal trial divisions, working with prime factors, extended Euclid.

Unit III

Computational geometry – Polygon representation, Plane Sweep Technique, Convex Hull and Algorithm, Duality Transform and Application- checking if polygon is convex, a point is in polygon, cutting polygon with straight line, Point Location and Triangulation, Voronoi diagrams and Delaunay triangulation.

Objectives and Outcomes

Course Objectives

  • This is an undergraduate-level course that aims to improve the problem-solving and programming skill of the students.
  • The pre-requisite for this course is proficiency in at least one programming language, knowledge of the libraries such as C++ STL or Collections, completed courses on Data Structures and Design and Analysis of Algorithms.
  • The students will solve problems on online platforms based on their learning from data structures and algorithm courses. They will be competing in the live contests to improve their competitiveness in coding.

Course Outcomes

CO1: Use of programming libraries such as C++ STL or Java Collections for problem-solving

CO2: Apply algorithmic design strategies to solve problems from prominent online judge platforms

CO3: Learn advanced data structures and their applications to problem solving.

CO4: Apply algorithm analysis and optimization techniques to improve the efficiency of algorithms

CO5: Learn and apply the skills learned in the course to effectively tackle competitive-level contests.

CO-PO Mapping

 PO/PSO

PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9

PO10

PO11

PO12

PSO1

PSO2

CO

CO1

1

 –

 –

3

– 

   

– 

3

3

2

CO2

1

– 

 –

3

 –

   

 –

3

 –

– 

3

2

CO3

2

3

2

– 

3

 –

   

 –

3

– 

– 

3

2

CO4

1

2

2

– 

3

 –

   

 –

3

 2

 –

3

2

CO5

2

3

2

 –

3

 –

   

 –

3

 2

 –

3

2

Evaluation Pattern

Evaluation Pattern: 70:30

Assessment

Internal

End Semester

MidTerm Exam

20

 

Continuous Assessment – Theory (*CAT)

10

 

Continuous Assessment – Lab (*CAL)

40

 

**End Semester

 

30 (50 Marks; 2 hours exam)

*CAT – Can be Quizzes, Assignments, and Reports

*CAL – Can be Lab Assessments, Project, and Report

**End Semester can be theory examination/ lab-based examination/ project presentation

Text Books / References

Textbook(s)

Steven Halim and Felix Halim, “Competitive Programming 3 – The New Lower Bound of Programming Contests : Handbook for ACM ICPC and IOI Contestants”, Edition 3, 2013.

Reference(s)

Antti Laaksone , “Competitive Programmer’s Handbook” , 2018.

Bjarne Stroustrup, “C++ Programming Language”, Fourth Edition,2022.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, “Introduction to Algorithms”, Fourth Edition.

Ivor Horton, “Using the C++ Standard Template Libraries”, 2015 Edition.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now