Fall Classes Starting Soon! Use coupon code KTFALL22 by August 20 for 20% off your enrollment.

USACO Silver

CS91

Full Course

$1733 USD

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

Class Package

Virtual Machine (VM)
A Virtual Machine is a remote desktop that allows students to connect to it from anywhere. We provide VMs so that students use it during classes and to work on homework.
Advanced Student Help Hours
Our free advanced Student Help Hours provide live one-on-one support with experienced teaching assistants for students specifically in our higher level courses.
Student Progress Report
The parent account dashboard allows for parents to track their student's progress in the class.

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 office 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, CS01a-CS01b 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 CS91s, 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 CS91s, students will find that most solutions they see are formed by using one or more of the strategies learned in CS91 - the important skills to practice are analysis, brainstorming, planning, and debugging, not memorization of even more algorithms.

Prerequisites:

CS90 and CS90s, or current contest placement in Silver division. CS02a and CS02b are highly recommended as complementary courses before, during, or immediately after CS91 to deepen algorithmic skills.

Related Classes

Sample Projects

This is an example of a project that students create as they help learn specific Java coding curriculum to study for USACO

Flood Fill Algorithm Demo

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

All Class Times

Fall Semester: Once Per Week

20220906CS91Tue0730pm
Tuesday Sept 6 - Jan 24
7:30 PM - 8:30 PM ET
18 out of 18 lessons left
Main Teacher:
Andrew Tourtellot**
$1733/session
New Price With Coupon: $----
Online
20220907CS91Wed0730pm
Wednesday Sept 7 - Jan 25
7:30 PM - 8:30 PM ET
18 out of 18 lessons left
Main Teacher:
Andrew Tourtellot**
$1733/session
New Price With Coupon: $----
Online
20220910CS91Sat0845pm
Saturday Sept 10 - Jan 28
8:45 PM - 9:45 PM ET
18 out of 18 lessons left
Main Teacher:
Andrew Tourtellot**
$1733/session
New Price With Coupon: $----
Online

* Student Help Hours Included. See time on the bottom of website.

** Instructors currently scheduled are not guaranteed and could change at KTBYTE's discretion

No classes in session.
In the meantime, click here to submit your time request.

These times don't work for you?

Your student's availabilities in Eastern Time
Press the green plus button to add more availabilities.
to
Email Address
Phone Number
Student Age
Additional Comment
OR