Curriculum
Getting Started
Reading and Analyzing USACO Problem
Coding your Algorithm
Debugging
Using a Solution
Basics of Data Structures
Big-O Notation
Time Complexity
Space Complexity
File I/O Review
Number System – Built-in Functions
Bits and Boolean Operators
Modeling and Simulation
Modelling a Dynamic Process
· Meet and Greet
· Mowing the Field
· Cow race
Modelling a static process
· Word Processor
· Herdle
· Crosswords
Modelling a periodic process
· Mixing Milk
· Milk Pails
Simulation acceleration
· All about the base
· Race
· Stuck in a Rut
Searching, Sorting and Optimization
Exhaustive Search
· Ski-course
Search Domain
· Sleeping in Class
· Photoshoot
Domain Enumeration
· Walking Home
Search Acceleration
· Field Reduction
· Marathon
Greedy Algorithms
· Acowdemia
· Reverse Engineering
· Milk Pails
Binary Search
Sorting & Sets
· Selection sorting
· Insertion Sort
· Merge Sort
· Quick Sort
· Understanding Sorting & Maps
· Custom Sorting
Geometry
Single Dimension Lines
· Teleportation
· Angry Cows
· Social Distancing II
Two Line Segments
· Fence Painting
· Lifeguards
· Speeding Ticket
Two Dimension Rectangles
· Bucket Brigade
· Square Pasture
· Blocked Billboard
Recursion
· Perimeter
Other Shapes
· Circular Barns
· Clockwise Fence
· Triangles
String Processing
Strings as Sequence of Characters
· Find the Cow
· Genomics
Strings as words
· Year of the Cow
· Guess Animal
· Moo Language
Strings as Objects
· Moo Operations
· Uddered but not Herd
· Where am I?
Ad-hoc Problems and Techniques
Forward-Backward Technique
· Typo
· Measuring Traffic
Focusing on Significant Events
· Stuck in a Rut
Graphs and Trees
· Understanding Graph Theory
· BFS, DFS
· Shortest Path Algorithms (Dijkstra, Floyd-Warshall)
· Family Tree
Dictionaries and Dynamic Arrays
· Guess the Animal
Lists/Arrays
Array Algorithms – Speeding
Corner Case Arrays – Fence Painting
2D Arrays – Contaminated Milk