Massachusetts families: use our coupon code KTWEEKLONG20 by March 30 to get 20% off an in-person camp this April or Summer Break!

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 through a computer with a teacher online via live video conference, and during each lesson students will work on challenging sample problems with the help of a teacher. Then, students attempt a problem set for homework on the same topic covered in class, and are able to ask a TA for 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 Divison, 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 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 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, including the fact that some cows block vision of others.
This class is taught in Java, although all the algorithms can be translated to the other recommended language for USACO, C++, without much trouble. Java is used worldwide, and learned by most students in North America that study advanced CS in high school. Students will be expected to work in Java for the class. 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 the KTBYTE core curriculum, [CORE 5a]-[CORE 5b] for a live-classroom format introduction!
This course's problems range in difficulty from relatively simple - chosen to introduce relevant algorithms without getting sidetracked by too many extraneous details - to intermediate - requiring more creative thinking to form an efficient strategy. 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 STUDY], a study group-style class that focuses on in-depth practice working through intermediate-to-hard problems, led by a teacher. Whether self studying or taking [USACO SILVER STUDY], students will find that most solutions they see are formed by using one or more of the strategies learned in [USACO SILVER] - the important skills to practice are analysis, brainstorming, planning, and debugging, not memorization of even more algorithms.

Prerequisites:

[USACO BRONZE] and [USACO BRONZE STUDY], 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] to deepen algorithmic skills.

Related Classes

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