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! 


Unix Shell

Wednesday, February 3; 9:30 – 11:45am

Thursday, February 4; 9:30 – 11:45am


This two-day lesson guides you through the basics of file systems and the Unix shell. The shell is a tool that allows you to do complex things with just a few keystrokes. More importantly, it helps you to combine existing programs in new ways and automate repetitive tasks. Use of the shell is fundamental to using a wide range of other powerful tools and computing resources (including “high-performance computing” supercomputers). These lessons will start you on a path towards using these resources effectively.

Register / View curriculum



Programming with Python


Monday, February 8; 1:00 – 3:30pm

Tuesday, February 9; 1:00 – 3:30pm

Wednesday, February 10; 1:00 – 3:30pm


This three-day lesson is 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.


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