High School Competition Coding

Grades 9โ€“12
Start Here

New to Competitive Programming?

If you are just getting started with coding, check out our High School Coding Resources for the basics before diving into competitive programming.

Contests

List of Programming Competitions

Once you are comfortable with the basics, explore these programming competitions for high school students, from team-based contests to international olympiads.

American Computer Science League (ACSL)

A long-running computer science competition for teams, combining programming problems with written questions on CS theory and topics.

Learn more โ†’

CodeChef

A competitive programming platform hosting regular online contests and thousands of practice problems.

Learn more โ†’

Codeforces

One of the most popular competitive programming sites, with frequent rated contests and a huge problem archive.

Learn more โ†’

HackerRank

A coding practice and competition platform with challenges across algorithms, data structures, and more.

Learn more โ†’

Stanford ProCo

Stanford University's annual programming contest for high school students, organized by the Stanford Math Organization.

Learn more โ†’

Topcoder Open (TCO)

A global programming tournament featuring algorithm and software development tracks for competitors worldwide.

Learn more โ†’

USA Computing Olympiad (USACO)

The primary competitive programming pathway for US high schoolers, progressing from Bronze to Platinum and on to the IOI.

Learn more โ†’

International Olympiad in Informatics (IOI)

The most prestigious international programming olympiad for high school students from around the world.

Learn more โ†’

alGIRLithm

An algorithmic programming competition aimed at encouraging girls to get involved in computer science.

Learn more โ†’

Harker Programming Invitational

Annual programming contest for high school students hosted by Harker's programming club.

Learn more โ†’

Girls Programming League (GPL)

An algorithmic programming competition aimed at encouraging girls to get involved in computer science.

Learn more โ†’

HP CodeWars

HP's global programming tournament featuring algorithm and software development tracks for competitors worldwide.

Learn more โ†’
Books

Good Books for Competitive Programming

Comprehensive training resources covering algorithms, data structures, and problem-solving techniques for USACO, ICPC, and beyond.

Competition Programming
Introduction to Algorithms, 3rd Edition (CLRS) cover

Introduction to Algorithms, 3rd Edition (CLRS)

Cormen, Leiserson, Rivest & Stein / MIT Press

The definitive algorithms textbook used in top universities worldwide, covering data structures, sorting, graph algorithms, and advanced topics in rigorous depth.

View on Amazon โ†’
Guide to Competitive Programming cover

Guide to Competitive Programming

Antti Laaksonen / Springer

A practical guide to competitive programming techniques, covering algorithms and data structures with contest-focused examples and exercises.

View on Amazon โ†’
The Algorithm Design Manual cover

The Algorithm Design Manual

Steven Skiena / Springer

A highly readable guide to algorithm design and analysis, combining theory with real-world war stories and an extensive catalog of algorithmic problems.

View on Amazon โ†’
Competitive Programming 3 cover

Competitive Programming 3

Steven Halim & Felix Halim

A comprehensive handbook covering the full range of topics found in ICPC and similar contests, with hundreds of categorized practice problems.

View on Amazon โ†’
Algorithms Illuminated: Part 1: The Basics cover

Algorithms Illuminated: Part 1: The Basics

Tim Roughgarden

An accessible introduction to fundamental algorithms including sorting, searching, and divide-and-conquer, based on Stanford's popular algorithms course.

View on Amazon โ†’
Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures cover

Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures

Tim Roughgarden

Covers essential graph algorithms and data structures (BFS, DFS, shortest paths, heaps, and hash tables) with clear intuition and rigorous analysis.

View on Amazon โ†’
Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming cover

Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming

Tim Roughgarden

Focuses on two of the most powerful algorithm design paradigms, greedy strategies and dynamic programming, both critical for competitive programming success.

View on Amazon โ†’
Algorithms Illuminated (Part 4): Algorithms for NP-Hard Problems cover

Algorithms Illuminated (Part 4): Algorithms for NP-Hard Problems

Tim Roughgarden

Explores approximation algorithms, local search, and exact methods for tackling NP-hard problems that appear in advanced competitive programming.

View on Amazon โ†’