CS90: USACO Prep Class
For placement into USA Computing Olympiad Silver
Prerequisites: Instructor approval. CS01b recommended. This competition prep course covers fundamentals of problem-solving used in USA Computing Olympiad contest and approaches to Bronze-level problems.
- Debugging and testing USACO problems with Eclipse
- Data representation
- Array aggregation
- Hash tables and binary search trees
- Comparisons and sorting
- Two dimensional arrays
- Custom data design
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.