  To make computational thinking appealing to young learners, initial
programming instruction looks very different now than a decade ago, with
increasing use of graphics and robots both real and virtual. After the first
steps, children want to create interactive programs, and they need a model for
this. State diagrams provide such a model.
  This paper documents the design and implementation of a Model-Driven
Engineering tool, SD Draw, that allows even primary-aged children to draw and
understand state diagrams, and create modifiable app templates in the Elm
programming language using the model-view-update pattern standard in Elm
programs. We have tested this with grade 4 and 5 students. In our initial test,
we discovered that children quickly understand the motivation and use of state
diagrams using this tool, and will independently discover abstract states even
if they are only taught to model using concrete states. To determine whether
this approach is appropriate for children of this age we wanted to know: do
children understand state diagrams, do they understand the role of
reachability, and are they engaged by them? We found that they are able to
translate between different representations of state diagrams, strongly
indicating that they do understand them. We found with confidence p<0.001 that
they do understand reachability by refuting the null hypothesis that they are
creating diagrams randomly. And we found that they were engaged by the concept,
with many students continuing to develop their diagrams on their own time after
school and on the weekend.
