As educators, we are often faced with the paradox of having to create simplified examples in order to demonstrate complicated ideas. The trick is in finding the right kinds of simplifications---ones that will scale up to the full range of possible complexities we eventually would like our students to tackle. In this paper, we argue that low-cost robots have been a useful first step, but are now becoming a dead-end because they do not allow our students to explore more sophisticated robotics methods. We suggest that it is time to shift our focus from low-cost robots to creating software tools with the right kinds of abstractions that will make it easier for our students to learn the fundamental issues relevant to robot programming. We describe a programming framework called Pyro which provides a set of abstractions that allows students to write platform-independent robot programs.