Skip to content
Competitive Programming

Getting Started with Competitive Programming

This course turns familiar algorithmic ideas into working solutions to contest problems. Each lecture focuses on one or two problems, using them to connect modelling, algorithm design and implementation.

The published sequence begins with ad hoc problems and moves through searching, sorting, greedy algorithms, disjoint-set union, graphs, shortest paths, spanning trees, network flow and dynamic programming. A basic course in data structures and algorithms, together with familiarity with a programming language such as C++ or Python, provides useful preparation.

The archive brings the existing lecture transcripts and slide illustrations alongside the public NPTEL videos. It is useful both for practising algorithmic techniques and for taking a first step toward programming contests.