Competitive Programming Resources


  • Antti Laaksonen:   Guide to Competitive Programming: Learning and Improving Algorithms Through Contests
    • PDF of the book is available from Springer Link from Purdue IP addresses.
    • A free earlier version of the book titled "Competitive Programmer's Handbook" Author's Site
  • Johan Sannemo:   Principles of Algorithmic Problem Solving
  • Steven S Skiena and Miguel A. Revilla: Programming Challenges: The Programming Contest Training Manual
    • PDF of the book is available from Springer Link from Purdue IP addresses.
  • Steven Halim and Felix Halim:   Competitive Programming
  • Other Competitive Programming Courses

  • UIUC: CS 491: Advanced Competitive Programming
  • Reykjavik University: T-414-ÁFLV: A Competitive Programming Course
  • Stanford: CS 97SI: Introduction to Programming Contests
  • CMU: 15-295: Competitive Programming and Problem Solving
  • UT Austin: CS104c: Competitive Programming
  • Stonybrook: CSE 300X - Programming Challenges
  • National University of Singapore: CS3233: Competitive Programming
  • ITMO University (course through EDX): How to Win Coding Competitions: Secrets of Champions
  • Other Online Algorithm Courses

  • Robert Sedgewick and Kevin Wayne (Princeton University): Algorithms, Part I and Algorithms, Part II on Coursera.
    • These courses are free. Assignments are in Java.
  • Tim Roughgarden (Stanford University): Algorithms Specialization on Coursera
    • Assignments in any language. 4 courses. (1) Divide and Conquer, Sorting and Searching, and Randomized Algorithms, (2) Graph Search, Shortest Paths, and Data Structures, (3) Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming, (4)Shortest Paths Revisited, NP-Complete Problems and What To Do About Them.
  • Daniel M Kane, Neil Rhodes, Pavel Pevzner, Michael Levin, Alexander S. Kulikov (UC San Diego): Data Structures and Algorithms Specialization on Coursera.
      This has six courses. (1) Algorithmic Toolbox, (2) Data Structures, (3) Algorithms on Graphs, (4) Algorithms on Strings, (5) Advanced Algorithms and Complexity, (6) Genome Assembly Programming Challenge
  • Web Sites

  • LeetCode
  • Codeforces
  • AtCoder
  • Google Code Jam
  • Google Kick Start
  • Croatian Open Competition in Informatics
  • ICPC Regionals with Problem Sets, Scoreboards, and Solutions.

    Problem submissions for NWERC, NEERC, CERC, and SWERC can be done at ICPC Live Archive