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. 

USACO Competition Algoritms Course Enrollment

Please check the schedule to enroll.