**Class Outline **

Students may expect to improve their coding and algorithm skills for USACO by learning the essential concepts from the classes and coding practice. The class will use 3 websites for their coding practice:

On each of these 3 websites, a user can turn in the code for a problem and see the test results immediately. They are free to use.

In every class, 3-5 coding problems are assigned from these 3 websites for students to do as homework, and at the beginning of the next class, we fully discuss these homework problems. Students solve and do the coding problems at home. They might get stuck at some points. In the next class, students will be walked through tackling the difficult parts, review, and overcome challenges. Students will learn essential concepts and skills which match the standards for USACO Bronze. Students will be guided in how to analyze the problems by using simple test cases, learn how to think about valid approaches to solve them, and how to do coding effectively. Students will be learning mostly through a hands-on approach.

At the current stage, the Java version used in USACO is Java 8. We will help students learn more about available data structures in Java 8 library and their usage to solve USACO Bronze coding problems effectively.

### Class Syllabus

Class 1

- Open accounts on 3 websites
- To solve a few problems on each of 3 websites
- Input/output, ArrayList
- Sort, Arrays class, Comparable
- Time analysis, Big O, HashMap, HashSet

Class 2

- To fully discuss coding problems as homework in class 1
- Graph coloring, Number of operations to meet runtime limit in USACO
- Queue, Deque (Interface), LinkedList (class)
- String

Class 3

- To fully discuss coding problems as homework in class 2
- Recursive, Backtracking
- Geometry, Rectangle
- Comprehension of the problem

Class 4

- To fully discuss coding problems as homework in class 3
- To simplify the problem
- Tree, Common ancestor, Number of operations
- TreeMap, TreeSet, Big O

Class 5

- To fully discuss coding problems as homework in class 4
- Greedy algorithm
- Comprehension, Logic, Array
- Array, Go backward in time

Class 6

- To fully discuss coding problems as homework in class 5
- LinkedHashMap, Stack
- Change monitoring
- Intervals

Class 7

- To fully discuss coding problems as homework in class 6
- Class, Objects, Array of objects, Interface
- Tree (graph) coloring: D+1 colors, D = max degree
- 2D Matrix

Class 8

- To fully discuss coding problems as homework in class 7
- Number, Absolute value
- Comprehension, Simulation
- Sort, Binary search, Invariant condition

Class 9

- To fully discuss coding problems as homework in class 8
- Graph coloring, Number of operations
- Tree ancestors
- Problem reduction

Class 10

- To fully discuss coding problems as homework in class 9
- Tree: connected graph with no cycle
- 2D geometry, To simplify the problem, Route
- Comprehensive review

### Intensive USACO Bronze

**Class Information**

Subject |
Period |
5 Meetings |
Time |
Time Span |

USACO Bronze | 2/20/2022 – 3/20/2020 | Sundays | 4:00 – 6:30 (2.5 hours/class) | 5 Classes |

** **** **

**Class Outline**

Students will greatly improve their coding and algorithm level for USACO by learning the essential concepts from the classes and through guided coding practice. We plan to use 2 websites for their coding practice.

From these 2 websites in analysis mode, a user can turn in the code for a problem and see the test results. These websites are free of charge.

Students will learn essential algorithms and skills which match USACO Bronze. In this class, students will be guided in analyzing problems through useful test cases, how to think about valid approaches to solve challenging problems, and how to code effectively. A majority of this class involves hands-on learning.

For weekly homework, students can expect 3-5 coding problems from these 3 websites. At the beginning of the next class, we discuss these homework problems together. If students get stuck at some point when doing coding homework the teacher will help them to tackle the difficult parts, review, and overcome difficulties.

The USACO is trending more and more difficult each year. At SpringLight’s USACO class, students will learn more about algorithms, coding skills, and thinking processes that will help to solve USACO Bronze challenging problems effectively.

### Class Syllabus

**Class 1 **

- Time complexity and analysis
- Simulation, sorting, time events
- Classification
- Inequality
- Linked list

**Class 2 **

- Geometry, rectangle
- Symmetry
- Recursion
- 2D Matrix
- Memorization

**Class 3 **

- Simulation, recursion
- Graph, cycle
- Graph coloring
- Greedy
- TreeSet, TreeMap, HashSet, HashMap

**Class 4 **

- Inequality, logic
- Cycle, swap
- Pigeon-hole principle
- Classification, simulation
- Time sequence, TreeSet

**Class 5 **

- Sorting, Two pointers
- Time events, intervals
- Tree
- Matrix, order
- Greedy, classification