USA Computing Olympiads
A successful college admission demands a strong academic background as well as enriching and differentiating extracurricular activities. This is all the more true for top colleges. USACO is one of the most prestigous ways to create competitive advantage when applying for highly selective colleges.
Additionally, the preparation for these contests inherently develop problem solving ability that ensures sucess in colleges and competitive careers. Most parents rightfully consider the participation in the preparation activities as a long term investment in their child’s education.
There are no prizes in the end, but you will receive recognition by advancing through the levels offered. Your name will be listed in the contest results. Participating and advancing even one division is impressive on college applications and resumes. If you get to the top levels your academic resume will be shining. To sum if you are interested in computer science, USACO training is certainly one of the best things you can try.
USACO contests are taken online. Anyone can try out the contest's entry level exam: the Bronze level contest. Upper levels require that you pass the prior level. Register for a free student account at usaco.org to participate in the contests. There is no separate registration for each contest. Four times a year once in each month (December, January, February, and March) USACO activates its contest system from Friday through Monday. Participants login to their account during this period and take their exam individually at home.
There are four levels: Bronze, Silver, Gold, and Platinum. Promotion from one level to the next is automatic if you score 100% in a given contest. In that case, you can try the next level during the same weekend without waiting the next month. A regular promotion takes place for high scores – typically about 75%. You can try a level only once during the smae month. However, you can take it as many times until you are promoted without any penalty.
Each level increasingly requires more theoretical knowledge and coding skills than the prior one. Roughly speaking each level requires twice as much time to train and pass as the prior one. This, of course, all depends on how much time you devote to learning and practicing. For top levels, you need to train everyday for a couple of hours for about a year in order to succeed.
Obviously, the first step is to learn a programming language. The most popular choices are C++ and Java. Java is the programming language taught in AP Computer Science. Most top level performers prefer C++. The second step is learning the theory related to the respective USACO level you are competing in. Check out the curriculum section of our course pages for details. For example, at Bronze level arrays, functions, and primitive sorting may be enough. However, at the Silver level, you need to know different data structures, several sorting and searching algorithms, and more. The third step is practice. Learning algorithms' mechanics does not directly translate to using them in the actual USACO contests. Just like there are thousands of way to ask questions about a triangle, there are so many ways these algorithms may be put in use in the contests. That's why we have the Problem Solving classes as part of the core level USACO Training program.
There is no published curriculum for the respective levels. However, aside from many sites where you can learn general programming concepts, USACO itself offers training through its training gateway. A more recent collection of free resources is put together by former national team members at this website. USACO contest website is also always open for participants to view and try out the past contest problems.
Star League offers free USACO focused C++ course for new learners. You can sign up by contacting us here.
In a nutshell to save time and prepare for the contest in confidence. Programming is so broad that without an expert guidance one can be lost very easily and may not manage to pass the simplest level. Our classes is focused at the appropriate level and guides students from novice to proficient level through skilled and knowledgable instructors and carefully designed course sequences. Students who successfully complete the class work and recommended practice activities are almost always promoted.