Computing classes train students to solve computing problems similar to those that appear on the USACO contest. Solving a computing problem involves finding an efficient algorithm for that problem as well as implementing that algorithm in a programming language (typically C/C++ or Java for USACO). Generally, our classes help motivated students advance much more efficiently than they would through independent study, since we work hard to identify the specific target areas of knowledge that matter most on the competition. We use custom problem sets spanning the entire range of problems found in the USACO competition.
The most effective USACO classes are one-on-one classes. Since the subject is not taught in school, each student is self-taught and different students have different knowledge sets that need to supplemented. Once students take lessons, they make progress at different rates as each student's schedule and interest level permits. It is therefore much more problematic to study computing in a group as it is to take individual lessons. That being said, we do offer group classes for students who already know basic programming and are willing to take on the challenge of keeping up with our relatively fast-paced group classes. The group classes teach a fixed syllabus over 3 sessions: USACO-1 from Aug to October, USACO-2 from November to January, USACO-3 from February to April of each academic year.
Topics are chosen from among the following list at the
instructor's discretion (with the possibility for students to
request a specific topic):
Students may participate in USACO from their home computer. USACO rules and dates can be found on the official USACO site.
Since USACO can be completed in either the Java or
Our advice is simple: APCS should be taken "for its own sake" in the last year of high school if the AP credit is desired. Otherwise, it is always better to invest time directly towards USACO preparation. There is not as much overlap between APCS and USACO as people believe. APCS is very theoretical in nature. It analyzes very simple data structures using quite advanced theoretical concepts such as preconditions, postconditions, invariants, and the like. While students must be able to use these data structures to succeed on USACO, they don't need the theory at all. For USACO, only a working program is required, not a proof or justification of the program's correctness. APCS gives students a good head start for college or allows them to skip an introductory CS course or two. It does not prepare effectively for USACO. Also, for USACO, students will be using the ready-to-use Java collections API. It has implementations of dynamic arrays, dequeues, linked lists, priority queues -- basically everything covered in APCS except students can just use them without knowing the full details of how they work.
Age is not a factor. A student who has a passion for computer programming will be able to make excellent progress even in the middle school age range. The ability to program is, however, a pre-requisite for USACO preparation.
Copyright © 2010-2011 by Goods of the Mind, LLC
Website design by Goods of the Mind, LLC