Enroll now and take 20% off your spring course using coupon KTSPRING25

USACO Silver

[USACO SILVER 1]

Full Course

$1733 USD
Before any discounts or coupons
for 18 hours and additional live student help hours

Class Description:

This class provides online training for the USA Computing Olympiad (USACO) Silver Division, a programming competition looked at by colleges and used as a qualifier for the International Olympiad in Informatics (IOI). Classes will be held online or in-person, and during each lesson, students will work on challenging sample problems with the help of their instructor. Then, students attempt a problem for homework on the same topic covered in class and can receive help during student help hours.


The goal of this course is to introduce students to topics and strategies essential to scoring well in USACO's Silver Division, aiming for promotion to Gold Division. The work is mostly in the format of selected USACO (USA Computing Olympiad) problems from past contests. They require good usage of concepts from the Bronze Division in combination with more advanced algorithms and higher overall complexity. Algorithms covered include coordinate compression, cycle detection, sliding window, binary search, flood fill, depth-first search, and breadth-first search (DFS/BFS), and recursive generation of permutations/combinations. Essential data structures and supporting concepts like maps, priority queues, and Comparators are also covered, and there is a continuous discussion of runtime efficiency.


An example Silver problem might require the student's code to track which cows in a stampede are visible to a farmer based on data about their relative positions and movement speed, with a need to efficiently track which cows are visible at different times.


This class is taught in Java, although all the algorithms can be used with the other recommended language for USACO (C++) without much trouble. KTBYTE audio lectures can give students a good crash course in Java at a self-guided pace if they are already at an equivalent level in C++ or Python. Consider our core curriculum, [CORE 5a]-[CORE 5b] for a live-classroom format introduction!


Note that USACO difficulty changes over time, and many past problems are easier than current ones in the same division. The goal of this class is to build a solid foundation for tackling Silver problems, but there are many topics to learn, and mastery takes much more time. Students should expect to do extensive additional practice after taking this class before they'll feel comfortable tackling many current in-contest problems on their own. We recommend most students follow up this class with [USACO SILVER 2] to continue working through intermediate-to-hard problems in this division with our experienced instructor. Whether self studying or taking [USACO SILVER 2], students will find that most solutions they see are formed by using one or more of the strategies learned in [USACO SILVER 1] - the important skills to practice are analysis, brainstorming, planning, and debugging, not memorization of even more algorithms.

Prerequisites:

[USACO BRONZE 2], or current contest placement in Silver division. [CORE 6a] and [CORE 6b] are highly recommended as complementary courses before, during, or immediately after [USACO SILVER 1] to deepen algorithmic skills.

Syllabus:

USACO format, Arrays warm-up

Simulations

Simulation (Cycle Detection) - blink

Prefix Sums

Coordinate Compression

Sliding Window

Sortable Classes

Binary Search

Advanced use of Data Structures

Reframing and Linear Sweep

Flood Fill

2d Array Problems

Combinatorics

Stack Recursion

Prefix sum review, implementation practice

2d movement, implementation practice

Homework wrap-up, Recursive analysis

Grand Finale - Farmer John Has No Large Brown Cow