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
[email protected]
http://lists.software-carpentry.org/listinfo/discuss