Direct students in an activity to find Treasure Island by sailing from one island node to another to help them conceptualize finite-state machines.
Organize an activity in which one student gives other students precise instructions for how to draw a certain picture to teach students how a computer executes code.
Have some students act as robots while their peers give them instructions to teach students how to interact with and think like machines.
Have students color maps using the fewest number of colors while ensuring that bordering countries are different colors to expose them to optimization problems.
Challenge students to place the fewest number of ice cream vans on a map of a town while maximizing ice cream availability to introduce the brute-force method in an accessible way.
Use Monopoly, explaining that the game is a class, to demonstrate Java classes and objects in a familiar and interactive way.
Ask student teams to design a controller for a coffee machine in Java to practice design modification.
Have students implement simple filters on sound objects so they can parse strings of notes into recognizable melodies to get practice manipulating strings.
As a final project, have students create a generic side-scrolling game in Java so they can creatively showcase their object-oriented programming abilities.
Have students create a program in Python that draws a map of the stars in order to gain practice using dictionaries to manipulate real data.