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
some approaches.