Digital humanities

Maintained by: David J. Birnbaum ( [Creative Commons BY-NC-SA 3.0 Unported License] Last modified: 2023-04-14T18:14:14+0000

Syllabus: Spring 2023 (2234)

Date Session topics Homework due next time
Coding Digital humanities Coding, response papers, tests (upload to Canvas unless the assignment says otherwise) Postings
Unit: XML
Mon, 01-09
  • Introduction to XML: hierarchy, well-formedness, elements and attributes
  • Using the <oXygen/> XML editor and IDE
  • Gazpacho recipe
  • What is (computational) Digital Humanities?
  • If you haven’t done so already, install <oXygen/> and other software on your personal computer (details, links, and the <oXygen/> license key, are in a Canvas announcement)
  • Read An even gentler introduction to XML
  • XML exercise 1: Copy the text of one letter by either Oscar Wilde (please close and ignore the pop-up) or Anton Chekhov and mark it up in XML using <oXygen/>, employing whatever markup you consider appropriate. In this and all other assignments, follow our file-naming conventions.
Wed, 01-11
  • Using our Slack workspace for questions and discussion
  • Types of markup: descriptive, presentational, procedural
  • No prior programming experience? You’re in good company! Read Can humanities undergrads learn to code? by two former undergraduate instructors in this course
  • XML exercise 2: Mark up a text of your choice (any genre, manageable size, foreign languages welcome)
  • Write a 300- to 400-word response paper to either Exploring speech in Russian fairy tales (you do not have to be able to read Russian to do this) or Van Gogh as a tortured genius, discussing the site’s 1) identification and treatment of specific research questions, 2) utility as a tool for exploring the texts, and 3) effectiveness of overall user experience (design, interface, interaction, etc.)

Fri, 01-13
  • XML exercise 3: Mark up a different text of your choice (any genre; manageable but reasonable size; foreign languages welcome)
  • Read our Project checklist to learn about general course project goals
  • Write a 300- to 400-word response paper to Grimm or War and peace, following the same guidelines as for the previous response paper
Mon, 01-16 No class (Dr. Martin Luther King birthday observance)
Wed, 01-18
  • Project guidelines
  • XML review
  • Write a 300- to 400-word response paper to the Perseus digital library (this link is to the Iliad inside the library; you do not need to be able to understand Greek to respond to the site) or Melville’s marginalia, concentrating on the user experience (UX). What sorts of research does the site support, and how effectively does it provide that support?
  • Create a GitHub account if you have not already done so (see the instructions in our Canvas announcement about software for the course).
  • Read the GitHub three-minute guide to Mastering markdown
  • Read You aren’t a beginning XML developer anymore to help prepare for the XML test (assigned Fri, 01-20, due Mon, 01-23)
  • Post to the project-proposals channel in our Slack workspace a 300- to 400-word tentative/exploratory project proposal. Your proposal should identify your 1) text(s), which must be free of copyright restrictions, 2) research question(s), 3) approach and methods, and 4) potential teammates (if known). All course projects must be undertaken by teams of two or more persons, but this initial, exploratory proposal is an individual assignment. See our Course projects page for examples of projects past students have undertaken.

Unit: Project organization (GitHub and markdown)
Fri, 01-20
  • GitHub for project management
  • Markdown
  • Read and follow along with Chapter 1 (sections 1.1 through 1.8) of the official Git tutorial, which begins at By Monday’s class aim to have 1) learned how to access the command line on your local machine, and 2) installed Git on your local machine. If you get stuck, don’t panic (it’s complicated, but you’ll become adept quickly as you gain experience), but do ask for help in the #git-and-github channel of our Slack workspace. Post your GitHub userid in that channel.

  • Read all project proposals in our Slack workspace in preparation for forming project teams on Monday
  • Read our Introduction to Relax NG tutorial
  • Test #1: XML
Unit: Relax NG
Mon, 01-23
  • Form project teams, appoint a project owner (typically the proposal author)
  • Relax NG: Pasta recipe
  • Relax NG exercise 1: Write a Relax NG schema for one of the XML documents you created for an earlier assignment (XML exercise 1, 2, or 3; you may modify your XML if you wish) and upload both your XML and your schema file.

    Note: We’ll introduce how to model mixed content in Relax NG only next time. For this first assignment you can either select XML that doesn’t have any mixed content or peek ahead to the reading that will be assigned next time, about content models.

  • Read GitHub for project management.
  • The project owner should:
    • Create a GitHub repo for the project. From the configuration options when you tell GitHub that you want to create a new repo: 1) Make the repo public and 2) add a file (which you’ll compose using markdown). Skip other options for now.
    • Add all team members and all instructors as contributors to the project (go to Settings → Manage access and invite collaborators by using their GitHub userids). All students will have posted their GitHub userids in the #git-and-github Slack channel; instructor GitHub userids are listed at the top of our online course description.
Wed, 01-25
  • Relax NG
  • Read our Relax NG content models tutorial to learn about modeling mixed content and empty elements
  • Relax NG exercise 2: Choose a small text, perform document analysis, write a schema, mark up the text according to the schema, and upload both your XML and your schema file
Weekly project update (GitHub)
Fri, 01-27
Extended drop
  • Relax NG
  • Relax NG exercise 3: Choose a small text of a different type or genre than last time, perform document analysis, write a schema, mark up the text according to the schema, and upload both your XML and your schema file
  • Write a 300- to 400-word response paper to Blake or Rossetti. These are primarily archive or portal sites, designed to provide rich access to materials, and not to support specific research questions. How well do they achieve their goals?
Monthly project response (GitHub)
Mon, 01-30
  • Relax NG
Weekly discussion posting (Slack)
Unit: Regular expressions
Wed, 02-01
  • Regular expressions (Recipe)
  • Multipurposing
  • Sample project:
  • Regex exercise 1
  • Prepare for the Relax NG test (assigned Fri, 02-03, due Mon, 02-06)
Weekly project update (GitHub)
Fri, 02-03  
  • Read Regex tips (Read the first half, before the Using regex in XSLT section, to acquaint yourself with what’s there, but don’t try to memorize it all at once. You can skip the second half, about regex in XSLT.)
  • Test #2: Relax NG
Monthly project response (GitHub)
Mon, 02-06
  • Upconversion with regex
  • Regex exercise 2
  • Read the TEI header section (Chapter 2) of TEI P5 and submit a 300- to 400-word response paper. The TEI header is about metadata, that is, information about the document. How will you handle metadata (what type of information, how will be it be encoded or represented) in your project?
Weekly discussion posting (Slack)
Unit: TEI
Wed, 02-08
  • Read one chapter from the TEI guidelines (except Chapter 2, TEI header) and submit a 300- to 400-word response paper. Even if you don’t use TEI in your own project, focus on whether there are TEI features that you might want to adopt or adapt.
  • Read HTML basics
Weekly project update (GitHub)
Unit: Web technologies
Fri, 02-10
  • Obdurodon accounts
  • The Web: (X)HTML5, CSS, Unicode
  • Metadata
Monthly project response (GitHub)
Mon, 02-13   Weekly discussion posting (Slack)
Wed, 02-15
  • CSS: Flexbox and Grid
  • Take-home midterm instructions (take-home midterm is due Wed, 03-01)
Weekly project update (GitHub)
Fri, 02-17
  • Guest lecture by Shea Higgins (International Parkinson and Movement Disorder Society) on web design and user experience (UX)
  • Read the first chapter of Don Norman’s The design of everyday things (The psychopathology of everyday things), with particular attention to affordances and signifiers. Submit a 300- to 400-word response paper that discusses how these concepts might inform the interface design for your course project.
  • Test #3: Regex
Monthly project response (GitHub)
Mon, 02-20   Weekly discussion posting (Slack)
Unit: XPath
Wed, 02-22  
  • XPath exercise 1
  • Read Mining the Dispatch: introduction (the whole page under the Introduction tab; not just the few paragraphs headed Introduction) and submit a 300- to 400-word response paper. Topic modeling is a tool that operates on plain text to provide descriptive statistical information. How might it play a role in your project?
Weekly project update (GitHub)
Fri, 02-24
  • XPath: predicates and functions
  • Namespaces
  • Develop and test (!) path expressions one step at a time
Monthly project response (GitHub)
Mon, 02-27
  • Guest lecture by Elisa Beshero-Bondar (Penn State Erie, The Behrend College) on network analysis
Weekly discussion posting (Slack)
Wed, 03-01
  • Midterm due
  • Four features of XPath:
    1. XPath proceeds step by step
    2. The last step is special
    3. Asking for something that does not exist is not an error
    4. Path steps are like for or for-each expressions in other languages
  • XPath exercise 4
  • Prepare for the XPath test (assigned Fri, 03-03, due Mon, 03-13)
Weekly project update (GitHub)
Fri, 03-03
  • XPath: predicates and functions
  • The simple map (!) and arrow (=>) operators
  Monthly project response (GitHub)
Mon, 03-06
Wed, 03-08
Fri, 03-10
No class (Spring recess)
Mon, 03-13
  • Guest lecture by Gabi Kirilloff (Washington University) on distant reading
Weekly discussion posting (Slack)
Unit: XSLT
Wed, 03-15   Weekly project update (GitHub)
Fri, 03-17
  • XSLT templates
  • XPath expressions and XPath patterns
  • The digital workstation
Monthly project response (GitHub)
Mon, 03-20
  • XSLT program structure and design
  Weekly discussion posting (Slack) Single topic: Read The hermeneutics of screwing around or In praise of pattern. These essays describe how research methods in a digital environment may differ from research methods elsewhere in humanities scholarship. In what ways are Steve’s arguments persuasive (or not)?
Wed, 03-22
  • XSLT push and pull
  Weekly project update (GitHub)
Fri, 03-24
  • XSLT
  Monthly project response (GitHub)
Mon, 03-27
  • XSLT
  Weekly discussion posting (Slack)
Wed, 03-29
  • Guest lecture by Patrick Juola (Duquesne University) on stylometry and authorship attribution
  • Work through (write the code; don’t just skim) the w3schools SVG tutorial to complete the SVG basic and SVG shapes pages. Filters, gradients, examples, and reference are optional.
  • Prepare for the XSLT test (assigned Fri, 03-31, due Mon, 04-03)
Weekly project update (GitHub)
Unit: SVG
Fri, 03-31
  • SVG
  Monthly project response (GitHub)
Mon, 04-03
  • SVG
  • SVG exercise 2 (Remember that you should upload the XSLT stylesheet that you used to transform your document, not the SVG output of the transformation)
Weekly discussion posting (Slack) Single topic: Watch Hans Rosling’s The best stats you’ve ever seen and enter a thoughtful response on Slack. What does Rosling’s presentation suggest (persuasively or not) about what graphic visualization can contribute to making an argument?
Wed, 04-05
  • SVG
  • SVG exercise 3
  • Prepare for the SVG test (assigned Fri, 04-07, due Mon, 04-10)
Weekly project update (GitHub)
Fri, 04-07
  • SVG
  Monthly project response (GitHub)
Unit: Schematron
Mon, 04-10
  • Schematron
  Weekly discussion posting (Slack)
Wed, 04-12
  • Schematron
  Weekly project update (GitHub)
Fri, 04-14
  • Schematron
  Monthly project response (GitHub)
Unit: Project sprint
Mon, 04-17
  • Project lab session
The XML family of standards None Weekly discussion posting (Slack)
Wed, 04-19   None Weekly project update (GitHub)
Fri, 04-21
Last class
  None Monthly project response Feel free to respond to one of today’s presentations
Fri, 04-28,
11:59 p.m.
Projects due