top of page

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
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
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
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.
bottom of page