Methods in Digital History II
History 8510: Methods in Digital History II is the second course in the digital methods sequence for Digital History PhD students at Clemson University. Where Methods I built foundational computational thinking skills and the practice of turning primary sources into historical datasets, this course takes on advanced methods. Students design and build relational databases, run OCR and AI transcription workflows and measure how accurate they actually are, extract structured data from unstructured sources, apply computer vision and advanced text analysis, and build interactive web applications that function as research tools.
Methods I (HIST 8500) was taught in R. This course is taught in Python and SQL, and the shift is intentional. We have learned to think computationally and while the syntax of these languages will be different, the core skills have not changed. Students work with an AI coding assistant throughout, either Clemson ChatGPT or Claude Code, and the course treats using those tools as a skill in its own right rather than a shortcut around one. The rule for the term is delegate then verify. You may offload big coding tasks to a model, but you are responsible for knowing whether what comes back is correct and for being able to say how you know. You should read all code, verify the results, and generally be the historian in the loop.
Students complete four projects applying these methods to primary sources drawn from their own research, each paired with a short written analysis of the method and its application to a specific historical question. Alongside these, eight Method Logs ask students to work out what each method assumes about a body of sources and whether it has anything to offer their own work. Students leave prepared for original research that uses these techniques to answer complex historical questions, and equally prepared to say when a method is the wrong tool for the question in front of them.
- Build the technical infrastructure for advanced digital scholarship. Students will design and construct relational databases, build processing pipelines that run reliably at scale, develop interactive web applications using Flask, and maintain reproducible research practices through version control, preparing them for original research and dissertation work that leverages computational approaches.
- Evaluate and apply advanced digital methods. Students will critically assess and implement database design, OCR and AI transcription, handwriting recognition, structured data extraction, computer vision, named entity recognition, text reuse detection, embeddings and semantic search, and semantic change detection, choosing among them on the basis of a historical research question rather than novelty.
- Establish whether a computational result can be trusted. Students will build ground truth, measure error using appropriate metrics, compare methods against a baseline, and validate samples by hand. Determining that a method does not work on a particular body of sources, and being able to demonstrate why, is a legitimate scholarly outcome in this course.
- Practice reproducible research and effective documentation. Students will produce clear documentation of their computational processes, maintain reproducible workflows through GitHub, and present their methodological choices and findings to scholarly audiences.
- Work with AI systems as a supervised collaborator. Students will understand the range of technologies gathered under the term artificial intelligence, judge where each is appropriate for historical research, delegate work responsibly and deliberately, and verify what comes back.
Hardin Hall 004
- Python 3.11 or later.
- Visual Studio Code, with the Python and DBcode extensions.
- A GitHub account.
- An AI coding assistant. Clemson ChatGPT is free and is the course default. Claude Code is an optional paid alternative and is what the instructor will use. Either is fine and we will discuss the pros and cons of each in class.
- API access with vision capability for at least two providers. $10 in credit for each. We will discuss how to set this up in class.
W01Aug 19Introductions & course setupMoving from R to Python; VS Code and choosing an AI coding tool.—›
Wed · Aug 19 — Introductions & course setup
Readings & tutorials
- Mollick, “A Guide to Which AI to Use in the Agentic Era,” One Useful Thing, Feb. 17, 2026.
- Mollick, “An Opinionated Guide to Which AI to Use to Do Stuff,” One Useful Thing, July 23, 2026.
- Mollick, “Claude Code and What Comes Next,” One Useful Thing, Jan. 7, 2026.
W02Aug 24–26Database design in SQL & relationshipsDesigning a relational database for your own sources; the schema as a historical argument.Tech Table Qs›
Mon · Aug 24 — Database design in SQL & relationships
Readings & tutorials
- Robertson, “Putting Harlem on the Map,” Writing History in the Digital Age (2012).
- Rawson & Muñoz, “Against Cleaning,” Debates in the Digital Humanities (2016).
- Library Carpentry, Library Carpentry: SQL (The Carpentries, 2024). Complete Summary and Setup, downloading the data files only, then read episodes 1 (Introduction to SQL), 8 (Database Design), and 9 (Creating Tables and Modifying Data). We use the DBcode extension in VS Code in place of DB Browser for SQLite — open
doaj-article-sample.dbdirectly in DBcode and ignore the DB Browser instructions in episode 1. - Install the DBcode extension for VS Code.
Wed · Aug 26 — Tech Table
Due this week
- Wed · Aug 26 — Tech Table questions to Slack, by 10am
W03Aug 31–Sep 2Advanced SQL queries for historical analysisJOINs and aggregation, GROUP BY.Tech Table Qs›
Mon · Aug 31 — Advanced SQL queries for historical analysis
Readings & tutorials
- Library Carpentry, Library Carpentry: SQL (The Carpentries, 2024). Episodes 2–7 (Selecting and Sorting Data, Filtering, Ordering and Commenting, Aggregating and Calculating Values, Joins and Aliases, Saving Queries). Episode 11 (Extra Challenges) is optional.
- Explore Enslaved.org.
- Explore SlaveVoyages.
- Eltis, “The Trans-Atlantic Slave Trade Database: Origins, Development, Content,” Journal of Slavery and Data Preservation 2, no. 3 (2021): 1–8.
Wed · Sep 2 — Tech Table
Due this week
- Wed · Sep 2 — Tech Table questions to Slack, by 10am
W04Sep 7–9Querying databases from PythonNo class Mon (Labor Day); connecting to SQLite from Python and moving between queries and dataframes.Method Log 1›
Mon · Sep 7 — No class (Labor Day)
Wed · Sep 9 — Querying databases from Python
Content session — no Tech Table this week, since Monday was Labor Day.
Readings & tutorials
- Library Carpentry, Python for Librarians: Accessing SQLite Databases Using Python & Pandas — hands-on lesson, the core prep.
- Skim the Python
sqlite3module documentation.
Due this week
- Sun · Sep 13 — Method Log 1: relational databases & SQL, by 11:59pm
W05Sep 14–16OCR for printed sourcesThe classical OCR pipeline. Measuring transcription accuracy.Project 1Tech Table Qs›
Mon · Sep 14 — OCR for printed sources
Readings & tutorials
- Hill & Hengchen, “Quantifying the Impact of Dirty OCR on Historical Text Analysis: Eighteenth Century Collections Online as a Case Study,” Digital Scholarship in the Humanities 34, no. 4 (2019): 825–43.
- Alpert-Abrams, “Machine Reading the Primeros Libros,” Digital Humanities Quarterly 10, no. 4 (2016).
- Rosebrock, “Improving OCR Results with Basic Image Processing,” PyImageSearch, Nov. 22, 2021.
- Review the pytesseract documentation on PyPI.
- Skim “Tesseract (software),” Wikipedia.
Wed · Sep 16 — Tech Table
Due this week
- Wed · Sep 16 — Tech Table questions to Slack, by 10am
- Sun · Sep 20 — Project 1: Database Design & Analysis, by 11:59pm
W06Sep 21–23Vision LLMs & building an evaluation harnessTranscribing with vision models and building a harness that compares them against ground truth.Method Log 2Tech Table Qs›
Mon · Sep 21 — Vision LLMs & building an evaluation harness
Readings & tutorials
- OpenAI, “Images and Vision,” OpenAI API documentation.
- Chen, “Exploring OCR Tools with Two 19th Century Documents,” UC Berkeley Library Update, Dec. 3, 2024.
- Humphries, “When Models Disagree, Transcription Accuracy Improves Significantly,” Generative History, May 27, 2026.
- Levchenko, “Building Historical Corpora with Multimodal LLMs: Epistemic Gaps and Misreadings in 18th-Century Russian Books,” ACH Anthology 3 (2025), presented at Computational Humanities Research 2025.
Wed · Sep 23 — Tech Table
Due this week
- Wed · Sep 23 — Tech Table questions to Slack, by 10am
- Sun · Sep 27 — Method Log 2: OCR & machine transcription, by 11:59pm
W07Sep 28–30Handwriting recognitionWhy handwriting is harder than print and what a trained model offers that a general one does not.Project 2 approvalMethod Log 3Tech Table Qs›
Mon · Sep 28 — Handwriting recognition
Readings & tutorials
- Nockels, Gooding & Terras, “The Implications of Handwritten Text Recognition for Accessing the Past at Scale,” Journal of Documentation 80, no. 7 (2024): 148–67.
- Humphries, “Gemini 3 Solves Handwriting Recognition and It’s a Bitter Lesson,” Generative History, Nov. 25, 2025.
- Recommended: Romein, Rabus, Leifert & Ströbel, “Assessing Advanced Handwritten Text Recognition Engines for Digitizing Historical Documents,” International Journal of Digital Humanities (2025).
- Optional: Humphries, “Has Google Quietly Solved Two of AI’s Oldest Problems?” Generative History, Oct. 2025.
Wed · Sep 30 — Tech Table
Due this week
- Mon · Sep 28 — Project 2 approval: sources, systems & extraction schema
- Wed · Sep 30 — Tech Table questions to Slack, by 10am
- Sun · Oct 4 — Method Log 3: handwriting recognition, by 11:59pm
W08Oct 5–7Structured data extractionTurning pages into structured records.Method Log 4Tech Table Qs›
Mon · Oct 5 — Structured data extraction
Readings & tutorials
- Bell et al., “Automated Data Extraction from Historical City Directories: The Rise and Fall of Mid-Century Gas Stations in Providence, RI,” PLOS ONE 15, no. 8 (2020): e0220219.
- Humphries, “The Sugar Loaf Test: How an 18th-Century Ledger Reveals Gemini 3.0’s Emergent Reasoning,” Generative History, Nov. 18, 2025.
- Stewart & Sinha, “Retrieving Information from Unstructured Historical Sources Using Large Language Models,” Computational Humanities Research, published online Dec. 2, 2025.
Wed · Oct 7 — Tech Table: running pipelines at scale
Running an extraction pipeline at scale without losing work or money.
Due this week
- Wed · Oct 7 — Tech Table questions to Slack, by 10am
- Sun · Oct 11 — Method Log 4: structured data extraction, by 11:59pm
W09Oct 12–14Computer vision & distant viewingNo class Mon (Fall Break). Computational analysis of historical images; distant viewing as a method.Method Log 5›
Mon · Oct 12 — No class (Fall Break)
Wed · Oct 14 — Computer vision & distant viewing
Content session — no Tech Table this week, since it follows Fall Break.
Readings & tutorials
- Arnold & Tilton, Distant Viewing: Computational Exploration of Digital Images (Cambridge, MA: MIT Press, 2023).
- Wevers & Smits, “The Visual Digital Turn: Using Neural Networks to Study Historical Images,” Digital Scholarship in the Humanities 35, no. 1 (2020): 194–207.
Due this week
- Sun · Oct 18 — Method Log 5: computer vision & distant viewing, by 11:59pm
W10Oct 19–21Named entity recognitionThree approaches to finding people, places, and your own categories in historical text.Project 2Tech Table Qs›
Mon · Oct 19 — Named entity recognition
Readings & tutorials
- Blevins, “Space, Nation, and the Triumph of Region: A View of the World from Houston,” Journal of American History 101, no. 1 (2014): 122–47.
- Zaratiana et al., “GLiNER: Generalist Model for Named Entity Recognition Using Bidirectional Transformer,” arXiv preprint, Nov. 2023; published in Proceedings of NAACL 2024, 5364–76.
- Santini, Melosi & Frontoni, “Named Entity Recognition in Historical Italian: The Case of Giacomo Leopardi’s Zibaldone,” EKAW 2024 Workshops, Nov. 2024.
- Hiltmann et al., “NER4all, or Context Is All You Need: Using LLMs for Low-Effort, High-Performance NER on Historical Texts — A Humanities Informed Approach,” arXiv preprint, Jan. 2025.
- Optional: Tudor, Megyesi & Östling, “Prompting the Past: Exploring Zero-Shot Learning for Named Entity Recognition in Historical Texts Using Prompt-Answering LLMs,” Proceedings of the 9th Joint SIGHUM Workshop (LaTeCH-CLfL 2025): 216–26.
Wed · Oct 21 — Tech Table
Due this week
- Wed · Oct 21 — Tech Table questions to Slack, by 10am
- Sun · Oct 25 — Project 2: Transcription & Structured Extraction, by 11:59pm
W11Oct 26–28Embeddings & vector representationsWhat a vector representation is, what it captures, and what it loses.Method Log 6Tech Table Qs›
Mon · Oct 26 — Embeddings & vector representations
Readings & tutorials
- Schmidt, “Word Embeddings for the Digital Humanities,” Oct. 25, 2015.
- Blankenship, Connell & Dombrowski, “Understanding and Creating Word Embeddings,” Programming Historian, Jan. 31, 2024.
- Garg, Schiebinger, Jurafsky & Zou, “Word Embeddings Quantify 100 Years of Gender and Ethnic Stereotypes,” Proceedings of the National Academy of Sciences 115, no. 16 (2018): E3635–44.
- Work through the Sentence Transformers “Quickstart.”
Wed · Oct 28 — Tech Table
Due this week
- Wed · Oct 28 — Tech Table questions to Slack, by 10am
- Sun · Nov 1 — Method Log 6: named entity recognition, by 11:59pm
W12Nov 2–4Applications: text reuse, semantic search & changeText reuse, semantic search, retrieval-augmented generation, and semantic change.Project 3 proposalMethod Log 7Tech Table Qs›
Mon · Nov 2 — Applications: text reuse, semantic search & semantic change
Readings & tutorials
- Mullen, “Detecting Text Reuse in Nineteenth-Century Legal Documents,” Mar. 11, 2015.
- Catalano, “Digitally Analyzing the Uneven Ground: Language Borrowing Among Indian Treaties,” Current Research in Digital History 1 (2018).
- Smith, Cordell & Dillon, “Infectious Texts: Modeling Text Reuse in Nineteenth-Century Newspapers,” Proceedings of the 2013 IEEE International Conference on Big Data, 86–94.
- Soni, Klein & Eisenstein, “Abolitionist Networks: Modeling Language Change in Nineteenth-Century Activist Newspapers,” Journal of Cultural Analytics 6, no. 1 (2021).
- Hamilton, Leskovec & Jurafsky, “Diachronic Word Embeddings Reveal Statistical Laws of Semantic Change,” Proceedings of the 54th Annual Meeting of the ACL (2016): 1489–1501.
Wed · Nov 4 — Tech Table
Due this week
- Wed · Nov 4 — Tech Table questions to Slack, by 10am
- Wed · Nov 4 — Project 3 method proposal
- Sun · Nov 8 — Method Log 7: embeddings & their applications, by 11:59pm
W13Nov 9–11Agentic AI & building research toolsAgentic AI and research tools for digital history.Project 4 conceptProject 3Tech Table Qs›
Mon · Nov 9 — Agentic AI & building research tools
Readings & tutorials
- Mollick, “Management as AI Superpower: Thriving in a World of Agents,” One Useful Thing, Jan. 27, 2026.
- Hufe et al., “Towards the AI Historian: Agentic Information Extraction from Primary Sources,” arXiv preprint, Apr. 2026.
- Humphries, “The Agents Are Waking Up,” Generative History, Apr. 17, 2026.
- Humphries, “Is This the Last Generation of Historians?” Generative History, Feb. 7, 2025.
Wed · Nov 11 — Tech Table
Due this week
- Mon · Nov 9 — Project 4 concept approval
- Wed · Nov 11 — Tech Table questions to Slack, by 10am
- Sun · Nov 15 — Project 3: CV / Advanced Text Analysis, by 11:59pm
W14Nov 16–18Flask web applications with PlotlyBuilding a Flask application for research.Method Log 8Tech Table Qs›
Mon · Nov 16 — Flask web applications with Plotly
Readings & tutorials
- Grinberg, “The Flask Mega-Tutorial,” parts 1–4.
- Real Python, “Flask Project Structure: Build a Scalable Web App.”
- Skim the Flask documentation.
- Explore Plotly’s open-source graphing library for Python.
- D3, “What Is D3?” — read for the conceptual model.
- If you are choosing D3 for your project: Observable, “Learn D3” (guided introduction), and D3, “Getting Started” — loading D3 from a CDN into a plain HTML page, which is how it will connect to your Flask app.
Wed · Nov 18 — Tech Table
Due this week
- Wed · Nov 18 — Tech Table questions to Slack, by 10am
- Sun · Nov 22 — Method Log 8: agentic AI & research tools, by 11:59pm
W15Nov 23–25Flask styling, layout & templatingTemplates, styling, and adding an interactive map to your application; no class Wed (Thanksgiving).—›
Mon · Nov 23 — Flask styling, layout & templating
Readings & tutorials
- Real Python, “Primer on Jinja Templating” — core reading.
- Flask, “Templates” — reference.
- Leaflet, “Quick Start Guide” — the hands-on for the mapping portion.
- Optional: Leaflet, “Using GeoJSON with Leaflet” — for students whose sources are spatial and want to go further.
Wed · Nov 25 — No class (Thanksgiving)
W16Nov 30–Dec 2Work session & project consultationsProject work time and scope consultations; last regular class Wed.Tech Table Qs›
Mon · Nov 30 — Work session & project consultations
Dedicated work time on the visualization project, plus one-on-one consultations on scope and approach. No new content.
Wed · Dec 2 — Tech Table (last regular class)
Final troubleshooting before the showcase.
Due this week
- Wed · Dec 2 — Tech Table questions to Slack, by 10am
- Fri · Dec 11 - Project 4 due by 11:59pm