Syllabus

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, 08-26
  • 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.
None.
Wed, 08-28
  • 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.). Post on Canvas (for this and all other response assignments).

None.
Fri, 08-30
  • 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
  • Read the linked articles in "Learning Git: Part One" and complete the associated response essay.
None.
Unit: Project organization (GitHub and markdown)
Mon, 09-02 No class (Labor Day)
Wed, 09-04
  • Project guidelines
  • XML review
  • Post to the project-proposals issue forum on GitHub 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 guidelines and examples of projects past students have undertaken. (Note that you must have already set up a Github account in order to complete this assignment, which means that you should complete Part II of the "Learning Git" assignment sequence (assigned for this session) beforehand.)

Fri, 09-06 Add/drop
deadline
  • GitHub for project management
  • Markdown
  • Complete "Learning Git: Part III," which teaches you how to install Git locally on your personal computer.
  • Read all project proposals on the relevant Github forum in preparation for forming project teams on Monday
  • Read our Introduction to Relax NG tutorial
  • Test #1: XML (note: tests are always assigned on a Friday, and due before class the subsequent Monday)
  • Post at least one substantive comment on someone else's project proposal on the Github issue forum.
Unit: Relax NG
Mon, 09-09
  • 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.

  • Complete Part IV or "Learning Git," which teaches you how to interact with your remote repository (hosted on the Github cloud) with your local repository (hosted on your person computer).
None.
Wed, 09-11
  • 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
  • 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 README.md 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).
None.
Fri, 09-13
  • 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?
Reminder: make sure you are consistently engaging the course discussion / troubleshooting forum on Slack (one of our Standing Assignments).
Mon, 09-16
  • Relax NG
Reminder: make sure someone from your project group posts updates most weeks (one of our Standing Assignments).
Unit: Regular expressions
Wed, 09-18
  • Multipurposing
  • Sample project:
  • Regex exercise 1
  • Complete Part V of "Learning Git," which helps you get used to the push-pull workflow.
  • Prepare for the Relax NG test
None.
Fri, 09-20  
  • 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 (see Canvas)
Single topic: What is a Regex method not covered in the homework or class exercises that you have figured out on your own? How might it be useful for the technologies we cover in this course? (Post a new item on the Slack channel, or comment on someone else's, as part of our Standing Assignments.)
Mon, 09-23
  • 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?
None.
Unit: TEI
Wed, 09-25
  • 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
None.
Unit: Web technologies
Fri, 09-27
  • The Web: (X)HTML5, CSS, Unicode
  • Metadata
Single topic: as part of one of your regular project updates, report on your group's discussion of TEI: do you plan to use it? Do you plan to incorporate certain elements and attributes from TEI, but not others? What do you see as the pros and cons?
Mon, 09-30  
  • Read Learn CSS layout
  • HTML/CSS exercise 1: Create and upload your first HTML and CSS pages Github Pages (see "Getting started with Git Pages" page on Canvas). The content and look of your webpage is up to you, but should demonstrate usage of several XHTML element types as well as CSS styling. Please submit the URL of your page to Canvas.
None.
Wed, 10-02
  • CSS: Flexbox and Grid
None.
Fri, 10-04   Single topic: briefly introduce a CSS style you discovered on your own, providing a link and example in code blocks on the Slack discussion / troubleshooting channel.
Unit: XPath
Mon, 10-07  
  • 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?
None.
Wed, 10-09
  • XPath: predicates and functions
  • Namespaces
  • Develop and test (!) path expressions one step at a time
Single topic: XPath is a language for specifying the path to different nodes on an XML tree. But "path" is a key term you have seen before within the context of navigating your computer hard drive using command line. Both conceptually and in terms of syntax, what are some of the similarities and differences between file paths on your operating system and XPath? Discuss on the Slack channel.
Fri, 10-11
  • 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
Reminder: you should be commenting on other teams' Github project updates once every month or so.
Mon, 10-14 No class (Fall break)
Wed, 10-16
  • XPath: predicates and functions
  • The simple map (!) and arrow (=>) operators
  Discussion forum post (on TopHat) due for this unit.
Unit: XSLT
Fri, 10-18
  • XSLT and XPath Overview
  • How to Look Stuff Up
 
  • Test #4: XPath
XSLT is one of the more challenging languages for many students, so we expect to questions and responses on the Slack discussion / troubleshooting channel at least 3-4 times per student over the course of this unit.
Mon, 10-21
  • XSLT templates
  • XPath expressions and XPath patterns
  • The digital workstation
None.
Wed, 10-23
  • XSLT program structure and design
  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. How do these arguments make you think differently about your research project? Discuss as part of a project update.
Fri, 10-25
Monitored
withdrawal
deadline
  • XSLT Review Workshop
  None.
Mon, 10-28
  • XSLT push and pull
  None.
Wed, 10-30
  • XSLT
  None.
Fri, 11-01
  • Guest lecture by David Birnbaum on user-defined functions in XSLT
  • 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
Single topic: post your own idea for a user-defined function to the discussion / troubleshooting Slack channel. You do not need to have a working function, but try to post at least some speculative code (as a code block, as a Github link, or both).
Mon, 11-04
  • XSLT
  None.
Unit: SVG
Wed, 11-06
  • SVG
  None.
Fri, 11-08
  • 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)
  • Test #5: XSLT
Single topic: Watch Hans Rosling’s The best stats you’ve ever seen and, as part of your project update, report on project team discussion about what graphic visualizations you might feature on your project website.
Mon, 11-11
  • SVG
  None.
Wed, 11-13
  • SVG
  None.
Unit: Schematron
Unit: Geospatial analysis
Fri, 11-15
  • Using Textual Data for Digital Mapping
 
  • GeoJSON exercise 1 (TBD)
  • Test #6: SVG
None.
Mon, 11-18
  • XML for geo-spatial analysis (in-class "drive by" exercise)
 
  • GeoJSON exercise 2 (TBD)
None.
Unit: Project sprint
Wed, 11-20
  • Project workshop (in-class, extra credit, attendance optional)
 
None.
Fri, 11-22
  • Project lab session
The XML family of standards None None.
Mon, 11-25
Wed, 11-27
Fri, 11-29
No class (Thanksgiving recess)
Mon, 12-02   None None.
Wed, 12-04
Last class
meeting
  None None.
Fri, 12-13,
11:59 p.m.
Projects due