University of Toronto iSchool

September 7, 2018

10:00 am - 3:00 pm

Instructors: Thomas Guignard

Helpers: Kaitlin Newson, Andrew Murphy, Dawn Walker, Kathy Chung, Christoph Becker

General Information

This one-day workshop will introduce students to the fundamentals of computer programming, based on lessons developed by the Library Carpentry initiative.

The day will start with an interactive session in which attendees will learn how to interact with computers using the command line and how to automate simple tasks. Through the development of a simple computer program, foundational concepts of computer automation and programming will be introduced. The second part of the workshop will highlight the importance of clean, structured data and discuss case studies of data cleanup and manipulation in libraries and archives. Attendees will be encouraged to share their own examples of such scenarios.

We will conclude with an overview of free and openly accessible tools that can help with repetitive tasks, as well as resources for further learning and getting help.

Workshop participants should come with their own laptop computer (Windows, macOS or Linux). Windows users will be required to install software before attending the workshop, see setup instructions below.

Library Carpentry is made by librarians, for librarians 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: This workshop is aimed at current iSchool students in library science, archive and records management, knowledge management, and culture and technology. Workshop participants do not require any previous knowledge of the tools that will be presented at the workshop.

Where: Faculty of Information, University of Toronto, Room 507, Claude Bissell Building, 140 St. George Street, Toronto, ON M5S 3G6. Get directions with OpenStreetMap or Google Maps.

When: September 7, 2018. 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). They are also required to abide by Library Carpentry's Code of Conduct.

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 for more information.


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

Pre-workshop Survey

Post-workshop Survey


10:00 Introduction to the Shell and basics of computational thinking
12:00 Lunch break
13:00 Data organization for librarians
14:00 How and where to find the tools you need and get help using them
15:00 Wrap-up

We will use this collaborative document for chatting, taking notes, and sharing URLs and bits of code.


The Unix Shell

  • The command-line inteface (a.k.a the Shell)
  • Files and directories
  • History and tab completion
  • Automating tasks using loops
  • "Growing" a program: the computational mindset
  • Reference...

Data organization

  • Spreadsheet pros and cons
  • Data hygiene
  • Tools for data validation and cleanup
  • Version control

Get coding

  • Discuss sample case studies
  • Where to find tools to work with data?
  • Where to find help
  • Wrap up and Q&A


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.


Video Tutorial
  1. Download the Git for Windows installer.
  2. Run the installer and follow the steps below:
    1. Click on "Next" four times (two times if you've previously installed Git). You don't need to change anything in the Information, location, components, and start menu screens.
    2. Select “Use the nano editor by default” and click on “Next”.
    3. Keep "Use Git from the Windows Command Prompt" selected and click on "Next". If you forgot to do this programs that you need for the workshop will not work properly. If this happens rerun the installer and select the appropriate option.
    4. Click on "Next".
    5. Keep "Checkout Windows-style, commit Unix-style line endings" selected and click on "Next".
    6. Select "Use Windows' default console window" and click on "Next".
    7. Click on "Install".
    8. Click on "Finish".
  3. If your "HOME" environment variable is not set (or you don't know what this is):
    1. Open command prompt (Open Start Menu then type cmd and press [Enter])
    2. Type the following line into the command prompt window exactly as shown:

      setx HOME "%USERPROFILE%"

    3. Press [Enter], you should see SUCCESS: Specified value was saved.
    4. Quit command prompt by typing exit then pressing [Enter]

This will provide you with both Git and Bash in the Git Bash program.


The default shell in all versions of macOS is Bash, so no need to install anything. You access Bash from the Terminal (found in /Applications/Utilities). See the Git installation video tutorial for an example on how to open the Terminal. You may want to keep Terminal in your dock for this workshop.


The default shell is usually Bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.