Anyone can get started on the trains project, make some conjectures, and begin to
develop explanations to back up their conjectures.
To come up with a complete algorithm and prove your results, it helps to know a bit
about recursion and recursive algorithms. Knowledge of combinatorics can be helpful for