Viral Education

A new goal for my educational efforts coalesced today: fostering viral education.

I've known for awhile that I could sometimes infect a student; get them working on a problem/project/idea, where they spend lots of time outside of class on this effort. It hadn't occurred to me till today that this notion could be generalized to one student infecting another student.

The culprit catalyst has a two word title: Project Euler.

My beginning C++ students wanted a group project as an end of the year effort. I helped the class self-select into groups of 2-4 students, who collectively would groupwise work through the first 10 project Euler problems, with each student taking the lead on a different problem. Project Euler has 266 simply stated word problems, insidiously requiring a growing mathematical and computer science knowledge and sophistication as the problem numbers increase. I too have ended up infecting myself, setting myself the goal of completing all the problems. I've realized that for the first time in a whole buncha years, I again am working on word problems that are pushing my limits. I love/hate it.

Viral Education is dangerous. Tomorrow, I am turning off all class computers so we can complete our discussion of inheritance, polymorphism, and virtual functions. I was not able to capture focus with any of my standard teaching/theatrical tricks. They know if we can get back on track, I will reward them with Tom Sawyerian delights. What a way to mend and paint educational fences and barriers.

Project Euler is my current best and only recommendation for new and experienced programmers to hone their skills. I have students navigating among C++, Scheme, and pencil/paper to wrest success from the chaos of imprecise reasoning. I am curious what you as a reader think of these problems. As Jimi pondered, "Are you experienced?"

For more complete information about compiler optimizations, see our Optimization Notice.


Another great post Tom.

Reading your article made me think back to a conversation I had recently with a young woman teaching in a local middle school. Her background is in computer science, yet she finds herself teaching curious 13 year old kids in a facility with 1 shared computer. Hardly the place to turn out our next gen of computer scientists.

I wonder how well resources such as Project Euler are known by teachers in like situations, which would allow students to develop the kind of problem solving and computational thinking that will prime them for their next educational steps.

Several of my fellow computer science teachers have pointed me to it over the last couple of years. Immersion in the activities of the day must have inoculated me against the Eulerian fever.

Hopefully any natural immunities I develop will rationally prove to be transcendental.