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: Thursday, 05-Apr-2018 20:02:36 UTC. Powered by firebellies.

Spring 2018: Classes meet M W F 10:30 - 11:20 AM, 136 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/> XML Editor. 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, NS, 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 1-08

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 1-10

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

F 1-12

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 1-15

Martin Luther King’s Birthday: No classes.


W 1-17

Overlapping hierarchies. Document Analysis and Coding: Group Exercise with Kubla Khan

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

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.

UX Discussion on DHClass-Hub Choose one of the following digital archives to explore, find the appropriate discussion thread on the DHClass-Hub, and write a post discussing: 1) how visual aids are used to convey information on the site, and how well (or badly) do these work? What seems unclear to you, and/or what seems to work really well? 2) how effective is the (“UX”) in navigating at least one or two significant areas of the site? (Respond to each other as the thread develops.)

Read Intro to Relax NG.

F 1-19

drop-add period ends

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 and your XML file to Courseweb.
  • Review XML syntax and read and work with the Intro to Relax NG tutorial as you work on Relax NG Ex 1.
Week 3 In Class Due Next Time

M 1-22

Relax NG: mixed content, data types. Course projects: discussion and tour. Developed by coding students at two Pitt campuses in the past couple of years.

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.

DHClass-Hub Discussion of UX and Project Research Questions for Pitt-Greensburg and Pitt-Oakland student projects

W 1-24

Relax-NG: review of tricky syntax. Course projects, further discussion. Network graphs: introduction.

  • 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 Discussion: Network Analysis Read my blog on an XML-based network analysis project I am working on: Spectacular intersections of place in Southey’s Thalaba the Destroyer and take part in a DHClass-Hub Discussion to reflect on the network analysis represented here and how it works, what patterns it might be revealing, and what questions or ideas it raises for you regarding digital methods to analyze texts.
  • DHClass-Hub Post and Discussion on Project Proposals:
    • Beginning this weekend, through M 1/29: Post proposal ideas for team projects to work on this semester. 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.
    • Each of you must respond 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 M 1/29 when we will form project teams.

F 1-26

Collect info for personal and project webspace on newtFire.

Network Analysis and Mapping with XML: Discussion of Thalaba project and applications of networks.

Week 4 In Class Due Next Time

M 1-29

Graphing, Visualizations, Validity. See A Tour Through the Visualization Zoo.

Review of Relax-NG

Form project teams

If time, introduce regular expression matching (Regex)

Review our comments on your Relax NG homeworks and practice writing Relax NG in preparation for test.

Read our Intro to Regular Expressions and start looking at the Regular Expressions Quick Start in prep for next class.

Discussion Board posts and responses on project project proposals

W 1-31

Test 2: Relax NG

Up-Conversion with Regular Expressions: Using Find & Replace in <oXygen/> (class exercise)

F 2-02

Any issues with FTP setup?

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

Week 5 In Class Due Next Time

M 2-05

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

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

W 2-07


SFTP vs. GitHub.

Mindful file directory management.

F 2-09

What are namespaces and why do they matter? Namespaces and the web. Web browsers and display variations. Server Side vs. Client Side. Server Side Includes (SSIs) and setting permissions for them to work.

  • 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, and do not follow standard homework naming conventions.
Week 6 In Class Due Next Time

M 2-12

The CSS Box Model. Positioning, and controlling layout with HTML div, span elements and CSS flex.

Regular Expressions Take-Home Exam (Projects)

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

  • HTML Exercise 3: Implement div (or section) and span elements and try using flex in your HTML pages on newtFire. Teams: create a project webpage if you have not done so already.
  • 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

W 2-14

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

F 2-16

XPath Functions: some common functions we use and how to write them: count(), not(), distinct-values().

Using Regular Expressions in XPath.

Week 7 In Class Due Next Time

M 2-19

Introducing XQuery and the eXist-db on newtFire

Writing XPath in eXist-db

XPath String functions. XPath for the text() node to grab strings: string-join(), contains(string 1, string 2).

Learning to write XQuery: collections and documents, queries and FLWORs

W 2-21

  • XQuery: Writing FLWOR statements and outputting HTML lists and tables
  • Outputting files and saving them to the eXist-db database for previewing
  • XQuery online and offline: in eXist and in <oXygen/>

F 2-23

  • Review XQuery Ex 2: FLWOR for-loops and outputs.
  • Saving and Accessing files in eXist-db
  • Introduce Project Midterm Sprint and preview next week
TEI Council face-to-face: Cologne
  • Apply corrections or revisions to XQuery Ex 2 as needed.
  • Start on Project Midterm
Week 8 In Class Due Next Time

M 2-26

Project Sprint Work Day: Work with your Project Teams and Instructors on Coding Sprint.

TEI Council face-to-face: Cologne
  • XQuery Exercise 3: Upload one or more project files to the eXist-db database, and write some XQuery to output something useful to your project.
  • Read An Introduction to Network Analysis and Cytoscape for XML Coders
  • Install Cytoscape on your computer, together with the appropriate Java package. Note: This is also installed in the campus computer labs, so you may work with it there, too or instead of on your own computer. If you have trouble with the installation, locate Cytoscape in the campus computer labs. Begin familiarizing yourself with the Cytoscape interface, working with Cytoscape session files (with .cys extension) posted in Class Examples, Network-Workshop folder in our DHClass-Hub. Try importing one of my Cytoscape session files (.cys) following our tutorial instructions.

W 2-28

XQuery from eXist to Web: Building the Database into the Web Project

Network Analysis: Network graphs and structured data

XQuery to Network Analysis: generating plain text data (CSV or TSV) for Cytoscape

What we do in Cytoscape: Processing and Filtering; Running the Network Analyzer. Common network statistics: degree centrality, node centrality, edge betweenness, shortest paths

XQuery to Network Analysis: Exercise, Part 1

F 3-02

  • XQuery to Network Analysis: Check for problems: TSV data extracted from XML.
  • Importing to Cytoscape and running the Network Analyzer.
Week 9 In Class Due Next Time

M 3-05 - F 3-09

Spring Break: No Classes.

Work on Project Midterm Sprint, and XQuery to Network Analysis

Week 10 In Class Due Next Time

M 3-12

XQuery to Network Analysis: Survey issues and outputs. Altering and styling network graphs.

XQuery in projects.

W 3-14

Project Work Day; Orientation to TEI ODD-generated schemas customized for projects.

  • Perfect your project schema and markup, with emphasis on consistency and efficiency for addressing project research questions.
  • Complete Midterm Sprint
  • Read our Introduction to XSLT in preparation for the next class.

F 3-16

  • Orientation to XSLT (eXtensible Stylesheet Language Transformations). When we use XSLT vs. When we use XQuery. XSL Transformations from XML to XML, and from XML to HTML. Namespaces
  • The Weirdness that is XSL Template Matching: Where we use XPath, and where we use pseudo-XPath patterns in XSLT.
  • Identity Transformations
Week 11 In Class Due Next Time

M 3-19

XSLT to HTML: How it works: the template rule for the document node, and succeeding template rules.

What happens with xsl:apply-templates, xsl:value-of, and Attribute Value Templates.

W 3-21

Review/Consultation/Correction of XSLT Ex 2.

Modal XSLT. Preview XSLT Ex 3.

Sigma Tau Delta Conference

F 3-23

Project Work Day. Review/Consultation on XSLT Ex 3.

Sigma Tau Delta Conference
  • Homework: XSLT or XQuery on Your Project.
Week 12 In Class Due Next Time

M 3-26

GIS and KML (Keyhole Markup Language for mapping). XQuery to KML Placemarks.

Review saving and accessing XQuery output files in eXist-db

Mapping Pipeline Exercise (XQuery + XSLT to KML)

W 3-28

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

Introductory Slideshow. and w3Schools SVG Tutorial.

Project Discussion: Working with project XML files in eXist-db

F 3-30

XQuery to SVG: Pulling data for visualizing.

Choosing visualization formats: Timelines

Week 13 In Class Due Next Time

M 4-02

Review of SVG timeline assignment.

Project files in eXist

SVG Exercise 3 (Part 2 of the Timeline)

W 4-04

XQuery to SVG: Making line and bar graphs, plotting axes. How to plot stacked bars.

SVG Exercise: Project XQuery to SVG: (Bar Graph or Your Choice)

F 4-06

Project SVG Work Session (Project XQuery to SVG due at the end of the day.)

Week 14 In Class Due Next Time

M 4-09

  • Review Server Side Includes, vs. Client Side processing.
  • How JavaScript works (client side), and how to write it.
  • Writing JavaScript functions: scripting a sequence of events.
  • Together in class: Server Side Includes and JavaScript Exercise 1

W 4-11

  • JavaScript with SVG for Dynamic Activity on an Image
  • JavaScript, SVG, and CSS with your HTML: putting it all together.
  • Testing your website code with the w3c Validator

JavaScript Exercise 3 (CDV): JavaScript with SVG

F 4-13

Projects and Portfolios. Creative Commons Licenses

Web Development: Projects

Week 15 In Class Due Next Time

M 4-16

Web Development: Projects

Project Development

W 4-18

Prep for Project Presentations

Web Development: Projects

Project Development

F 4-20

Last day of classes. Project Presentations in Oakland: arrive at 9am for breakfast: Presentations begin at 9:30am on the posted schedule.

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

Complete projects

Thurs. 4/26 by 11:59 PM

Projects due.