Purdue Library Carpentry

Purdue University

March 16-17, 2020

9:00 am - 5:00 pm

Instructors: Kim Pham, Thomas Guignard

Helpers: FIXME

General Information

Library Carpentry is made by people working in library- and information-related roles to help you:

Library Carpentry introduces you to the fundamentals of computing and provides you with a platform for further self-directed learning. For more information on what we teach and why, please see our paper "Library Carpentry: software skills training for library professionals".

Who: The course is for people working in library- and information-related roles. You don't need to have any previous knowledge of the tools that will be presented at the workshop.

Where: Walc, Room 1121, 340 Centennial Mall Dr, West Lafayette IN 47907-2124. Get directions with OpenStreetMap or Google Maps.

When: March 16-17, 2020. Add to your Google Calendar.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Contact: Please email ftgerrish@purdue.edu or ahutchcr@purdue.edu for more information.

Code of Conduct

Everyone who participates in Carpentries activities is required to conform to the Code of Conduct.This document also outlines how to report an incident if needed.


Please be sure to complete these surveys before and after the workshop.

Pre-workshop Survey

Post-workshop Survey


Day 1

Before Starting Pre-workshop survey
09:00 Introduction and brief icebreaker
09:00 Tidy Data
10:30 Morning break
12:00 Lunch break
13:00 Python - Part 1
14:30 Afternoon break
16:00 Wrap-up
16:30 END

Day 2

09:00 Python - Part 2
10:30 Morning break
12:00 Lunch break
13:00 Web Scraping
14:30 Afternoon break
16:00 Wrap-up
16:30 Post-workshop survey


Tidy Data

  • Using spreadsheets for data wrangling
  • Formatting data tables
  • Dates as data
  • Quality control & data manipulation
  • Exporting data
  • Reference...

Python - Part 1

  • Getting Started
  • Variables and Assignment
  • Data types and Conversion
  • Built-in functions and Help
  • Libraries
  • Reference...

Python - Part 2

  • Recap
  • Lists
  • For Loops
  • Writing Functions
  • Variable Scope
  • Conditionals
  • Programming style and wrap-up
  • Reference...

Web Scraping

  • Introduction: What is Web Scraping?
  • Selecting content with XPath
  • Manually scrape using browser extensions
  • Web scraping using Python and Scrapy


To participate in a Library Carpentry workshop, you will need access to the software described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

The Bash Shell

Bash is a commonly-used shell that gives you the power to do simple tasks more quickly. Please find setup instructions in the lesson.


OpenRefine is a tool to clean up and organize messy data. Please find instructions to install it and the data used in the lesson in the lesson.


Git is a version control system that lets you track who made changes to what when and has options for easily updating a shared or public version of your code on https://github.com.

Follow the instructions on the lesson to install Git on your system.

You will need an account at github.com for parts of the Git lesson. Basic GitHub accounts are free. We encourage you to create a GitHub account if you don't have one already. Please consider what personal information you'd like to reveal. For example, you may want to review these instructions for keeping your email address private provided at GitHub. You will need a supported web browser.