Hi, I'm aware that you may have read the subject line and thought "use git!" - but I think there's a bit more to this question than that...
As part of some small-group programming teaching, I'm trying to show some examples of development of code over time, as the code is gradually refactored, made more generically-applicable and generally improved in quality. I'm trying to work out the best tool or approach to use to show these changes with annotations about why each change was performed. Obviously when teaching face-to-face I can go through this interactively with the students - but some changes to real-world code are too large to do live - and students often seem to find these sorts of discussions a bit overwhelming, and want to refer back to the changes and reasoning later (or they may want to look at other examples I've given them). For context, I'm sometimes doing this with little demonstration scripts that I've written, sometimes with real-world code from other projects, and sometimes with code that some of the students themselves have written. Approaches that I've tried: 1. Making all of the changes to the code and providing a separate document with an ordered list of what I've changed and why. (Simple and low-tech, but often difficult for the students to visualise each change) 2. The same as above but committing between each entry in the list. (Allows them to step through git commits if they want, and to get back to how the code was after each individual change - but many of the students struggle to do this effectively in git) 3. The same as above, but using Github's line comments feature to put comments at specific locations in the code. (Allows annotations at specific locations in the code, but rather clunky to step through the full diff view of commits in order using Github's UI) I suspect any solution will involve some sort of version control system used in some way (although I'm not sure that standard diffs are quite the best way to represent changes for this particular use-case), but possibly with a different interface on it. Is this a problem anyone else has faced in their teaching? Can you suggest any tools or approaches that might make this easier - for both the teacher and students? Thanks, Robin
_______________________________________________ Discuss mailing list Discuss@lists.software-carpentry.org http://lists.software-carpentry.org/listinfo/discuss