Software Carpentry

Software Carpentry

Table of Contents

What is 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 structured programming language like Python or R, and will gain experience using Git and Github for version control.


Upcoming Workshops

This spring, we will be holding five online, subject-specific Software Carpentry workshops on computational research tools and best practices. Additional Spring 2021 workshops will be posted here as scheduled. If you have specific questions about any of these topics and how to incorporate them into your digital scholarship, write us at or sign up for consultation with an expert through our monthly Programming & Pizza event.


Space is limited and priority will be given to University of Minnesota students, faculty and staff. Please only register for these workshops if you will actually be able to attend! 


Programming with R

Monday, March 15; 9:30am – 12:00pm

Wednesday, March 17; 9:30am – 12:00pm

Friday, March 19; 9:30am – 12:00pm


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.


Register / View curriculum



Databases and SQL

Tuesday, March 23; 10:00am-12:15pm

Thursday, March 25; 10:00am-12:15pm


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.


Register / View curriculum



Version Control with Git

Monday, March 29; 1:00pm-4:00pm


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.


Register / View curriculum


What is taught?

Automating tasks using the Unix shell

• Structured programming in Python, R, or MATLAB

• Version control using Git or Mercurial

Why Software Carpentry?

• 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

Who is the Target Audience?

• Graduate Students


• Faculty


• Staff who do research

U of M Software Carpentry Instructors