I have spent the past week helping students at QTM Math Camp complete their final research projects. I have loved introducing students to math research. I was impressed with some of the project ideas they invented, and with some of the methods they used. (I’ll discuss these in another post.) Some of their methods, though, lacked rigor, and this became my greatest obstacle with helping them complete worthwhile projects.

Of the 30-odd students enrolled in the camp this year, 20+ took a “coding” elective, where they learned how to program in Python. I think this is a valuable skill for any young student, and for young STEM-oriented students in particular. However, many of them began to rely too heavily on coding when working on pure-math research projects.
Let me give an example. One research group (most groups had 3 or 4 members) wanted to study the moduli of the Fibonacci sequence. I thought this was a nice, reasonable project for high school students. One of their results is that every third Fibonacci number is equivalent to 0 mod 2, while the others are 1 mod 2. This first result is simple to prove, but the students were not relying on any mathematical proof. Instead, they wrote a program to find the first 1000 Fibonacci numbers mod 2 and plot the results. Then they noticed the pattern and concluded “I guess every third Fibonacci number is even.”
I had to push them to justify this conclusion mathematically. When the started to look at moduli larger than 2, they again tried to rely solely on the “proof by examples” that their program gave, and I had to intervene yet again. My reasons for why 1000 examples don’t constitute a proof were that
- A pattern can hold for the first 1000 terms then break, and we don’t know which patterns will break and which will hold.
- Noticing a pattern is not very elucidating. It’s much more interesting to know why, e.g., every third Fibonacci number is even. Their computer program cannot explain this.
I think the programs these students (and others in the class) wrote are helpful for noticing patterns, or checking hypotheses. Certainly I’ve written similar programs to aid in my research. Most of them were excited to know Python and wanted to use it immediately, which I understand too. I’m glad though that I got to teach them a little about how pure math research is down.
In my teaching going forward, when demonstrating certain proofs, I will try to emphasize why doing a few (or 1000) examples is not sufficient to prove the statement in general.