Indian Computing Olympiad

Training Material

What this page is about

This webpage contains online self-study material for students preparing for the Indian Computing Olympiad. The Computing Olympiad is a test of knowledge and skill in algorithms and programming. Teaching programming is beyond the scope of this training material. The focus is on presenting some basic ideas about algorithms and data structures, primarily through representative problems.

Practice problems

Some of the problems discussed in these notes, and many others that require similar techniques, can be found at the the The IARCS Problems Archive. This is an online resource where you can submit your code and have it automatically evaluated on representative test cases. Other, similar, sites are listed on the left under Online judges.

Reading material

The best place to learn the background material is a good textbook on algorithms.

A good book that combines detailed presentations with many interesting examples is the following.

Algorithm Design, by Jon Kleinberg and Evá Tardos

This next book is probably the most comprehensive textbook available on algorithms, but it can also be a bit heavy to read.

Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein

An easy-to-read and accessible book is the following one. It used to be freely available online, but longer is, unfortunately.

Algorithms, by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani

Latest updates

Introduction, efficiency: video lectures …

Read more

Searching: video lecture …

Read more

Sorting: video lectures on mergesort, quicksort …

Read more

Graph algorithms: video lectures on BFS, DFS, …

Read more

Dynamic programming: video lectures …

Read more

Shortest paths: video lectures …

Read more

Heaps: video lectures …

Read more

Directed acyclic graphs: video lectures …

Read more

Advanced graph algorithms: video lectures on spanning trees, scc's …

Read more

Network flows: video lecture …

Read more