Back in 2007, I tried to condense everything I had learned from supervising undergraduate thesis projects at the University of Toronto and elsewhere into a short, sharp handbook for students (and their instructors). I called it The Undergraduate Software Project Guide, but didn’t manage to finish it before leaving academia to re-start Software Carpentry.

Recently, though, someone asked for guidance on supervising undergraduate projects, so I dug it out, reformatted it, and stuck it in a GitHub repository. Skimming it, I was struck by how rusty its discussion of tools now seems: there’s no mention of Git or GitHub, it focuses on Java rather than JavaScript, and so on. I’m also embarrassed by its opinion-to-evidence ratio: it makes dozens of definitive pronouncements about what works and what doesn’t, but doesn’t cite studies or data to back them up.

Some parts have held up pretty well, though: how to run a meeting, how to figure out what corners to cut, and much of the other human stuff is as relevant now as it was then. I need to finish revising How to Teach Programming (and Other Things) (comments on the plan for which are still very welcome) before I take on any more projects, but it would be fun to hear what former students who’ve been working for a few years now think of its advice.