My son wrote a program for school in grade 8 with Python and PyGame that modeled mutation and natural selection among populations of predators and prey. It was a great learning experience for him, and introduced him to: classes and methods; inheritance; functions; datatypes; modules and namespaces; cartesian geometry; for, if and try blocks; and so on. It was challenging but not impossible for him to understand the stuff. Now he wants to be a video game designer when he grows up.