Employment · 03
Bay Coding Club
Java and object-oriented programming instruction for USACO preparation, alongside Python lessons and curriculum adapted to students at different levels.
Scrub through an adjacent-pair sort or binary search for the number five. The numbered blocks and teaching board show each step of the same worked example. All portfolio information is available in the page text.
Preparing the exhibitStep 1 of 23 · Compare neighboring values, then swap them if they are out of order.

The work
Helping students understand programming languages
Teaching
From May to August 2025, I taught at Bay Coding Club roughly three times a week, working with multiple students at different levels. My main focus was Java and object-oriented programming for the USA Computing Olympiad (USACO), and I also taught Python to some students.
Understanding the language
I wanted students to understand the language they were working in: how its ideas fit together and how to reason about a problem using those ideas. Completing an exercise was part of the lesson, but understanding why a solution worked was the more important goal.
That understanding also carries across languages. Concepts such as loops, functions, and objects appear in many languages, even when their syntax and behavior differ. Recognizing those shared ideas gives students a starting point for learning another language: they can build on what they already understand while paying attention to what works differently.
Learning through problems
Some students preferred learning through practice problems to a lecture. I adapted the lesson format to that preference, using the problems themselves as a way to work through the material.
When a problem did not have an obvious solution, recognizing patterns became especially important. The aim was to take an idea from one problem and understand how it could apply to a different, related question. I wanted students to carry an approach forward, beyond the particular exercise we had just worked on.
Curriculum and practice
Building curriculum was an important part of the role. I developed homework and practice questions for students with different starting points, connecting the material covered in lessons with opportunities to work through it themselves.
That also meant adjusting the pace during a lesson. If a student demonstrated that they already understood a topic, I could move ahead and adapt the lesson on the fly. Their understanding determined where we spent our time.
Explore the teaching bench
The exhibit lets you follow two worked examples: neighboring values being compared and swapped in a sort, and a binary search narrowing its candidates to find 5. Use Lesson progress to inspect the intermediate steps, or switch examples to start again.