Lesson Material
This directory contains one page for each Software Carpentry lesson package.
Each of those pages uses {% include %}
to include all of the lesson material for viewing and checking.
Software Carpentry
This material is original to Software Carpentry.
- The Unix Shell
-
Core material for the Unix shell:
the organization of files and directories,
creating and deleting things,
the pipe and filter model,
processing multiple files using loops,
putting commonly-used commands in shell scripts,
and finding things.
To do: diagrams.
- Version Control with Git
-
A short introduction to version control using Git and GitHub
that builds toward a branch-per-feature workflow.
To do: lots of revision; diagrams.
- Basic Programming Using Python
-
An introduction to basic programming concepts using the IPython Notebook, skimage.novice, and ipythonblocks.
To do: lots.
- Sets and Dictionaries
-
Optional material for Python programming:
sets and dictionaries,
how hash-based data structures work,
the JSON data format
(which relies heavily on dictionaries),
and three examples of increasing complexity.
To do: diagrams.
- Invasion Percolation
-
Invasion percolation is a good half-day example
that brings together many of the things we teach about programming
while introducing new concepts like performance profiling and development lifecycles.
To do: diagrams; challenges; IPython Notebooks.
- Databases and SQL
-
Core material for SQL databases:
selection,
removing duplicates,
filtering with Boolean conditions,
performing calculations on values,
sorting,
handling NULLs,
aggregating values,
grouping,
joining multiple tables,
a very brief introduction to creating tables and inserting data,
an equally brief coverage of transactions,
and a couple of examples showing how to uses databases from inside a program.
To do: diagrams, and material on how to design and structure tables.
- Web Programming with Python
-
Preliminary material on web programming:
a little bit of history,
basic HTML,
using a templating engine to create pages,
how HTTP works,
fetching data programmatically,
providing data by dynamically generating static pages,
why and how to create an index,
and data syndication.
To do: diagrams; switch from Jinja2 to Jekyll (since that's what GitHub uses).
The Hacker Within
This material originated with a grassroots group
at the University of Wisconsin - Madison
called The Hacker Within.
We are grateful for their permission to re-use it.
- The Unix Shell
-
This introduction is based on materials by
Milad Fatenejad, Sasha Wood, and Radhika Khetani,
and includes a single tutorial.
- Version Control With Git
-
This introduction is based on materials by
Katy Huff and Anthony Scopatz
as modified by Joshua R. Smith and Sri Hari Krishna Narayanan.
It includes:
- Introduction to Python
-
An introduction to the basic features of Python,
which covers:
Most sections also include some exercise material.
- Python Debugging
-
This introduction is based on materials
originally written by Anthony Scopatz and Patrick Fuller.
It includes a notebook.
- Testing with Python
-
This introduction is based on materials
originally written by Katy Huff, Rachel Slaybaugh, and Anthony Scopatz.
It includes a notebook.
- NumPy
-
An introduction to array-based computing in Python from Matthew Terry.
It consists of a notebook.
- SciPy
-
A supplement to the NumPy tutorial from Anthony Scopatz.
It also consists of a single tutorial.
- Plotting in Python with matplotlib
-
An introduction to plotting in Python using matplotlib
originally written by Anthony Scopatz and Katy Huff.
It consists of a notebook.
- Documentation
-
An introduction to documenting code from Anthony Scopatz.
It consists of a notebook.
Miscellaneous
This material was written and contributed by a variety of people.
We are grateful for their permission to reuse it.
- Introduction to R
-
An introduction to R originally developed by Prof. Jenny Bryan
at the University of British Columbia,
and modified by others for use in Software Carpentry bootcamps.
See the main tutorial file
for the starting point.
- Introduction to Pandas
-
An introduction to the Pandas statistical library
written by Indiana University's Michael Hansen,
contained in a ipython notebook (HTML rendering).
- Introduction to Biopython
-
An introduction to bioinformatics computing using biopython
originally written by Will Trimble, Aron Ahmadia, and others.
It covers:
- Installing a Python Package Locally
-
A short introduction to installing
grin
with pip
and updating PATH
to find it
that was originally created by Cindee Madison.
(And yes,
those terms are all explained in the tutorial.)