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: Wednesday, 28-Nov-2018 15:31:17 UTC. Powered by firebellies.

Autumn 2018: Classes meet M W F 11 - 11:50 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:
      • FileZilla (This is our favorite client because it behaves the same way across platforms.)
      • WinSCP (This is one we used for a long time, since the 1990s, but we now use SSH and Filezilla more frequently.)
      • SSH Secure Shell Client
    • 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-27

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. Bread recipe

W 08-29

Getting started with GitHub and our DHClass-Hub. Discussion of the XML recipe homework: XML comments and well-formedness, working with attributes, and how to work with <oXygen/>. Introduce student projects from this class.

F 08-31

Discussion of homework, and XML: Well-formedness vs. Validity. XML projects in digital humanities.

Hands-on GitHub: Working with our DHClass-Hub: Open and close Issues, write markdown in Issues help tickets and discussions, access our class examples of code. Command line: pull and push files in Troubleshooting directory.

Week 2 In Class Due Next Time

M 09-03

Labor Day (No classes.)

W 09-05

Overlapping hierarchies. Document Analysis and Coding: Group Exercise with Ozymandias

The concept of “UX.” or User Experience, and discussion of projects.

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”).

Read Intro to Relax NG.

GitHub Practice: Make sure your personal repo is properly set up and cloned to your local computer. Using your Git Bash Shell, practice some basic Git commands to build a habit: Always pull before you push! Then push one file per day either to your personal repo or the DHClass-Hub. For extra credit, push more than twice to your personal repo and the DHClass-Hub. Pull up our quick guide Using Git Through Command Line for a ready reference of commands and look up details in our Guide to Git Shell.

F 09-07

Add/Drop period ends.

Hands-on introduction to schemas with Relax NG: How to write the rules for an XML project

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 and your XML file to Courseweb. Be sure to consult Intro to Relax NG as you work.

Week 3 In Class Due Next Time

M 09-10

Relax NG: mixed content, data types.

Review and discussion of XML rules, Relax NG and modeling XML

  • Relax NG exercise 2: This time, choose a small text (maybe one of the letters from the first week's 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. Be sure to consult Intro to Relax NG as you work.
  • Review XML syntax for test on Wednesday.

W 09-12

Test 1 (in class: 15-20 minutes): XML markup.

Review and discussion of XML rules, Relax NG and modeling XML.

Course projects: Introduction, discussion and tour: digital projects with strong research questions by Pitt students in recent years:

  • 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. As before, be sure to consult Intro to Relax NG as you work.
  • Discussion Post on GitHub Issues: Where Might We Go from Here?
    • Comment on one of the following listed project sites under development. Describe (in your own words) at least one significant topic it seems to be exploring, and reflect on what research the developers might want to investigate next, and/or what ideas it inspires for new projects. 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.
  • Post Project Proposal Ideas (by Friday or over the weekend): follow instructions on DHClass-Hub.
    • Each student should post an idea for the class to consider: a project involving XML markup to be managed within a team of 2-4 students to investigate something we could study and visualize from our markup more effectively with computers than with human reading and description alone. All projects must involve a team of at least two persons, but this first exploratory proposal is an individual assignment.

F 09-14

Relax-NG: review of tricky syntax. Project schemas and community schemas: controlled markup vocabularies: Introduction and discussion of the The Text Encoding Initiative (TEI)Text Encoding Initiative (TEI), and HTML as markup languages.

Optional: GitHub pushing and pulling practice: Pushing problematic code to Troubleshooting in DHClass-Hub.

start Document Analysis and TEI Exercise, Part 1 by doing the background reading in the assignment.

DHClass-Hub Post and Discussion on Project Proposals:

  • Post your project proposal if you have not done so already, following instructions on DHClass-Hub.
  • Beginning this weekend, through Tuesday 9/18 by 5pm: Each of you must respond on DHClass-Hub to at least one of the proposed ideas from another student and indicate suggestions or further ideas. You may respond to more than one if you like, and indicate which proposals interest you to work on.
  • Proposal discussions will run through next week, until class time on W 9/19 when we will form project teams.
Week 4 In Class Due Next Time

M 09-17

The TEI: Why and how we work with it in projects: discussion and examples.

Special guests, and former DH students, Audrey Hunker and Zachary Enick, will discuss their use of TEI in The Hamilton Project and La Lega Toscana.

Work together on TEI Exercise 1. Data and metadata in the TEI document model.

Document Analysis and TEI Exercise, Part 1

Write and respond to course project proposals on DHClass-Hub in preparation for forming project teams next class.

W 09-19

Form project teams!

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

  • Project checkpoint 1:
    • Launch the project GitHub repo and post an issue.
    • Post in the Issues board of your new Project Github your available meeting times to help determine a regular meeting time for your group.
  • Revise Relax-NG exercise(s) if we have asked you to do that.

F 09-21

TEI schema models: from ODD to Relax NG. Relax-NG review. Project ODDs converted to schemas.
Week 5 In Class Due Next Time

M 09-24

TEI, continued discussion: how to work with the TEI Guidelines. The concept of tag abuse.

XML and HTML: shared contexts as controlled vocabularies. The w3c and web standards.

Accessing a web server with a secure shell: joining newtFire, SSH keypairs.

  • Test 2 (take-home): Relax NG
  • Install FileZilla (or other SFTP client) before next class if you have not done so already.
  • Read our Introduction to HTML in preparation for next class.

W 09-26

Building on the Web: HTML and CSS.

Hands-on: SFTP into the Apache Server for newtFire. File directories and their association with web URLs.

F 09-28

  • Web browsers and display variations
  • The CSS Box Model and controlling layout with Flexbox: see tutorial, with newtFire examples:
    • HTML: Open URL in oXygen:
    • CSS: Open URL in oXygen:

Hands on work together with HTML and CSS and posting to newtFire.

  • Consult Learn CSS Layout, Flexbox tutorial, and w3 Schools CSS Reference as you code. (Also, check out Paletton (or hunt for other color scheme generators on the web) to help think about choosing a balanced color scheme for your website. 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.)
Week 6 In Class Due Next Time

M 10-01

Project customizations and boilerplate with Server Side Includes

  • How to customize SFTP (Filezilla)
  • Decide on project website directory names and URLs.
  • Server Side Includes for boilerplate content: Example:
  • Hands on: Add SSI's to your personal or project website.

W 10-03

Up-Conversion with Regular Expressions:
  • Using Find & Replace in <oXygen/>.
  • How to start: inside-out, or outside-in?
  • The "close-open" strategy: The beginning of a thing comes at the end of the previous thing!

Consult our Intro to Regular Expressions and the Regular Expressions Quick Start as you work on the exercise: Regex Exercise 1: Shakespeare’s Sonnets.

F 10-05

Regular Expressions: thinking algorithmically. Greedy Matching.

Week 7 In Class Due Next Time

M 10-08

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

W 10-10

Navigating XML with XPath: Introducing axes, path steps /, and predicate filters [ ]. Navigating Hamlet

  • 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-12

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

Week 8 In Class Due Next Time

M 10-15

Fall Break: No classes. Monday classes meet on Tuesday this week.

T 10-16

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).

XPath Exercise 3: experimenting with functions

W 10-17

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

XPath Exercise 4: Manipulating Strings.

F 10-19

Review and take stock of XPath Exercises.

Review Regular Expressions for the upcoming test.

Preview Schematron.

Week 9 In Class Due Next Time

M 10-22

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

Examples of Schematron in our projects

W 10-24

  • Review Schematron. Schemas to work with Personographies, Placeographies, Prosopographies (Relax NG, ODD with Relax NG, Schematron: Keeping track of xml:ids with Schematron).
  • Introducing XSLT (eXtensible Stylesheet Language Transformations). XSL Transformations from XML to XML, and from XML to HTML. Namespaces
  • Start hands on together in class: XSLT Exercise 1

F 10-26

XSLT to HTML: How it works.

Week 10 In Class Due Next Time

M 10-29

XSLT: XPath and XPath patterns. Working algorithmically.

W 10-31

XSLT: Push and Pull. Attribute Value Templates

F 11-02

How Modal XSLT works.

Processing collections of files

XSLT Exercise 5. Consult Modal XSLT page as you work on the coding exercise.
Week 11 In Class Due Next Time

M 11-05

Sorting with XSLT

HTML with internal links: how it works and how to create with XSLT

XSLT Exercise 6

W 11-07

Writing XSLT for your projects. Review of metadata and TEI, and using XSLT to extract metadata: Example: Digital Mitford letter.

XSLT Exercise 7

F 11-09

Catch-up day; project session. Review for XPath test. Test 4 (take-home): XPath and/or applications
Week 12 In Class Due Next Time

M 11-12

W 11-14

SVG from XSLT, working with variables to plot coordinate space

F 11-16

Continue/ finish SVG Exercise 2: Plotting a Line-Graph with XSLT. More on XSLT to SVG and working with variables.

How to plot an SVG bar graph, and a stacked bar graph with XSLT: preparing variables.

Week 13 In Class Due Next Time

M 11-19

Work together on SVG Exercise: Troubleshooting / stacking bars.

Test 5 (take-home): XSLT

W 11-21

Thanksgiving Break: 11/21 - 11/25
Week 14 In Class Due Next Time

M 11-26

Project Development: Review Project Guidelines

SVG, continued: Making a Timeline from the World War Letters project files: XSLT and SVG files on DHClass-Hub.

SVG Exercise 4: Write XSLT to make SVG from your project's marked-up XML files. Your source XML could either be assembled in a collection on your project GitHub repo, or from a single XML file from your project. (Leave comments in your XSLT file indicating the relative location of your source files and your XSLT.) Submit both your XSLT file and the output SVG on Courseweb.

W 11-28

Introducing JavaScript: How it works, how to write it. How JavaScript (client side) is different from Server Side Includes.

Javascript Exercise 1

F 11-30

More JavaScript: Scripting out JavaScript functions. Associating JavaScript with project files.

Week 15 In Class Due Next Time

M 12-03

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

Creative Commons to license your work for others to access.

Project development. Prepare to present your project.

W 12-05

Project Checkpoint 5: Presentations in class / responses on GitHub.

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-07

Project Checkpoint 5: Presentations in class / responses on GitHub.

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/13 by 11:59 PM

Projects due. Submit projects with a post to the instructors from your project GitHub repo.