NewtFire logo: a mosaic rendering of a firebelly newt
newtFire {dh}
Maintained by: Elisa E. Beshero-Bondar (eeb4 at psu.edu) Creative Commons License Last modified: Monday, 24-Aug-2026 00:15:41 UTC. Powered by firebellies.

Fall 2026 Syllabus (Schedule): Classes meet M W F 10:10 – 11am in Library 006

Read the Course Description

The Course Description page contains a detailed explanation of course policies and the basis for grades.

Jump Down to the Schedule

The button jumps to the closest day to today's date. Review the schedule as we get started to get a sense of how this course will work on a daily basis.

Tools and Resources

Download and install the following software on your own personal computer(s) as we start the course. These software tools are also available in our campus computing labs.

  1. <oXygen/>. The DIGIT program has purchased a site license for this software, which is installed in Kochel 77, Lilley Library, and other classrooms in Burke and Witkowski where students are taking DIGIT classes this year. The license also permits students enrolled in the course to install the software on their home computers (for course-related use only). When installing this on your own computers, you will need the license key, which we have posted on our course Announcements section of Canvas.
  2. Zoom: Make sure your Zoom installation is up-to-date, and you are ready to connect. (We will use Zoom when we need it for office/project meetings.)
  3. Discord: You will need a Discord account to join the DIGIT Discord (instructions TBA), and a ready reference to Discord command + shortcuts
Resources for class:

Schedule

This schedule is subject to revision. Stay alert for updates and announcements of significant changes posted on Canvas.

Week 1Class topicsDo before class

M 08-24

  • Welcome! Introduction to the course. Expectations of technology (including AI), flow and pace of this class.
  • Intro to XML and plain text in the oXygen XML Editor.
  •  Introduce XML Exercise 1 (due Wed. 8/26):
  • Is typing a challenge? Recent Wall Street Journal headline: Gen Z-ers are Computer Whizzes. Just Don’t Ask Them to Type (2024-08-24). A web game to help with typing more accurately with all your fingers on a QWERTY keyboard.
Respond to Dr. B’s Poll (see Canvas / Penn State email).

W 08-26

  • Review and discuss coding of the letter for XML Exercise 1.
  • Elements, attributes, comments, escape characters, and "pretty-printing" in <oXygen/>.
  • How file systems recognize XML documents (File extension, and XML declaration line).
  • Introduce XML Exercise 2.
  • Install oXygen XML Editor and add our license key if you have not done so already.
  • Read my Introduction to XML, open a new XML file in oXygen, and experiment with the code in the tutorial: Can you tell what makes markup well-formed or not?
  • Complete XML Exercise 1

F 08-28

Discussion of Pierazzo's introduction of XML. Discussion of recipe XML homework, XML data and metadata. Document sources. Coding attributes and self-closing elements. Example of code used for visualizing: Map of Early Modern London Project Introduce XML Exercise 3
Week 2Class topicsDo before class

M 08-31

Discussion of XML homework. How to work with distinct identifiers: @xml:id attributes and pointer attributes (#): Prosopography lists. Self-closing elements. Introduce git and GitHub.

W 09-02

  • Discussion of document metadata in The Ballad of Booker T.
  • Introduce version control concept
  • GitHub and Shell orientation: Working with the Git Bash Shell (Windows) and Terminal (Mac and Linux)
  • Introduce class GitHub (textEncoding-Hub) and how we will interact with it. Students join the class textEncoding-Hub. Intro to GitHub markdown. Markup vs. markdown. Explore GitHub markdown for writing issues, including code-blocks.

F 09-04

Code repositories with Version Control: GitHub vs. Codeberg Command line fundamentals — Terminal (Mac/Linux) and Git Bash Shell (Windows). Version control as a concept. Introduce the class Text-Encoding-Hub repo.
  • Deciding between GitHub vs. Codeberg
  • GitHub/Codeberg file management:
    • Navigating between and managing multiple repositories.
    • Pulling, adding, committing, and pushing to your repos.
  • GitHub/Codeberg profile configuration: what, why, how.
Checkpoint 2
  • GitHub/Codeberg Exercise 2
  • To help with this exercise:
    • Watch my short (15 minute) video showing how to git pull in changes, and the three-step of git add, git commit, and git push.
    • Review our short list of Git Commands to pull, commit, and push changes to your personal GitHub repo and/or to the textEncoding-Hub.
    • Set up your local Git Config in your shell, and your Personal Access (Developer) Token for GitHub
    • (Optional: good to try:): Watch / work with Set up a Git Bash Profile (short video how-to): (This is convenient for you, and more command line knowledge).
Week 3Class topicsDo before class

M 09-07

Labor Day Holiday: No classes. ...

W 09-09

SSH key setup: One key, works everywhere! generate a keypair, add the public key to GitHub/Codeberg, test the connection.

F 09-11

  • Getting used to GitHub/Codeberg and getting help.
  • Core workflow: clone, add, commit, push, pull against the shared Text-Encoding-Hub via SSH remotes.
  • Solving common problems
  • Checkpoint 2
  • GitHub Exercise 3: Clone and push files to textEncoding-Hub and to your personal Repo
Week 4Class topicsDo before class

M 09-14

Well-formed vs. Valid XML. Introduction to schemas with Relax NG.

W 09-16

Writing Relax NG:
  • Technical details and big picture issues.
  • Introducing datatypes, rules for mixed content, attribute value options, datatypes.
  • Practice with sequence indicators, options, grouping.
  • Demonstration: Why we do NOT use oXygen’s Generate/Convert schema.

F 09-18

  • Grouping and mixed content.
  • What is causing the red square? Determining sources of error
Checkpoint 4
  • Relax NG Exercise 2: Select an XML homework assignment you completed. Inspect your encoding (and any comments you received on the assignment). Then determine how you might want to change it to make it more systematic and efficient. Your code should feature attributes and apply datatypes, and mixed content. Write Relax NG and modify your XML so that it is valid against your schema plan.
Week 5Class topicsDo before class

M 09-21

  • Loose vs. tight? What is best for a schema?
  • Who are schemas for? Revisiting the John Norton collaboration.
  • Working with xsd:ID, xsd:IDREF, and xsd:IDREFs
  • list{ } content model, with review of mixed{ }.
  • Dates, times, numbers and datatypes: Looking Stuff Up
  • Introduce semester team projects
  • Relax NG Exercise 3: Choose a new document (any genre, any language, manageable size for homework, interesting to model): Try writing a schema first, and then coding to fit the schema. (Edit both the XML structure and the Relax NG rules as you go.)
  • Repair any broken Relax NG syntax and/or XML validation issues on previous homework submissions.
  • GitHub practice series

W 09-23

  • Review of Relax NG Ex 4.
  • Specialized community schemas: TEI, MEI, CBML: Applying these in projects
  • Issue Relax NG Test.
  • Project options discussion.

F 09-25

  • Review/debug session, project discussion
  • manuscript-material poll
  • Introduction to the TEI: presentation vs. semantics, TEI Guidelines as shared standard vs.custom Relax NG.
Checkpoint 5
  • TEI Orientation Exercise: Read this slide deck: Overview of Text Encoding and the TEI and respond on our discussion thread on the textEncoding-Hub.
  • Submit repairs and revisions for any previous Relax NG assignments as needed.
Week 6Class topicsDo before class

M 09-28

Form Project Teams! Sign up for semester project. If you do not meet the requirements, meet with Dr. B to help catch up / determine options.

W 09-30

Handling text data structures, context information, and metadata the TEI way. What the TEI Header is for How to research the TEI Guidelines and TEI Roma. Project Milestones Series Begins: Teams set up GitHub / Codeberg repos

F 10-02

TEI Roma + starting an ODD
  • TEI Exercise 1: Data and metadata in TEI
  • Relax NG Test due
Week 7Class topicsDo before class

M 10-05

TEI msDesc + manuscript description module. Introduce HTR
  • TEI Exercise 2: Working with the teiHeader. (Read about and work with the TEI Header chapter in the TEI Guidelines)
  • U. of Illinois LibGuide: TEI in Action: look at the examples and consider whether the code structures make sense for your project!

W 10-07

AI for Handwritten Text Recognition (HTR) hands-on exercise: Transkribus vs. vision-model comparison on manuscript material HTR manuscript analysis prep exercise

F 10-09

  • ODD customization vs. custom Relax NG: synthesis
  • CBML: Latin American Comics project
Project Milestone: Formalizing the team schema
Week 8Class topicsDo before class

M 10-12

Introduce XPath, self-guided tutorial + Fonto playground

W 10-14

Querying XML with XPath. Searching for nodes on axes, and setting predicates: *[...]. XPath Exercise 1

F 10-16

XPath as calculator: math functions
  • Project milestone / checkpoint
  • XPath Exercise 2
Week 9Class topicsDo before class

M 10-19

XPath string functions:
  • Orientation to Regular Expressions (Regex)
  • Handling only one node at a time: contains(), matches(), translate(), replace(), string-length(). Cutting a string in parts: tokenize(); taking substring-before() or substring-after()
  • Bundling up a sequences of strings: string-join()
XPath Exercise 3

W 10-21

  • Troubleshooting installations
  • Gizmo for XPath at command line
Saxon + Coffeepot / Markup Blitz Command Line Installations

F 10-23

  • Regex and XPath: Search + Replace and String Functions
  • Orientation to Invisible XML (iXML)
Week 10Class topicsDo before class

M 10-26

iXML orientation, discussion.

W 10-28

iXML discussion / debugging. Coping with Ambiguity iXML Exercise 2

F 10-30

  • Introducing Schematron: Applying XPath in Project Code Inspection
  • How Schematron is different from Relax NG. Asserts vs. reports. Associating Schematron files with XML, Schematron workflow.
Milestone / Checkpoint
Week 11Class topicsDo before class

M 11-02

Schematron applied to team projects Schematron Exercise

W 11-04

XSLT introduction: template matching concept as it compares with Schematron, oXygen setup, first identity transformation

F 11-06

  • Review of identity transformation XSLT
  • Basic anatomy of an HTML file
  • Template matching mechanics, trimming the tree with @select, XML→HTML
XSLT Exercise 1
Week 12Class topicsDo before class

M 11-09

XSLT push vs. pull processing XSLT Exercise 2

W 11-11

XSLT core review/workshop, transition toward styling XSLT Exercise 3

F 11-13

XSLT + HTML/CSS: Putting the pieces together: layout fundamentals, associating CSS with XSLT for output HTML
  • Project milestone: Web deployment on GitHub / Codeberg Pages
  • XSLT / CSS Exercise 4
Week 13Class topicsDo before class

M 11-16

CSS Flex and Grid for Reading View Layouts: Examples XSLT / CSS Exercise 5

W 11-18

  • Introduction to Scalable Vector Graphics (SVG) as XML
  • Orientation to SVG shapes, text as elements
...

F 11-20

  • XSLT to SVG + Modal Templates: generating SVG shapes for source XML nodes + reading view in HTML
  • Issue XSLT Test
SVG Exercise
Week 14Class topicsDo before class

Sun 11-22 – Sat 11-28

Thanksgiving Holiday Have a restful and productive week!
Week 15Class topicsDo before class

M 11-30

DIGIT-XML-MCP project: for reviewing / improving code consistency with XML stack tools ...

W 12-02

  • Modal XSLT formalized: xsl:sort
  • How to set up your SVG to scale nicely in an HTML file
Checkpoint

F 12-04

XSLT for collections: internal linking, sorting output XSLT test due
Week 16Class topicsDo before class

M 12-07

  • Documenting your project decisions and coding on the website
  • Permissions, licensing, crediting sources, documenting your project team work
  • Choose, embed, post a Creative Commons License
  • Project development sprint!
Documentation Milestone

W 12-09

Project development sprint! Preparing for presentations and completing the projects

F 12-11

Last day! DIGIT Works presentations You and your team share your project with the class and DIGIT Works audience.
Finals Week: 12/14 – 12/18 Due

W 12-16

Semester projects due by 11:59pm.

Send a post to me on GitHub and Canvas to indicate that your team is finished.