Software Carpentry

Software Carpentry

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 fall, we will be holding six online, subject-specific Software Carpentry workshops on computational research tools and best practices. 

 

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

Thursday, September 24; 9am-12pm

Friday, September 25; 9-10:30am

 

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

 


 

Version Control with Git

Tuesday, September 29; 1-4pm

 

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

 


 

Programming with Python (Using numpy)

Monday, October 5; 9-11:30am

Wednesday, October 7; 9-11:30am

Friday, October 9; 9-11:30am

 

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

 


 

Plotting and Programming with Python (Using pandas)

Monday, October 19; 9-11:30am

Wednesday, October 21; 9-11:30am

Friday, October 23; 9-11:30am

 

This three-day lesson is an introduction to programming in Python for people with little or no previous programming experience, using data plotting as a motivating use case. Learn about Python data types, variables, visualizing tabular data, for loops, Python lists, and functions, while using the Python packages pandas and matplotlib.

 

Register / View curriculum 

 


 

Unix Shell

Monday, October 26; 1-4pm

Tuesday, October 27; 1-2:30pm

 

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 R

Monday, November 9; 9-11:30am

Wednesday, November 11; 9-11:30am

Friday, November 13; 9-11:30am

 

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

What is taught at a Software Carpentry Workshop?

Why Software Carpentry?

Who is the target audience for Software Carpentry?

UMN Software Carpentry Instructors