Contributing
Software Carpentry is an open source/open license project. Like all such projects, it needs your help to grow, and you can contribute in many ways, large and small.
Report Bugs
If you see a mistake in our lectures or example programs, please add a comment to the appropriate page, or mail us. We fix things as quickly as we can, though as we have noted elsewhere, fixing screencasts takes much longer than just fixing slides.
Suggest Improvements
Do you think one of our episodes is too long? Do some move too quickly or too slowly, or give too much or too little detail? Did we miss anything important, or include things you’re sure you’ll never need? If so, please let us know. When doing so, please tell us a bit about your background and needs so that we know how best to interpret your feedback.
Get What We’ve Got
All of our slides, notes, and example programs are in our Subversion repository at http://svn.software-carpentry.org/swc. We do not yet have an easy-to-download archive of our audio and video recordings, or of the Camtasia Studio projects we used to create them—if you would like to help create this, please get in touch.
Contribute Content
This is what Software Carpentry needs most, and the good news is, it’s easier than you think, because we will help you turn what you have into a screencast that we can use. Suppose you have a small program that illustrates an important idea: something like our recommendation engine, nanotech warehouse, phylogenetic tree, or star counting examples. The only other thing we need is a few minutes’ worth of slides and an audio recording of you going through them. The slides and recording don’t have to be perfect: we can reformat the former, and edit out any mistakes or retakes in the latter. We will put the slides and the edited audio together and post them to our site, along with a link back to you as the author.
Similarly, if you think a topic is missing from the course, you can either work up a set of short slide decks, or take one that you already have and carve it into pieces. Again, once you have those slides, record yourself talking through them and send us the result.
If you’d like to do this—and we hope you will—here are a few more tips:
- We recognize that some ideas need more time than others, but our users would rather have ten three-minute episodes than three ten-minute episodes. For most speakers, that means a dozen or two dozen slides per episode.
- We almost always write a script to go with our slides (which we put in the “notes” area of each slide), then read that aloud to create the audio recording. If you do this, please send us the script as well as the slides and the recording.
- We’ll take slides in almost any format, but our preferences in order are:
- Microsoft PowerPoint 2007 or 2010
- OpenOffice 3.1 or higher
- HTML (the simpler the better: CSS+Javascript slideshow packages like S5 are about as much as we can handle)
- Wiki-style text (e.g., “==slide titles in bars==”, “*this*” for emphasis, and so on)
- LaTeX (again, the simpler the better)
Please do not send us PDF: editing and reformatting it is simply too much work.
- All three major operating systems come with simple recording tools capable of producing WAV and MP3 files (our preferred formats). If you’d rather just work with one, we recommend Audacity: its user interface may seem a bit complicated at first, but for simple recording, editing, and playback, it’s easy to pick up.
- Many laptops have built-in microphones, but they tend to pick up a lot of background noise and produce very muffled sound. A cheap headset microphone produces much better results.
- If you stumble while you’re speaking, or if your phone rings, just pause for a second so that we have some clear space to cut in, then start your most recent sentence over again—we’ll edit the result.
- We also welcome video recordings that show people how to use particular tools—the lecture on spreadsheets is a good example. We can handle most common formats, but please be sure to use an 800×600 recording area. You should probably also record audio and video separately: we have found that trying to do them at the same time is difficult and frustrating. As with audio and slides, we can edit them together.
Finally, please make sure before you give us anything that you have the right to do so, and that you’re comfortable with our licenses: the Creative Commons Attribution License for lectures and the MIT License for code. And please let us know what you’re working on, so we can help make sure it’s in scope, not duplicating someone else’s efforts, etc.
Deliver the Course
Software Carpentry is designed so that individuals can work through the material they need on their own, but universities, research labs, companies, and self-study groups have also used it in a variety of ways, including:
- A three-day introduction to Python, which included the material on testing, sets and dictionaries, and object-oriented programming. This works best if participants have already programmed in some other language.
- A three-day software skills bootcamp covering the Unix shell, Make, version control, testing, and object-oriented programming. This requires some prior knowledge of Python, but could also be done by translating the examples of the testing and OOP lectures into MATLAB, Perl, or some other dynamic language.
- A week-long crash course covering all of the above for people who already knew how to program in some other language. This format is hard on both instructors and participants, but full-week courses are sometimes all that will fit institutional calendars.
- An online study group that covers one topic per week, with or without guidance and technical support from a course organizer.
- A full-length graduate or undergraduate course covering one topic per week. In this scenario, instructors almost always combine some Software Carpentry material with lectures of their own that target specific student needs, from LaTeX to particular statistical packages.
If you would like to deliver the course in one of these formats, or in one we haven’t seen yet, please let us know. Please also blog your experiences so that we can share what you learn with others. And please contribute any new content you create back to the core.
