white gradient.png

USACO Competition Algorithms Course

USACO (United States of America Computing Olympiad) is a computer programming competition where students solve a set of logical or mathematical puzzles using a programming language such as Java, C++, or Python. This course is designed for advanced coders who want to compete in programming competitions such as USACO, HSPC, Google Code Jam, and more. 

Grade 8-12


Java or Python knowledge is required


Subcourses & Curriculum



Bronze Algorithms

In this course, students learn and practice the algorithms and data structures essential to solving problems and utilizing them in competitive programming at the Bronze level.
  • Intro to competitive programming and preparations
  • Array & 2D Array & Array List
  • Hash Table
  • Simulation
  • Complete Search
  • Optimizing
  • Recursion Basics & Practice


Silver Algorithms

This course primarily teaches more complicated algorithms that are needed to succeed in USACO Silver. 
  • Bronze Review
  • Complexity
  • Binary Search
  • Data Structures
  • Stacks and Queues
  • Dynamic Programming
  • Flood Fill
  • Trees
  • Hashing


Gold Algorithms

This course primarily teaches advanced graph algorithms and dynamic programming that are needed for USACO Gold. 
  • Introduction to USACO Gold
  • Topological Sort
  • Knapsack
  • Segment Tree
  • Lazy Propagation
  • Fenwick Tree (BIT)
  • Minimum Spanning Tree
  • Floyd-Warshall
  • Disjoin Set (Union Find)
  • Line Intersection
  • Point in Polygon

Learning Outcome

Upon completion, students should be able to get ready to participate in the USACO competitions.