KTBYTE Computer Science Academy >> Classes >> Advanced >> Cs91 Usaco Prep Gold

CS91: USACO Prep Class

For placement into USA Computing Olympiad Gold

Prerequisites: Instructor approval. Examination Required. CS02 or CS90 recommended. This intensive competition prep course covers algorithms common to the USA Computing Olympiad contest, focusing on achievement at the Bronze and Silver levels.

The USACO Contest

The USA Computing Olympiad, or USACO, is a coding contest that accepts C, C++, Pascal, Java, and Python. There are 4 main levels in the USACO, Bronze, Silver, Gold, and Platinum. The contest is usually 3 to 4 continuous hours, the contest can be taken at anytime, as long as it starts within the within the contest window. When an answer is submitted it is given a certain amount of time to run, based on the programming language and will be marked correct or incorrect (Exceeding the amount of time given is considered incorrect). If a perfect score is acquired a in contest promotions is given. This means that you are given the next level of problems and are given the full block of time. You should work alone, create the code on the spot, and not cheat or aid in another's cheating. Further details are on the USACO website: http://www.usaco.org/index.php?page=instructions


FAQ: Why is this course taught in Java? I thought C++ performs faster? Why not Python?
The USACO rules state that C, C++, and Pascal get 2 seconds to solve a test case, while Java and Python get 4 seconds. Most computing benchmarks place modern Java (JIT compilation) as comparable to C++ performance, and most developers will agree that the performance differences are negligible in most applications. Unfortunately, benchmarks of Python show that it often performs much worse than half the speed of C++. Furthermore, the USACO rules state: Note also that due to the slower speed of a Python program, it may not be possible to solve the largest test cases for some problems even with the inflated time limit given to Python submissions -- consider using a faster language for problems where execution time is critical. Thus, we discourage the use of Python on the competition. Finally, the AP Computer Science exam is done in Java. We believe that algorithms are more important than language syntax. Thus, if students are to learn one language and learn it well, Java is the current best option in the USA.