Overview
USACO is one of the most challenging pre-college Computer Science Exams/Contests. The USACO holds about five web-based contests during the academic year. Click here to view more details on the timing and exams.
USACO contests are designed to challenge even the very best students, and it can take a good deal of hard work to excel at them. There are four levels: Bronze, Silver, Gold, and Platinum.
Doing well in USACO online contests serves as a good indicator of algorithmic thinking and problem-solving skills.
USACO contests take place as an online exam with a list of open challenges for computer science students every year, with one contest per month from December to April. Visit USACO's official site for details such as the entrance to the IOI. Students can sign up for any of the exams and are encouraged to take as many as you can every year continuously.
The majority of our Algorithms in C/C++ Level II students with high proficiency advanced to Silver. Many of them also advanced to Gold after they reached Level III with high proficiency.
Prerequisites
This is NOT a class, but a discussion group. In order to be productive, students MUST possess passion in algorithmic programming, and be self-motivated (e.g. not being told by parents.) Thus, inquiry must be received from the students.
Prerequisites:
- Algorithms in C/C++ - II.
- MUST love problem solving and open discussion; AND
- MUST LOVE PROGRAMMING and algorithmic thinking; AND
- MUST be willing to work through algorithmic problems on his/her own time, and collaboratively in the meetings!
If the student has met the prerequisites, please have the student emailing us to acquire for the meeting link.
What if my child has never started with Algorithms in C/C++?
Please
go here to view details.
Best Practice
- Basic rule of thumb - to understand and analyze, NOT by rote memorization and syntax recall.
- Go thru their past exams. Be inquisitive. Try things out!
- When it comes to learning algorithms - implement them.
- Develop a good knowledge of data structures like lists, trees, and graphs
- Don't settle with basic given test cases. Think about exceptions - normal to worst cases. List test cases and test your code.
- ALWAYS - Use functions/methods and minimize repetition of code.
- Create pre-written templates for standard algorithms, necessary headers, functions, etc.
USACO students circle - Practice Group
This is a Students-Driven group which meet once a week to work on USACO problems collaboratively. The meetings are at no cost to SR students. Discussions are led by one of our advanced students. This is NOT a class.
Meeting on Fridays - from 4:30 to 6 PM.
First meeting in 2022-Winter: January 28th.
At the meeting, members will be provided discord channel link for any extended interesting discussion, sharing and communication regarding algorithmic programming topics.
2021-Fall to Current: Group leader: Arjun Subramanian

Arjun attended Storming Robots' CS Track program since his 5th grade, and started to lead SR's USACO Students Circle since his 8th grade. He possesses a deep passion for problem-solving with programming. He has advanced to the USACO Gold division at 8th grade. He has broadened his CS knowledge by self-studying thru Coursera in various topics, including Princeton’s Algorithms (Part
1 and
2),
Managing Big Data with MySQL, and
Algorithms Theory and Machines. He has also taught Python since the 2021 Summer and continues throughout the school year. Some of his other interests include skiing, squash, and play chess.
Here is his GitHub.
2021-Spring: Group leader- Brian Gan.

Brian, a USACO Gold level achiever at 11th grade, has been at SR as both computer science and robotics student since he was in early middle school. He has a deep passion in problem solvings. Brian took the initiative to start this group and hope to further increase the interest and strength in algorithmic programming. ”
Records of Achievements
Advanced to Platnum Division (equivalent to Gold before 2016)
- Daniel Kolano (Gr.11 | Dec/2015)
- Luke Dai (Gr.10 | Feb/2015)
- Ricson Cheng (Gr.11 | Jan/2015)
Advanced to Gold Division
- Arjun Subramanian (Gr. 8 | Dec/2021)
- Brian Gan (Gr.11 | Jan/2021)
- Sophia Chen (Gr.11 | Jan/2021)
- Raj Joshi (Gr.11 | Jan/2020)
- Ethan Wu (Gr.10 | Open/2018)
- Daniel Xue (Gr.9 | Open/2018)
- Sunny Cheng (Gr. 11 | Open/2018)
- Christopher Gu (Gr.9 | Jan/2019)
- Jeffrey Wang (Gr.8 | Open/2018)
- Julian Lee (Gr.9 | Dec/2017)
- Jagdeep Bhatia (Gr.9 | Jan/2017)
- Jeffrey Cheng (Gr.8 | Jan/2017)
- Victor Hu (Gr.9 | Jan/2017)
Advanced to Silver Division
- Eugene Joo(Gr. 11 | Dec/2021)
- Arjun Subramanian (Gr. 7 | Dec/2020)
- Neha Vardhaman (Gr.10 | Feb/2020)
- Jonathon Zhang (Gr.10 | Feb/2020)
- Jeffrey Wang (Gr.8 | Open/2018)
- Shaunak Gaiki (Gr.7 | Feb/2018)
- Justin Hong (Gr. 9 | Jan/2018)
- Andrew Dailey (Gr. 8 | Dec/2017)
- Aaron Fan (Gr. 11 | Dec/2017)
- Deep Patel (Gr. 9) | Dec/2017)
- Henry Lin (Gr. 11 | Dec/2017)
- Nathan Yu (Gr. 12 | Dec/2017)
- Sonia Purohit (Gr. 11 | Dec/2017)
- Andrew Krapivin (Gr.10 | Dec/2016)
- Daniel Carroll (Gr.10 | Feb/2017)
- David Xue (Gr.10 | Jan/2017)
- Ethan Mak (Gr.9 | Dec/2016)
- Jared Cheung (Gr.8 | Feb/2017)
- Nikolaj Folmer (Gr.9 | Jan/2017)
- Shikhar Ahuja (Gr.8 | Jan/2017)
- Shruti Roy (Gr.8 | Dec/2016)
- Jeffrey Wang (Gr.7 | Dec/2016)
- Joseph Chen (Gr.9 | Dec/2015)
- Wilson Liou (Gr.9 | Dec/2015)
- Prateek Humane (Gr.8 | Dec/2015)
- Trey Stevens (Gr.11 | Mar/2015)
- Ethan Wu (Gr.7 | Dec/2014)
Computer Science Track
The IDE we use...
Do note that the MS and Eclipse online links do change from time to time. This is out of our control. Therefore, if the link above does not work, you will need to search them online.
Microsoft Visual Studio Community Version.
Download and install the Desktop Development with C/C++.
OR
An online alternative if you use a Mac computer. The debugging tool is completely online, and not nearly as user friendly and powerful comparing to the Visual studio. Here has a couple of very important resources that you should use:
OR
Eclipse IDE
Read this first before you choose Eclipse
Although Eclipse has far smaller footprint, it is more complicated to set up to use with the debugger. Just like most OpenSource software, you might have to manually modify some system configuration. If you are not familiar with simple windows operations such as changing environment variables, navigating thru the windows file system,
do NOT install Eclipse. You should install MS Visual Studio instead.
Install in the following order: