Grasshopper is an Android application which teaches users JavaScript through a series of coding puzzles. Grasshopper is able to make two types of real-time decisions based on the user's current performance: selecting an appropriate piece of feedback when the student is in the middle of solving a puzzle; and selecting the most appropriate next puzzle when the student is done with the current puzzle. For both of these decisions, Grasshopper relies on “student events”: definitions of things that are noteworthy when present in student code. This poster presentation illustrates the student event system, and how it is used to make these decisions, through an example of a hypothetical student going through the process of selecting and solving a single puzzle (“Dash of Random”). It also briefly demonstrates how the events are used to define the space of possible user knowledge states, and how the Dash of Random puzzle fits into that space.