A. Prerequisites

Getting Started with Competitive Programming

(an NPTEL course)

Module A. Pre-Requisites

Theoretical Prerequisites

You want to be familiar with how to analyze an algorithm for it’s running time. You can read up about this here. A related topic, and also important topic to be familiar with, is asymptotic notation, which you can find out more about here.

Getting Setup

You would also want to setup your coding environment before getting started. If you don’t already use an IDE, I recommend starting with VSCode.

For a slightly more advanced (but also more convenient in the long run) VSCode setup, you can check this out.

You can read about setting up a basic starter file for reading I/O in various languages here.

Contest Platforms

Finally, please create your own accounts on the following websites:

  1. Codechef
  2. Codeforces
  3. AtCoder
  4. UVA Online Judge
  5. Google Coding Contests (For contests by Google, having a gmail account is enough to login and use the platform.)

For Google Code Jam, having a gmail account is enough to login and use the platform.

Each platform will have its own interface and guidelines for submitting solutions. Please get familiar with the layout and the UI of the websites above, since we will keep coming back to them both in the lectures as well as in the (optional) practice problems.


One of the videos in this week (specifically, Engineering Reversort) uses recursion. Familiarity with recursion is helpful for this module. You can find out more here.

super-embed:<div id="hyvor-talk-view"></div><script async defer type="text/javascript" src="//talk.hyvor.com/web-api/embed.js"></script>