FAQs

What language do you recommend for students in the Bronze level?

The 3 main choices are Python, Java, and C++. In almost all cases, I recommend Java. C++ is too advanced. It contains pitfalls and “gotchas” that are counterproductive at the Bronze and Silver levels. While Python is a good language, it doesn’t provide adequate preparation for Java and C++ when the time comes.

How do I know if my student is ready for USACO study?

First, your student must have mastery of at least 1 language (I can evaluate this at our first session). Second, your student must show some aptitude at creative, outside-the-box thinking. They don’t have to put it all together in the beginning, but they do need some natural ability to work with difficult problems that require creative solutions.

What benefits will my student get from USACO study?

They will learn an enormous amount of computer science and eventually find college CS classes to be easy. They will have the satisfaction of seeing their score improve over time. Brian Dean, the USACO organizer, has said that colleges respond positively to USACO participation on applications.

Will my student qualify for Silver?

The short answer is that I can’t promise that your student will qualify for Silver. The Bronze test has gotten exponentially harder in recent years, so it takes real dedication and natural talent to get through it and qualify for Silver. It may take a few years of study to reach that point. I want to be completely up-front and honest with you: Some students may never reach that point, if they don’t have enough time to dedicate, if they don’t take it seriously, or if they don’t have the talent.

What I can promise is that I will never give up on your student. I will keep working with them and keep making the best progress we can.