Section 3 Skills Workshops

Short format workshops that run over one or more days can be a great way to bring people together to share skills. For workshops to be most impactful, it is important to use good quality lessons and have them taught by prepared instructors. The Carpentries supports and mentors a global community of instructors and lessons they can teach.

3.1 Software Carpentry

Overview of Software Carpentry workshops

3.1.1 Lessons

Software Carpentry aims to help people begin to think computationally about the work they do. It does this by introducing the shell for task automation, then by introducing a programming language such as R or Python, and then by bringing in version control systems such as Git to ensure that research work done can be easily retrieved, repeated, or adapted for other uses. Using these methods, learners can lay the foundation for performing open, reproducible research.

Software Carpentry maintains lessons in the Unix Shell, Git, R, Python, SQL, Make and Mercurial. Software Carpentry lessons focus on teaching tools in a discipline-agnostic way, in order to help researchers from all disciplines develop skill with the tools. Software Carpentry lessons aren’t meant to be exhaustive and comprehensive enumerations of all possible features of a particular tool. Instead the lessons seek to strike a balance of reducing cognitive load, while empowering the researcher to have a better understanding of how the tool could be applied in their workflow.

Visit the Software Carpentry Lessons website to see the most up to date listing of our lesson

3.1.1.1 Command Line

Command Line Interfaces or (CLIs) are a time-tested and efficient way to direct and control a computer. Software Carpentries’ flagship UNIX Shell lesson is the most taught lesson in Software Carpentry and helps bring novice learners toward an appreciation of their benefit. We teach a very small number of tools, but work through live coding and challenges we break down and demystify the dark art of constructing command line incantations. At the end of this module, learners have a better sense of using the shell environment to glue together programs and code from various languages. They also learn how to write simple scripts which are generalized and abstracted to run over different kinds of input such as piped text or directories of files.

3.1.1.2 Version Control

The Software Carpentry version control lessons help to motivate version control in a research context. They focus on the mechanics of how the version control tool works, and then how to use the tool in an online and then collaborative context. In this way we build up a mental model for the power of version control and demonstrate through challenges and activities ways the learner can leverage version control in their own research workflows.

3.1.1.3 Programming

The programming lessons in Software Carpentry focus on a particular scientific programming language, R, Python or MATLAB and help learners feel more comfortable in that language while gaining exposure to important software development practices. The Software Carpentry approach is one of empowering learners, so rather than teaching an exhaustive set of data types, the lessons focus on practical examples. Learners then learn about new data types and language constructs along the way, preventing data types being taught in the abstract.

3.2 Data Carpentry

A Data Carpentry workshop teaches the core skills for working with data effectively and reproducibly.

When working with data, it’s often difficult to figure out what skills to learn or how to get started learning them. In Data Carpentry, we identify the fundamental skills needed in a given domain and develop and teach these skills in hands-on, two-day, interactive workshops. Workshops are currently designed for people with little to no prior computational experience and are domain-specific, so that researchers are working with data most relevant to their own work. They follow a narrative structure, working with one dataset through the whole data lifecycle from data and project organization to data analysis and visualization.

3.2.1 Lessons

Data Carpentry currently have curriculum in:

  • Ecology Genomics Geospatial data Social sciences

3.3 Library Carpentry

Library Carpentry aims to help people in library and information roles develop software and data skills.

3.3.1 Lessons

Library Carpentry has nine lessons in the works, some more mature than others. New lessons are being drafted around FAIR principles and digital preservation.

Lesson Scope
Data intro for librarians An introduction to data structures, regular expressions, and computing terms
Unix Shell An introduction to command line interfaces and task automation using the Unix shell
OpenRefine An introduction to cleaning up and enhancing a dataset using OpenRefine
Git Intro for Librarians An introduction to version control using Git and GitHub for collaboration
SQL for Librarians An introduction to relational database management using the SQLite tool
Webscraping An introduction to extracting structured data from websites using a range of tools
Tidy data for librarians An introduction to good data organisation, which is the foundation of much of our day-to-day work in libraries
Introduction to Python An introduction to Python, a general purpose programming language
Data Intro for Archivists An introduction to data structures, regular expressions, and computing terms for archivists

3.4 Other Skills Workshops

The Programming Historian has a number of useful lessons on a range of tools and skills.

These lessons would be appplicable to anyone who wants to imrpove their digital skills - they have wider relevance beyond the fields of history and the humanities.