NewtFire logo: a mosaic rendering of a firebelly newt
newtFire {dh|ds}
Maintained by: Elisa E. Beshero-Bondar (ebb8 at Creative Commons License Read the course description and syllabus in TEI XML. Last modified: Sunday, 19-Feb-2017 10:19:32 EST. Powered by firebellies.

Autumn 2016: Classes meet M W F 10:30 - 11:20 AM, 137 McKenna Hall

Jump Down to the Schedule

All the Tools You Need As We Begin:

Download and install the following software on your own personal computer(s) on or before the first day of class. These software tools are available in our campus computing labs, too.

  1. All students: <oXygen/>. The University of Pittsburgh has purchased a site license for this software, which is installed in the Pitt computer labs on multiple campuses, and it’s in use in courses here at Greensburg and at Oakland. 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 Courseweb.
  2. All students require a good means of secure file transfer (SFTP) for homework assignments and projects (also available in the campus computer labs). There are several good options available. We recommend you download and install on your own computers one (or more) of the following, depending on your platform: (Feel free to experiment with these and others!)
    • Windows users: one of the following FTP clients—the functionality is similar:
      • SSH Secure Shell Client (this one is the most ad-free experience)
      • WinSCP An alternative to SSH with a few more bells and whistles (This is one we used for a long time, since the 1990s, but we now use SSH and Filezilla more frequently.)
      • or FileZilla (a great tool, but be wary of accepting its bundled ad offers as you install!)
    • Mac users:
    • Linux users: You probably don’t need to install anything, but look at how your system handles secure file transfer (SFTP). (FileZilla or other clients designed for Linux environments.)
  3. Read the Course Description and this Syllabus page to see how this course works on a day-to-day basis.
  4. This course fulfills general education requirements in Q2, SS, and HM, and it fulfills a core requirement for the Digital Studies Certificate at Pitt-Greensburg. Think about where this course might fit in your academic career, and how you might apply the skills you learn here.
  5. No coding experience? Don’t worry! You are in very good company. We don’t expect any of you to have written a line of computer code before now. Past students in this course who never saw anything like markup or XML code have designed projects (like these) and even spoken about them at an undergraduate conference! You’ll help continue some of these projects we’ve started, and you’ll learn to build and create digital tools for yourself with skills we hope you will keep developing.
The Webs Where We Work: Explanatory Guides and Exercises: Complete List
Week 1 In Class Due Next Time

M 08-29

Welcome! Intro to the course, and Intro to XML and working in <oXygen/>: Write your first XML. Mindful File Management (how to name, store, share, and submit files in this course). Setting up accounts for web server and for GitHub. Gazpacho Soup

  • By Wed. 8/31: Install <oXygen/> software on your own computers. Instructions and license key posted on Courseweb.
  • Read our Introduction to XML, and read File Conventions for CourseWeb Assignments.
  • First XML exercise: Look at this recipe for gazpacho soup. What if you were running a restaurant and needed to create a system to file it according to ingredients to purchase, to track quantities per unit serving--and this recipe were one of, say, 100 other recipes you're keeping on file? Or what if you needed to adapt it with markup to fit a system like we see at the GitHub-based recipe center Think about a good system for categorizing the information in the recipe for this long-term situation, and mark up your file accordingly. Copy the text of just the recipe (including the list of ingredients and method) and ignore the rest of the page. Paste the text of the recipe into a new XML document in <oXygen/>. Prepare a complete XML file in a way that makes sense to organize the information in the recipe (giving it a name, classifying the ingredients, etc), and make use of elements as well as attributes in your markup. There is no single way to do this exercise, but we want you to think about how you nest levels of information (elements within elements), and the relationship between elements and attributes in XML. Submit the results on Courseweb, in the folder labelled “Upload Assignments Here”, before our next class.
  • By Wed. or Fri. this week: Read our GitHub tutorial, and create your GitHub account. Clone our class GitHub repository to your local machine(s). Practice opening an Issue and pushing files to the Sandbox directory.

W 08-31

Setting up GitHub, Working in the Cloud and campus lab access. “Markup” vs. “Markdown”. Discussion of the XML recipe homework: XML Comments, Validity, and Well-formedness, and how to work with <oXygen/>. Web Accounts: collect info.

F 09-02

Discussion of homework, and XML: Validity and Well-formedness. XML projects in digital humanities. Introduce the Digital Mitford Project and Emily Dickinson's Fascicle 16

Pushing and pulling files, opening and closing Issues, joining in discussions (via Issues) on our DHClass-Hub.

Reading and Discussion Post on GitHub: Read Gabrielle Kirilloff, “<Traversing_the_Tree/>”, the short article, “Frankenstein novel analyzed” and scroll through Wendell Piez's conference talk and images for the Balisage Markup Conference 2014. If you like, you can take a close look at his LMNL code of Frankenstein on GitHub. Then go to our DHClass-Hub GitHub Issues page to join in the discussion. For full credit, your posts should make specific reference to passages in Kirilloff's essay, and reflect on those passages. Raising questions is encouraged, and so is responding to each other!

XML exercise 3: Review our feedback on your coding exercises so far and submit revisions if we asked you to. Mark up a text of your choice (any genre; manageable but reasonable size; foreign languages welcome). Work on applying attributes with your elements, and doing so in a careful and systematic way.

Week 2 In Class Due Next Time

M 09-05

Labor Day Holiday: No classes.

W 09-07

Overlapping hierarchies. Document Analysis and Coding: Group Exercise with Kubla Khan The concept of “UX.”

UX Discussion on DHClass-Hub Choose one of the following digital archives to explore, and write a post on the DHClass-Hub addressing 1) something interesting the site is inviting us to explore about centuries-old texts, and 2) the effectiveness of the user experience (“UX”).

Review XML syntax for test. Read Intro to Relax NG.

F 09-09

drop-add period ends

Test 1: XML, markup.

Schema Languages: Writing the Rules. Writing Relax NG

Relax NG exercise 1: Write a Relax NG schema for one of the XML documents you created for an earlier assignment (XML exercise 2 or 3), and upload it an your XML file to Courseweb.

Week 3 In Class Due Next Time

M 09-12

Relax NG: mixed content, data types. Course projects: introduction.

Relax NG exercise 2: This time, choose a small text (maybe one of the letters from the first assignment that you did NOT mark up before, or anything you like). Perform document analysis, write a schema, and mark up the text according to the schema.

Discussion Post on GitHub Issues: Where Might We Go from Here?Choose one of the following Greensburg project sites under development. Describe (in your own words) at least one significant topic it seems to be exploring, and reflect on what we might want to try next to develop the research areas of the project and/or the UX of the project site. Those of us (instructors and returning students) who have been involved in these projects should help introduce them to our class and point out things that need work.

  • Decameron Project. Developed by coding students at Pitt-Greensburg last spring, and ready to be continued.
  • Amadis in Translation. Recently launched project last year: follow the link to its GitHub repository for more information and a view of the coding. We need to work on preparing the two sets of English and Spanish base texts to read and study them together, and we could choose to expand the project in a new direction of interest.
  • From our Digital Mitford Project: Letters Introduction. For the letters portion of this project, a team could develop a module to help investigate some interesting topics. t
  • Digital Archives and Pacific Cultures Site: This site reflects the origins of our Pitt-Greensburg digital humanities projects—it was our starting point and first collaboration with students. The Voyage Maps area got us involved with using maps to represent passages from voyage logs, but the project could use an overhaul to pick up loose ends or continue where we left off a few years ago, and we could move it to our development space at the Supercomputing Center to be with our other projects.

W 09-14

More projects designed by students: The Restoration of Nell Nelson, The Nonsensical Seuss, and Divergences in Machine Translation: Examining Harry Potter texts processed by Google Translate across multiple language families

Descriptive markup and non-textual features: Manuscripts and Physical Objects. The Papers of George Washington project: Visualizations page.

Introducing the Text Encoding Initiative (TEI).

Relax NG exercise 3: Choose a small text of a different type or genre than last time, perform document analysis, write a schema, and mark up the text according to the schema.

GitHub Post and Discussion: Project Proposal Ideas.

F 09-16

The TEI: Why and how we work with it. Project Discussion.

  • Document Analysis and TEI Lookup Exercise, with a small manuscript: Part 1 Cheese Straw Recipe: Work on creating the body of a TEI document, that represents and efficiently stores searchable information from the two files (one photo and the other some text written about what you see in the photo). Begin by reading and studying the files. Your goal is to create one TEI document to make a unified text out of the two files here. Start a TEI file in oXygen and work in the <body> element to transcribe and code the recipe and its accompanying text, in whatever order makes sense to you. Consult the TEI P5 guidelines, especially Chapter 3: Elements Available in All TEI Documents (especially section 3.5.3) and Chapter 4: Default Text Structure.
  • Read and Work With Chapters in the TEI Guidelines and look up coding rules to map out a plan of what elements and attributes to use in the body element of the TEI document, and write TEI to represent the body of the file. (Leave the TEI header for Part 2 of this assignment.)
  • Here are a pair of sample TEI files to help give you an idea of how these are structured:
    • Simple TEI file from the Emily Dickinson Fascicle 16 project (This helps to see the basic parts of a TEI file all together at a glance. You want to do more than this for the TEI exercise, but this helps to represent a starting point.)
    • Letter file from the Digital Mitford project (with a detailed TEI header)
Week 4 In Class Due Next Time

M 09-19

Form project teams

Discussion and Work with Cheese-Straw TEI Exercise. What We Include in the TEI Header.

W 09-21

Up-Conversion with Regular Expressions: Using Find & Replace in <oXygen/>. Model with Cheese Straw Recipe.

Review Relax-NG

F 09-23

Test 2: Relax NG

More on Regular Expressions. Inside-out or Outside-in? Greedy Matching.

TEI Conference
  • Regex Exercise 2: Blithedale
  • Project Development: You've been invited to collaborate on new projects in GitHub.
    • Go to GitHub and clone the new repository on your computer, and begin exploring the files locally.
    • Post in the Issues board of your new Project Github your available meeting times to help us determine a regular meeting time for your group.
Week 5 In Class Due Next Time

M 09-26

Regular Expressions: thinking algorithmically

TEI Conference

Regex Exercise 3: Voyage Log

W 09-28

Regular Expressions: Selecting for what’s not there, complicated patterns

TEI Conference

F 09-30

XML and the Web: HTML and CSS. SFTP into the Apache Server for newtFire. File directories and their association with web URLs.

TEI Conference
Week 6 In Class Due Next Time

M 10-03

The CSS Box Model, positioning, and controlling layout. What are namespaces and why do they matter? Namespaces and the web. Web browsers and display variations. Server Side vs. Client Side.

  • Read Learn CSS Layout, and consult w3 Schools CSS Reference as you code. (Also, check out Paletton to help think about choosing balanced color schemes. Experiment with writing CSS to control font, layout, color, backgrounds.
  • HTML/CSS Exercise 2 (As with HTML Exercise 1, submit this homework by using FTP to post to our newtFire web server.)

W 10-05

How XML code structure matters for web transforms and delivery: Why we need to navigate XML with XPath. Introducing XPath: Paths, Axes.

  • First, carefully read our Introduction to XPath: Follow the XPath! As you read, try experimenting with the XPath expressions on our page, by downloading the explainXPath.html file, opening it in oXygen, and experimenting in the XPath window with some of our expressions. Then, move on to Xpath Exercise 1.
  • XPath Exercise 1

F 10-07

Regular Expressions Exam.

Using XPath to climb trees—up and down and side to side. Predicate expressions: [ ]. (Grouping) and [Position()]. XPath syntax: some tricks.

Week 7 In Class Due Next Time

M 10-10

XPath Functions: some common functions we use and how to write them: count(), not(), distinct-values(). XPath for the text() node to grab strings: string-join(), contains(string 1, string 2).

Using Regular Expressions in XPath.

W 10-12

Work on XPath and manipulating text strings. Using Regular Expressions in XPath.

F 10-14

writing an XPath-based Schema language: Schematron, and how we use it with Relax-NG

Examples of Schematron in our projects

Presentation in Pittsburgh
Week 8 In Class Due Next Time

M 10-17

Fall Break: Monday classes meet on Tuesday this week.

Project Midterm

T 10-18

W 10-19

Introducing XSLT (eXtensible Stylesheet Language Transformations). XSL Transformations from XML to XML, and from XML to HTML. Namespaces

Where we use XPath, and where we don’t use XPath in XSLT.

Identity Transformation

F 10-21

XSLT to HTML: How it works.

Week 9 In Class Due Next Time

M 10-24

XSLT: XPath and XPath patterns. Working algorithmically.

W 10-26

XSLT: Push and Pull. Attribute Value Templates


F 10-28

Guest Speaker: Raffaele Vigliante visits us from the Maryland Institute of Technology in the Humanities (MITH) to speak on MEI (Music Encoding Initiative) and XSLT to study music and walk us through a couple of in-class exercises with MEI. Please open the XML files in the list below in oXygen when you arrive, or at the beginning of class.

Week 10 In Class Due Next Time

M 10-31


W 11-02

XSLT. Coding (and Extracting) Metadata. Working with Metadata in TEI headers

XSLT Exercise 7

F 11-04

XML that makes graphics: SVG (Scalable Vector Graphics). Drawing elements, and screen grid coordinates.

Introduce with w3Schools SVG Tutorial.

Week 11 In Class Due Next Time

M 11-07

SVG from XSLT, working with variables to plot coordinate space

W 11-09

more on XSLT to SVG and working with variables

F 11-11

Work on SVG Exercise: How to stack the bars

Project Development: Review Project Guidelines

SVG Exercise 3, continued: finish the assignment

Week 12 In Class Due Next Time

M 11-14

Embedding SVG on an HTML page.

  • SVG Exercise 4: Produce SVG for your project from XSLT. Place your SVG on a web page and style with CSS. Be sure to associate the relevant files and upload to Courseweb all the necessary files for us to view your pages.
  • Read Obdurodon's Introduction to Javascript

W 11-16

How JavaScript works, and how to write it.

Server Side Includes and Javascript Exercise 1:

F 11-18

More JavaScript! Writing JavaScript functions.

Week 13 In Class Due Next Time

M 11-21

Projects and Portfolios

JavaScript with SVG for Dynamic Activity on an Image

JavaScript, SVG, and CSS with your HTML: Putting it All Together

JavaScript Exercise 3: JavaScript with SVG

W 11-23 to F 11-27

Thanksgiving Recess: No Classes.

Week 14 In Class Due Next Time

M 11-28

Projects and Portfolios: Work with Course Project Guidelines; Choose a Creative Commons License

JavaScript, SVG, and CSS with your HTML: Putting it All Together

Project development

W 11-30

Web Development: Checking with w3c Markup Validation Service

Set Project Presentation Schedule

Project development

F 12-02

Web Development: Projects

Project development, Prepare presentations.

Week 15 In Class Due Next Time

M 12-05

Project Review and Presentations

GitHub Issues: (For everyone but the project presenters for today): Post a review, as detailed as possible for a project team other than your own; a project that was presented today.

W 12-07

Project Presentations

GitHub Issues: (For everyone but the project presenters for today): Post a review, as detailed as possible for a project team other than your own; a project that was presented today.

F 12-09 (Last Day of Classes)

Project Presentations

GitHub Issues: (For everyone but the project presenters for today): Post a review, as detailed as possible for a project team other than your own; a project that was presented today.

Thurs. 12/15 by 11:59 PM

Projects due.