I have a new suggestion. A guess the number game 1-100 in 7 tries or less. It doesn’t sound smart at first because its just guessing. However, if you always guess in the middle of the upper and lower bound, then you eliminate 50% of the possibilities. It's a pretty neat trick to get kids to think about how to approach a problem that seems random in a structured way.
Agreed! As an 8th grader I felt very smart finding the minimum number of steps required to solve this binary search using logarithms. It is also a great intro to algorithmic complexity.
Path finding in a 16x16 grid is also another great demonstration of BFS and DFS.
Using derivatives to make a targeting system and animating the result is another cool mathematical experiment.