This class provides online training for the USA Computing Olympiad (USACO) Gold 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 prepare students to score well on USACO's Gold Divison and help them advance to the Platinum Division. This class covers advanced problems, building on algorithms from Bronze and Silver level, but also require knowledge of other advanced programming concepts like dynamic programming. Topics covered include graph search, dynamic programming, and greedy algorithms. An example problem might have the student find the fastest path through all cows, given a list of cows, their coordinates, and their movement patterns.
View Example Problem View USACO FAQ
Instructor approval. Prior completion of USACO Silver or equivalent recommended. [CORE 6a] recommended.
These are examples of projects that students create as they grow their skills in [USACO GOLD]
Graph Search 1
HashSet and TreeSet
Greedy Algorithms, Priority Queues
Union-Find Data Structure and Minimal Spanning Tree
Binary Search; O(log(n)) Algorithms
Graph Search 2
Dynamic Programming 2
Odds and Ends
Binary Index Tree
Proving Correctness (by Contradiction)
Plane Sweep (TreeSets 2)
Greedy Algorithms 2
Dynamic Programing 3
Bonus Content - TBD