Software Carpentry

Software Carpentry workshops are free, hands-on, two-day events that cover the core computational research skills needed to be productive as an individual scientist or in small research teams. No previous experience is needed and each workshop is taught by experienced researchers who use these tools in their own work. Participants will learn how to automate tasks using the Unix shell, will be introduced to a structured programming language like Python or R, and will gain experience using Git and Github for version control.


-- Check back in late Fall 2021 for Spring 2022 workshops --

Past Workshops

Programming with R

The best way to learn how to program is to do something useful, so this three-day introduction to R is built around a common scientific task: data analysis. Our real goal isn’t to teach you R, but to teach you the basic concepts that all programming depends on. Learn how to read data into R, assign variables, use data frames, plot data, make functions, and more.

Programming with Python

An introduction to programming in Python for people with little or no previous programming experience, and  is built around a common scientific task: data analysis. Learn about Python data types, variables, visualizing tabular data, for loops, Python lists, and functions, while using Python packages numpy and matplotlib.

Databases and SQL

This session focuses on using databases and SQL for search and analysis of large or complex data sets. Learn to write queries in SQL, which stands for “Structured Query Language”. SQL provides hundreds of different ways to analyze and recombine data. We will only look at a handful of queries, but that handful accounts for most of what scientists do.

Version Control with Git

This lesson introduces version control with Git, which provides researchers with a tool they can use to keep track of what they’ve done and collaborate with other people. Every large software development project relies on version control, and most programmers use it for small jobs as well. And it isn’t just for software: books, papers, small data sets, and anything that changes over time or needs to be shared can and should be stored in a version control system.

Data Cleaning with OpenRefine

OpenRefine is a powerful open-source tool to help you work with messy data. We’ll show you how to explore and transform datasets using facets, filters, and clustering tools in OpenRefine. Researchers can take advantage of OpenRefine’s flexible spreadsheet-like interface in a reproducible and extensible framework.


Automating tasks using the Unix shell

• Structured programming in Python, R, or MATLAB

• Version control using Git or Mercurial


• Enables computational research that couldn’t be done otherwise

• Improves reproducibility and rigor by automating repetitive tasks and allowing sharing and auditing of data collection, processing, and analysis scripts

• Helps improve the quality of shared research data and code


• Graduate Students

• Faculty

• Staff who do research