Spring 2026 · 16-week course
Competitive Programming
A systems-level approach to algorithmic problem solving — search paradigms, data structures, graph theory, and dynamic programming, taught the way contests actually test them.
5
Units
14
Lab Experiments
24
Practice Problems
16
Weeks
3
Credits
Course Overview
This course builds the algorithmic toolkit needed for technical interviews and competitive programming contests alike. Students move from brute-force and search paradigms through bit manipulation, string algorithms, number theory, graph flow, dynamic programming, and computational geometry — each unit anchored in problems pulled from real judge platforms.
COURSE CODE
23CS4121
CREDITS
3
PREREQUISITES
Data Structures, C++ / Java Basics
Course Objectives
- Build fluency in core problem-solving paradigms: search, divide and conquer, greedy, and dynamic programming.
- Develop strong command of string algorithms, trie structures, and hashing techniques.
- Apply number theory and graph flow algorithms to model real constraint problems.
- Practice contest-style problem solving under time and complexity constraints.
Course Outcomes
- Select and justify the right algorithmic paradigm for a given constraint profile.
- Implement and debug graph, DP, and geometry algorithms within contest time limits.
- Analyze time and space complexity to choose between competing solutions.
- Independently rate, solve, and review problems on major judge platforms.
Jump In
Latest Announcements
Upcoming Submissions
Instructor
DP
Mr. N Durga Prasad
Assistant Professor · Department of Computer Science & Engineering
Mr DP teaches Competitive Programming and Advanced Algorithms, with a research focus on graph algorithms and computational geometry.