USACO Silver


The United States of America Computer Olympiad (USACO) is a computer programming competition for students in the United States. The USACO offers six competitions per year for students at four difficulties: Bronze, Silver, Gold, and Platinum. Students advance through each level by performing well in their current division and the finalists in the Platinum division are invited to represent the United States at the International Olympiad in Informatics.

This course will prepare students for the USACO Silver contest. The course will provide comprehensive lectures, guidance and practice, so students will develop solid programming skills and expertise in algorithm design. Students that wish to attend this course should have taken the USACO Bronze class or have earned 300+ points in a USACO Bronze contest.

Class Schedule

Prerequisite: Good understanding of HLL (Either Java or C++); Algebra Level Math; Good understanding of Logic.

Two hours and a half lecture per week. (12 weeks in total)

Programming Language foundation, sorting, greedy, stack, queue, Vector(C++)/ ArrayList(Java), linked list, DFS/BFS, BST, Graph, Dijkstra, Bellman-ford, Floyd, *SPFA, MST, DP Intro, strategy of solving USACO bronze problems.

II. Course Objective

Day 1:

a) Brief Intro to USACO Silver.

b) File I/O

c) ArrayList/LinkedList

d) Intro to Stack/Queue

Day 2:

a) Continue Stack/Queue

b) Sorting Algorithm

c) Intro to BST

Day 3:

a) Set and Map

b) Big-O Notation

c) Coordinate Compression

Day 4:

a) Simulation

b) Moving through a line

c) Recursive Intro

Day 5:

a) DFS

b) Extension of DFS

Day 6:

a) BFS

b) Subsets, Combinations, Permutations

Day 7:

a) Intro to Graphs

b) Dijkstra

Day 8:

a) Bellman-Ford

b) Floyd


Day 9:

a) Intro to MST

b) Prim

c) Kruskal

Day 10:

a) Intro to DP

b) LIS / LCS

c) Monotone Queue

Day 11:

a) Continue DP problems

a) Knapsack Questions

Day 12:

a) GCD

b) Prime numbers

c) Exponentiation

The content may vary depending on students’ progress.