USACO Training
USA Computing Olympiad Bronze and Silver
Competitive programming is about challenging students’ problem solving skills – using knowledge they have learned in classes to solve fun and challenging problems. USACO problems, even at the Bronze level, is substantially harder than the problems students encounter in regular or even AP CS class. Beyond preparing students for competitions, our ultimate goal is to help them to become better computational thinkers and algorithmic problem solvers!
At the core of competitive programming is algorithmic problem solving. While many other training programs and classes focus on the coding aspects (languages and techniques), we believe that problem solving (and the underlying computational thinking) skills is the key. We will focus on problem formulation and algorithm development. More specifically, we will focus on developing students’ ability to
Visualize (conceptualize) – space, time (process), and relationships
Think at multiple levels of abstraction
Identify patterns and generalize
The Bronze level courses are designed to prepare students for the USACO bronze level contest. The focus of the bronze level training is to help students improve their algorithmic problem solving skills - how to formulate a problem and "translate" their solution into an algorithm that can be implemented (i.e. teaching the computer). We will also focus on improving students programming fluency. Bronze level training consists of four courses which are built on-top of each other with increasing level of difficulty. These courses assume students have good understanding of basic data structures such as list (array) and control flows - conditionals and loops.
The Silver level courses are designed to prepare students for the Silver level contest. We will cover more advanced data structures (such as Graph, Tree, Priority Queue, Hash maps) and various algorithms such as DFS/BFS, Prefix Sum, Sliding Window, Binary Search, Greedy, Sweep-line in the context of solving USACO problems. The Silver level training also consists of four courses. The curriculum is spiral in the sense that each course covers all the basic algorithms and data structures, but the focus is on how to use these algorithms to solve increasing more challenging problems.