is to make scientists more productive, and their work more reliable, by teaching them basic computing skills. ...it runs short, intensive workshops that cover program design, version control, testing, and task automation.
Let the computer do the work. 3. Make incremental changes. 4. Don't repeat yourself (or others). 5. Plan for mistakes. (testing) 6. Optimize software only after it works correctly. 7. Document design and purpose, not mechanics. 8. Collaborate.
Eng 1 week courses at Los Alamos National Laboratory 9 iterations from 1998 to 2002 Intensive weeklong courses are easy to schedule..., but by the last two days, attendees’ brains are full and learning drops off significantly. Textbook software engineering is not the right thing to teach most scientists.
Science and the physical and life sciences Most Computer Science faculty believe this basic material is too easy to deserve a graduate credit. However, other departments... In the absence of an institutional mechanism to offer credit courses at some interdepartmental level, this course ... fell between two stools.
not contribute updates or new material beyond an occasional bug report. This is partly because educators’ preferred file formats (Word, PowerPoint, and PDF) can’t be handled gracefully by existing version control systems, but more importantly, there simply isn’t a “culture of contribution” in education for projects like Software Carpentry to build on.
120 short video lessons changing landscape: open access, crowd sourcing “If I wanted to be a programmer instead of a chemist, I would have chosen computer science as my major instead of chemistry” Most importantly, the MOOC format didn’t work: only 5–10% of those who started with us completed the course.
The Hacker Within model) cut OOP, XML, GUI, design patterns, soft dev life-cycles,... shorter course == more participants == more instructors our real aim isn’t to teach Python, Git, or any other specific tool: it’s to teach computational competence.
workshop free, but small registration fee ($20-40) helps to reduce no-show rate live coding instead of slides (ipython notebook) open lessons content (CC-BY) open everything (grant proposals, feedback from participants) dogfooding (github, documentation tools)
course for wouldbe instructors. It takes 2–4 hours/week of their time for 12–14 weeks, and introduces them to the basics of educational psychology, instructional design, ... It is necessarily very shallow, but most participants report that they find the material interesting as well as useful.