Donate to Programming Historian today!

Contents

Introduction (About this resource)

This framework supports the development of computational lessons as structured learning experiences.

What is a Programming Historian lesson?

A Programming Historian lesson is a learn-by-doing resource that empowers readers to develop practical knowledge of a computational method or digital tool, which they will be able to apply in their own research to acquire, transform, analyse, visualise, or preserve data.

Why write a Programming Historian lesson?

Who is this Lesson Framework for?

This framework is designed to help prospective authors develop lessons that are effective, accessible, and sustainable. It also supports editors and peer reviewers, whose insights and practical feedback are essential to the production of high-quality learning resources. Ultimately, we’ve created it to empower our readers to learn, adapt, and apply digital methods in their own research contexts.

How should it be used?

Prospective Programming Historian authors are encouraged to use this framework as a guide for writing. The needs of each method are different, so the structure and prompts we’ve included are intended to be flexible. As you write, imagine yourself explaining your method to a colleague or peer. Speak to your reader directly in the second person, using the pronoun ‘you’.

How This Framework Works

This framework structures a lesson as a progression from context and motivation to guided practice and independent application.

Introduction

Use Case + Dataset + Tool

Learning Experiment

Local Application

Title and abstract

Short, descriptive title

1-3 sentence, plain-language abstract

Introduction

Method or tool

A plain-language overview

Technical context

Data type/format

Computational resource

Connectivity

Social context

Language

Ethics

Costs

Prerequisites

System requirements

Knowledge and applied experience

Difficulty

When assigning lesson difficulty, it is useful to consider: how much prerequisite knowledge is expected; whether and how specialist or technical terms are used and defined; the relative complexity of install and set-up; whether trouble-shooting steps are detailed, outlined, or referenced; where and how knowledge beyond the lesson’s scope can be learned (through existing Programming Historian lessons, other written documentation), or whether applied experience is necessary.

Is your lesson suitable for beginner, intermediate, or advanced-level learners?

Level Description
Beginner
• No prior knowledge required
• All steps are clearly defined
• Specialist or technical terms are defined
• Software packages are easy to install (no ‘known issues’)
• Challenges that readers might encounter are anticipated, and clear troubleshooting steps are detailed
• Further Programming Historian lessons (or external resources) for advancing new skills may be referenced
Intermediate
• Some prior knowledge is required
• Key steps are defined, all steps are outlined
• Specialist or technical terms established by beginner lessons are used in context, while any new terms are defined
• Software install and set-up may be subject to ‘known issues’
• Challenges that readers might encounter are anticipated, and trouble-shooting steps are outlined
• Existing Programming Historian lessons (or external resources) to empower less experienced readers to gain that knowledge are identified
Advanced
• Significant prior knowledge and applied experience required
• Confident ability to infer intermediate-level steps expected
• Specialist or technical terms are used throughout, new concepts are explained
• Software and packages may be known for their complexity to install and set-up
• Challenges that readers might encounter are anticipated, and trouble-shooting steps are referenced

Use Case

Write this so a reader can immediately recognise a real situation where the method would be useful.

Define the Use Case The use case is the practical situation that motivates learning the method.

Connect the Method

(Optional) Link to a Case Study

Dataset

Define the Dataset

Why This Dataset Works

Data Preparation

Citation

IASSIST Special Interest Group on Data Citation – recommended dataset citation components:

Component Description
Author Name(s) of each individual or organizational entity responsible for the creation.
Title Complete title, including edition or version number, if applicable.
Date Year the dataset was published or disseminated.
Publisher and/or Distributor Organizational entity that makes the dataset available by archiving, producing, publishing, and/or distributing the dataset.
Electronic Location or Identifier Web address or unique, persistent, global identifier used to locate the dataset (such as a DOI). Append the date retrieved if the title and locator are not specific to the exact instance of the data you used.

Software/tool

Focus on tools that support accessibility and reproducibility in this learning context.

Choose the Tool

Why this Tool Works

Citation

Software Heritage recommendations for citing software
Components to include:
• Author(s)
• Title
• Version
• Year of release
• License
• Repository URL
Example citation following the Chicago Manual, 17th edition citation style:
Endnote Julien Barnier et al.. Scatterd3, version 1.0.1 (2021). GPL. https://cran.r-project.org/web/packages/scatterD3/index.html.
Bibliography entry Julien Barnier, Kent Russell, Mike Bostock, Susie Lu, Speros Kokenes, Evan Wang. Scatterd3 (version 1.0.1). GPL. 2021. https://cran.r-project.org/web/packages/scatterD3/index.html.

Learning Keys

Concepts

What key concepts do readers need to understand before they begin experimenting with this method/tool?

Terms

What vocabulary do readers need to understand to work with this method/tool?

Authorial and contextual choices

Time and Structure

How long is the lesson expected to take?

How is the lesson structured to support learning?

Learning Experiment

Aims

Inventory

Why this setup?

Workflow (Narrated Demonstration)

1. Set up the environment and data

2. Run and interpret the methode

3. Identify what is specific vs general

4. Explain processes at the general level

5. Support navigation of complexity

Summary

What have you achieved in this learning experiment?

Local Application

This section takes the method from a guided experiment into independent use.

How can readers apply this method/tool in their own research context?

Use Cases and Research Questions Focus on transfer and variation, not re-explaining the original use case.

Working with New Datasets

Working Locally

Other Projects and Examples Support learners in discovering how the method is used in other research contexts.

Continued Learning

Endnotes

We use the endnote system and The Chicago Manual of Style, 17th Edition for our citations and resources lists.