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.