Description
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
c) SPFA
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.