Skip to main content

Programming Historian

Programming Historian offers novice-friendly, peer-reviewed lessons that help humanists learn a wide range of digital tools, techniques, and workflows to facilitate research and teaching.


  • Making an Interactive Web Application with R and Shiny

    This lesson demonstrates how to build a basic interactive web application using Shiny, a library (a set of additional functions) for the programming language R. In the lesson, you will design and implement a simple application, consisting of a slider which allows a user to select a date range, which will then trigger some code in R, and display a set of corresponding points on an interactive map.
  • Scalable Reading of Structured Data

    In this lesson, you will be introduced to ‘scalable reading’ and how to apply this workflow to your analysis of structured data.
    • Max Odsbjerg Pedersen
    • Josephine Møller Jensen
    • Victor Harbo Johnston
    Read more
  • Introduction to Map Warper

    This lesson from Programming Historian introduces basic use of Map Warper for historical maps. It guides you from upload to export, demonstrating methods for georeferencing and producing visualizations.
  • Computer Vision for the Humanities: An Introduction to Deep Learning for Image Classification (Part 2)

    This is the second of a two-part lesson introducing deep learning based computer vision methods for humanities research. This lesson digs deeper into the details of training a deep learning based computer vision model. It covers some challenges one may face due to the training data used and the importance of choosing an appropriate metric for your model. It presents some methods for evaluating the performance of a model.
  • Regression Analysis with Scikit-learn (part 2 - Logistic)

    This lesson is the second in a two-part lesson focusing on regression analysis. It provides an overview of logistic regression, how to use Python (Scikit-learn) to make a logistic regression model, and a discussion of interpreting the results of such analysis.
  • Regression Analysis with Scikit-Learn (part 1 - Linear)

    This lesson is the first of a two-part lesson focusing on an indispensable set of data analysis methods, logistic and linear regression. It provides an overview of linear regression and walks through running both algorithms in Python (using Scikit-learn). The lesson also discusses interpreting the results of a regression model and some common pitfalls to avoid.
  • Finding Places in Text with the World Historical Gazetteer

    Researchers often need to be able to search a corpus of texts for a defined list of terms and historians are often interested in certain places named in a text or texts. This lesson details how to programmatically search documents for a list of terms, including place names and then how to obtain coordinates and map historical place names with the World Historical Gazetteer.