All I Want for Christmas is a Pull Request...

This post originally appeared on the Software Carpentry website.

As we said back in October, we're splitting the existing lesson repository into smaller and more manageable pieces. To do that, we have defined a new template for lessons, and have been extracting the history of the existing material from the current repository. (We wanted to get the entire history of each lesson so that people would receive credit for the work they've done.) The second step has taken longer than planned, but we now have all of the core novice lessons in repositories of their own:

Repository Title/website Status
shell-novice Introduction to the Unix shell. beta
git-novice Introduction to Git. beta
hg-novice Introduction to Mercurial. beta
sql-novice-survey Introduction to SQL using Antarctic survey data. beta
python-novice-inflammation Introduction to Python using inflammation data. beta
r-novice-inflammation Introduction to R using inflammation data. beta
matlab-novice-inflammation Introduction to MATLAB using inflammation data. beta
capstone-novice-spreadsheet-biblio A short capstone that gets a bibliography out of a spreadsheet and into a more usable form. beta
instructor-training Software Carpentry instructor training course. alpha
python-novice-turtles Introduction to Python using turtle graphics. alpha

There's still a lot to be done:

  • The CSS used to style the new template needs a major overhaul.

  • The validation tool used to check the format of lessons against the new template needs more work.

  • The challenge exercises all need titles (right now, most are titled "FIXME").

  • We need a 3-minute motivational slide deck for each lesson. (See this page for a preview of the tool we're going to use to record these.)

  • Glossary entries need to be brought over from the old repository.

  • The intermediate lessons need to be extracted from the old repository and merged with the new lesson template.

  • Learning objectives for each lesson need to be rewritten to be more concrete.

  • Data files in the novice R lesson need to be moved into the data sub-directory and paths in the source updated accordingly.

  • The outstanding pull requests against the master branch of the shell lesson need to be merged or discarded so that we can close that branch and start doing everything against gh-pages.

  • The "images" produced by ipythonblocks in the novice Python lesson need to be regenerated as PNGs (rather than as HTML tables), saved, and linked in.

  • ...and a hundred and one other things, because lessons are like theses: they're never done, they're just delivered.

One thing you'll notice is that we're now using Markdown for everything instead of IPython Notebooks. We still teach with notebooks when we're in front of a class, but our contributors have found diffing and merging them difficult enough that we're switching back to plain old text for the notes until something like nbdiff is ready for prime time.

Another thing you might notice is a new capstone lesson showing people how to use the shell, Python, SQL, and Git to extract authors' names from a bibliography stored in a spreadsheet and answer questions like, "Who has co-authored papers with whom?" This lesson is meant to be useful in its own right, but also to serve as an example for others of its kind. If you have something short and accessible that you'd like to share, please let us know: we'd be happy to work with you to bring it to a wider audience.

What we need most, though, is polish: all of the points listed above need to be addressed before we can put these lessons on the website instead of the ones stored in the old repository. If you have 15 minutes, please dive into one of these lessons, proof-read one section, and file some issues. Or better yet, send us a pull request that fixes something—anything at all—so that we can hit the ground running in 2015.

Dialogue & Discussion

Comments must follow our Code of Conduct.

Edit this page on Github