Classes

Year-Round Program

The year-round program runs yearly from October to June. Classes are held Saturday afternoon on Zoom and alternate between programming and theory weeks. On programming weeks, there are two classes - Beginner Programming / Python (for students with little or no programming experience) and Advanced Programming / USACO Bronze preparation (for students proficient in Python, Java, or C/C++). On theory weeks there is the ACSL Theory class. All interested students can attend the ACSL theory classes and be registered for a team in the competition regardless of programming group. See below for more information on curriculum and class times.

Beginner Programming (Python)

Saturdays 4-5:30 PM Pacific Time, biweekly (on programming weeks)

Classes focus on building a strong foundation in the Python programming language. Python is one of the most widely used general purpose programming languages, with countless applications across many fields such as data science and machine learning. Example concepts covered include:

However, students do not just learn syntax—one of the main skills developed is problem-solving, through challenging programming problems. Students who complete the beginner classes one year can expect to move up to the intermediate classes the following year.

Advanced Programming (USACO Bronze)

Saturdays 2:30-3:45 PM Pacific Time, biweekly (on programming weeks)

For students experienced in Python, Java, or C/C++. Classes prepare students for the first division (Bronze) of the USA Computing Olympiad, which requires an understanding of basic algorithms and data structures in addition to programming. Example topics include Time Complexity, Graphs, and Greedy Algorithms.

ACSL Theory

Saturdays 4-5:30 PM Pacific Time, biweekly (on theory weeks)

Classes cover computer science theory topics to prepare for the American Computer Science League competition. Examples include Number Systems, Boolean Algebra, and Graph Theory.