Coaching for the prestigious national high school coding contest
The USA Computing Olympiad
The team of Recursive Dragon specializes in the USA Computing Olympiad (USACO): a prestigious competition for middle and high school programmers. As they rise from the Bronze to Platinum divisions, students master college-level data structures and algorithms, applying them to solve problems. The best contestants are selected to represent the United States at the International Olympiad in Informatics.
Real World Relevance
The USACO is a gateway for many students into the world of competitive programming, algorithms, and code design. From Computer Science courses at university, to coding interviews for top tech companies like Google, Amazon, and Tesla, students will be able to utilize their USACO experience. Along the way, they will pick up important coding skills like debugging habits, time complexity analysis, and much more.
Our Lessons and Customized Syllabus
USACO Lessons at Recursive Dragon are designed around two fundamental tenets.
1. Every student has a different level of coding and problem-solving experience, which steadily improves over time.
2. The only way to develop USACO experience is by consistently solving problems and learning from them.
After assessing the student's current programming skill and USACO experience, our team will develop a customized syllabus based around the student's needs. The student will then work with the same mentor throughout their entire journey, potentially from Bronze all the way up to Platinum. Lessons will consist of a combination of lecturing and active problem solving, where the student and mentor will work together to craft a solution to the USACO problem at hand.
We will also assign readings and homework to keep the student engaged outside the lesson.
An Overview of the Major Algorithms and Data Structures of the USACO
Interactive Problem solving via Coding
At the bronze level, students build on their programming fundamentals, designing relatively simple algorithms to solve various problems. Students are exposed to fundamental techniques like sorting, recursion, and more.
At the silver level, students begin learning real-world data structures and algorithms. Students learn to process data using sets and maps, and efficiently find items via binary search. Also, a particular emphasis is on graph theory: where students learn famous graph algorithms like Depth First Search, Cycle Detection, and so on.
At the gold level, problems often require multiple steps combined with key deductions. Students learn data structures like Fenwick Trees, Disjoin Set Unions, and more, along with classical algorithms like Dijkstra's Algorithm (used in Google Maps), Kruskal's Algorithm, Prim's Algorithm, and many more. Recognizing patterns in the problem and using them to simplify them is also a technique emphasized at the Gold level.
At the platinum level, problems become extremely challenging, as the full array of techniques and algorithms used in competitive programming can appear. The top Platinum contestants each year are selected to participate in an elite training camp, where the top 4 are chosen to represent the United States at the International Olympiad in Informatics.