The USA Computing Olympiad (USACO) is the national-level computer science competition. Students begin in the entry-level Bronze division and can progress to the increasingly selective Silver, Gold and Platinum divisions. Top performers are selected from the Platinum division to attend an intensive training camp, where four students are recruited to represent the US in the International Olympiad in Informatics (IOI), the most prestigious international algorithmic programming competition at the high school level.
KTBYTE student Pat Zhang is currently a sophomore at Lexington High School (LHS). In this year’s USACO competition, he is one of the finalists—the top 26 scorers in the nation—selected to attend camp.
Pat started coding in September 2016:
“I went to LexHack (Lexington High School’s hackathon) and met a lot of people who were very experienced at coding. I thought what they were making was really interesting and started devoting a lot of my time to studying CS.”
That same year, he started attending classes at KTBYTE and competing in the USACO. Over the next few years, he took a variety of KTBYTE’s intermediate classes, and almost all of the advanced classes.
Beyond the awards, what are the benefits of doing the USACO?
“Often when you learn algorithms, you learn a standard applications for them. But when you do the USACO, you realize they can be applied in very unique ways, and common day problems can be manipulated or addressed by these algorithms.”
How much did you practice?
“Before taking KTBYTE’s USACO-prep classes, the only practice I did was every Monday at my high school’s Computer Science Club. After I got into the Gold division, I started taking the CS91 course at KTBYTE, where I did practice questions in class and for homework.
I started practicing outside of class after I made Platinum. During the summer, I did the online training pages provided by USACO. Every week over the summer I spent 8-9 hours practicing and learning different algorithms.“
What was most helpful for your prep?
“I think at that time, taking CS92 did get me into Platinum. In class, I learned many new algorithms, and realized I didn’t have to wait until college to learn these things. [The courses] are very friendly to beginners, as opposed to the majority of online resources that to know a huge amount of terminology when you’re just getting started.
Being able to discuss these questions with others who had also done these questions was super helpful. When I was stuck I could get insight into how they went about solving them. When just doing practice from online resources, it’s hard to see how they arrived at their solutions.”
What advice would you give to those struggling with USACO or learning CS?
“I initially felt frustrated at school, surrounded by more experienced coders when I was starting out. It’s a learning curve where once something clicks, you can start to absorb information really fast. And this switch flips once you start really wanting to learn, rather than just achieving a title.“
What part of USACO camp are you most excited about?
“Meeting people with similar interests and a similar level of knowledge about this subject!”