Dr Greg Wilson, co-founder of Software Carpentry , gave a wide ranging seminar on the breadth of programming skills, how to teach and learn computing, and the central challenges that would have the biggest impact on all scientists using computers, not just the computing experts.
Starting with how being open correlates with correct use of statistics in research, Greg highlighted the work of Software Carpentry, its range of workshops and the number of learners who have benefitted. In particular, Greg highlighted that the Software Carpentry lessons are a rare example of collaboratively produced learning material, and asked why this isn't the standard. Greg boiled down the teaching techniques learnt through experience with Software Carpentry as:
- Never teach alone (you miss too much)
- Learners use their own machines (so they leave with an environment they can keep using)
- Use live coding (show the mistakes, your thought processes, and improve pacing)
- Use sticky notes (lower the barrier to asking for help, see progress in an instant)
- Collaborative note taking (more accurate, another communication channel)
- Lots of feedback (and take it seriously, immediately)
- Constant iteration (or how do you improve?).
Throughout the seminar Greg emphasized the evidence available for improved teaching methods, particularly peer instruction, pair programming, and media computation. He also noted that many MOOCs ignored the available evidence, and that there were few attempts to enable true online peer interaction for learners. Greg also discussed the importance of evidence for the computing the scientific researchers do, such as the evidence that programming language syntax is important for learning and productivity, and that many popular languages have made bad choices.
Greg finished with some achievable programming projects that would have an immediate impact on science through the use of computing:
- First class support for peer instruction: building a tool to make small-group peer interaction to online environments. With this, peer instruction techniques that are known to be better than lectures can be properly used at scale.
- Diff and merge for types other than plain text (Excel first). Highlighting the importance of the distributed version control model, Greg emphasized the vast majority of scientists who work with, for example, spreadsheets, who can't use it until the tool fits their use case.
- A rational re-design of Git. The evidence shows that people's mental model of Git doesn't match how it actually works. Reducing this gap could lead to fewer mistakes and higher productivity.
- Browsercast is a tool that links a voiceover to an in-browser screencast. This makes video presentations searchable, and much more usable. More work is required in this direction to make videos more than just a recorded lecture.