Software Carpentry

Software Carpentry offers free, hands-on workshops 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.

Upcoming Workshops (Spring 2023)

No previous programming experience is required to attend, though if you are brand new to programming we highly recommend attending the Unix Shell online workshop before attending the Databases & SQL, Git, Python, or R workshops below. 

R for Reproducible Scientific Analysis (in-person) - Register
Three-part series: Tue, Wed, and Thu, Jan. 24, 25, and 26, 2023. 3:00 - 5:30 p.m. each day.
Coffey Hall, Room 50 computer lab (Saint Paul) - U Card required for entry to Coffey Hall. 
This workshop series will introduce modular code and best practices for using R for data analysis. R is commonly used in many scientific disciplines for statistical analysis and its array of third-party packages. These workshops provide a strong foundation in the fundamentals of R, and introduce reading and manipulating data in data frames, creating data plots in ggplot2, and more. (View curriculum)

The Unix Shell (in-person) - Register
Wed, Jan. 25, 2023. 9:00 a.m. - 12:00 p.m. 
Walter Library, Room 320 (East Bank)

Learn 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. (View curriculum)

Programming with Python (online) - Register
Three-part series: Mon, Wed, Fri, Jan. 30, Feb. 1 and 3, 2023. 1:00 p.m. - 3:30 p.m. each day
This three-part 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. (View curriculum)

Version control with Git (in-person) - Register
Wed., Feb. 8, 2023. 1:00 - 4:00 p.m.
Walter Library, Room 310 (East Bank)

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. (View curriculum)

Introduction to LaTeX (online) - Register
Fri, Feb. 10, 2023. 10:00 a.m. - 12:00 p.m.
This workshop will cover formatting fundamentals for LaTeX, a typesetting system commonly used in scientific publishing. The workshop will utilize Overleaf (free public accounts) to introduce formatting for scientific publication, tables, figures, BibTeX for citations, and using publisher templates. (View curriculum)

Databases and SQL (in-person) - Register
Two-part series: Tue and Thu, Feb. 14 and 16, 2023. 1:00 p.m. - 3:30 p.m.
Andersen Library, Room 120 (West Bank)

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. (View curriculum)

Partner workshops

For other great workshops check out DASH partner organizations: 

Automating tasks using the Unix shell

• Structured programming in Python and R

• Version control using Git 

• Cleaning data with OpenRefine

• Writing for scientific publications with LaTeX

• 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