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: Monday, 15-Apr-2019 17:36:26 UTC. Powered by firebellies.

Spring 2019: Classes meet M W F 11 - 11:50 AM in 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:
      • 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, 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.
Class Web Resources Explanatory Guides and Exercises: Complete List
Week 1 In Class Due Next Time

M 1-07

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

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

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

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

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

GitHub Practice (starting today for seven days): 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. On alternating days, push to the other repo (if you pushed to your personal repo today, tomorrow you will push to the DHClass-Hub). Try cloning repos on multiple computers that you may be using through the semester (including computer lab machines on campus). 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.

W 1-16

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 your schema 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.
  • Continue GitHub Practice (see M 1-14 assignment above).

F 1-18

Add/Drop period ends.

Relax NG: mixed content, data types.

Quick tour of course projects with strong research questions developed by coding students at two Pitt campuses in the past few 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. Work with attributes, datatypes, and mixed content in your schema.

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

Week 3 In Class Due Next Time

M 1-21

Dr. Martin Luther King’s birthday observance: No classes.

Continue (and conclude) GitHub Practice (see M 1-14 assignment above).

W 1-23

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

Course projects, further discussion. Relax-NG issues.

Collect info for personal and project webspace on newtFire.

  • 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. Work with attributes, datatypes, and mixed content in your schema.
  • DHClass-Hub Post and Discussion on Project Proposals:
    • Beginning from today through M 1-28: 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 student 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 until class time on M 1/28 when we will form project teams.
  • Assignment for Dr. B: Set up and test student web space on NewtFire now.

F 1-25

Review Relax NG issues.

Coding for analysis: discussion of XML modeling for research questions. Network Analysis and Mapping with XML: Discussion of XML projects designed to explore networks: Tarantino, Akira, Hamilton, Thalaba.

  • Post a project proposal on DHClass-Hub if you have not done so already. Respond to another student's project proposal.
  • Bad Graphs Reading and Discussion: Read A short tour of bad graphs and join our GitHub discussion exercise, which involves your posting examples of biased or otherwise problematic graphs you find on the web.
Week 4 In Class Due Next Time

M 1-28

Form project teams.

Review bad graphs discussion. Ambitious graphs: See A Tour Through the Visualization Zoo.

Review Relax-NG: common issues in homeworks.

  • Project Checkpoint 1: New project team leaders: initiate team GitHub repos and invite team members and instructors to join. Push content to your repo to initiate the project, such as a readme markdown file. Post and respond to the first issue(s) on your team repo, to (at least) schedule regular meeting times. Team members: respond to issues, help find a time to meet, and clone team repos.
  • Review our comments on your Relax NG homeworks and practice writing Relax NG in preparation for the Relax NG test.

W 1-30

Project discussion / initiation time in class. Review of Relax NG issues, initiation of first take-home test (Relax NG).

F 2-01

Class Cancelled due to Abominable Snowstorm.

Week 5 In Class Due Next Time

M 2-04

Introducing up-conversion with Regular Expressions: Using Find & Replace in <oXygen/>: hands-on exercise with Chocolate Chip Cookies recipe on DHClass-Hub and Regex Exercise 1: Shakespeare's Sonnets

W 2-06

Regular Expressions: thinking algorithmically. Selecting for what’s not there. Simplifying overcomplicated expressions.

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

  • Project Checkpoint 2: Establish a clear file directory structure for GitHub, ensure all project team members are working consistently. Establish a project schema and associate that schema with project XML files in the repo. All team members work with and correct XML markup applying the project schema.
  • Regex Exercise 2: Pacific Voyage Narrative
  • Read our Introduction to XHTML (and HTML).

F 2-08

Building on the Web: HTML and CSS. Introduction to your web space on NewtFire and the index.html page

Hands-on: SFTP to NewtFire, association with GitHub.

Mindful file directory management: File directories and their association with web URLs.

Week 6 In Class Due Next Time

M 2-11


  • Web browsers and display variations
  • CSS Box Model
  • Controlling page layouts: Flexboxes tutorial, with simple examples.
  • 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.)

W 2-13

HTML and CSS continued: Positioning and controlling layouts with HTML div, section, span, and CSS flex. Troubleshooting Server Side Includes

Review Regex issues in preparation for take-home test.

  • Project Checkpoint 3:
    • Some team members work on developing page(s) for the project website, creating navigation menu (using a SSI), and working with section, div, and span elements. Try using CSS flex to control your horizontal layout. Work out a file directory structure for the GitHub repo to separate project website files from XML markup.
    • Others concentrate on completing markup, up-converting files to project XML with regex (as needed), and refining the project schema.

F 2-15

Project meeting time in class; completion of Project Checkpoint 3.

Review and take stock of technologies learned so far. Preview of what's next: XPath. Initiate Regular Expressions Take-Home Exam

  • Test 3 (take-home): Regular Expressions
  • Preview the Introduction to XPath in preparation for the next unit.
Week 7 In Class Due Next Time

M 2-18

Navigating XML with XPath: Introducing the XPath window in <oXygen/>, functions, axes, path steps /, and predicate filters [ ]. Hands-on: 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

W 2-20

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

F 2-22

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

Preview functions with regular expressions in XPath.

Week 8 In Class Due Next Time

M 2-25

Surgical precision with XPath on text strings: regular expressions in XPath functions

XPath Exercise 4

W 2-27

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

Hands on: learning to write XQuery: collections and documents, queries and FLWORs

F 3-01

  • 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/>
Week 9 In Class Due Next Time

M 3-04

  • Review and troubleshoot XQuery Ex 2: FLWOR for-loops and outputs.
  • Saving and Accessing files in the Newtfire eXist-db: set up individual and team project directories.
  • Introduce Project Checkpoint 4: Markup Analysis Sprint
  • XQuery Exercise 3: Upload one or more project files to the eXist-db database. Write XQuery to output HTML useful for your project, or work with the banksy directory. Save your query and, eventually, when your output is good, save the output to view from your personal directory following our model in 2019_ClassExamples. You must use a for-loop, and produce an HTML file containing a list and/or table of information.
  • Prepare for Network Analysis: 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.
  • Read An Introduction to Network Analysis and Cytoscape for XML Coders

W 3-06

XQuery from eXist to Web: Extracting from the XML database to publish in 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-08

Withdrawal deadline.
  • XQuery to Network Analysis: Check for problems: TSV data extracted from XML.
  • Importing to Cytoscape and running the Network Analyzer.
  • XQuery to Network Analysis: Exercise, Part 2
  • Project Checkpoint 4: Analysis Sprint: Complete as much of your project markup as you can, load good files into team project space in eXist-db, and experiment with extracting data, looking for patterns, visualizing networks (as applicable).
Week 10 In Class Due Next Time

M 3-11 - F 03-15

Spring Break: No classes. Project Midterm Sprint
Week 11 In Class Due Next Time

M 3-18

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

Project class time to complete Checkpoint 4. XQuery in Projects

Preview Schematron: Cleaning up project code with help from XPath

W 3-20

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

F 3-22

Project application of Schematron. Project meetings. Dr. B will be lecturing on network analysis at the Pittsburgh campus
  • Schematron Exercise 2: Write Schematron to refine and correct messy or problematic code for your project team. Submit two things: 1) your Schematron file, and 2) a sample of project XML code to show how you are capturing errors.
  • Preview our Introduction to XSLT in preparation for the next class.
Week 12 In Class Due Next Time

M 3-25

  • 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

W 3-27

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.

F 3-29

Review/Consultation/Correction of XSLT Ex 2.

Modal XSLT and HTML with internal links for site navigation. Preview XSLT Ex 3.

XSLT Exercise 3
Week 13 In Class Due Next Time

M 4-01

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

Introductory Slideshow. and w3Schools SVG Tutorial.

W 4-03

XQuery to SVG: Pulling data for visualizing.

Choosing visualization formats: Timelines

F 4-05

Review of SVG timeline assignment.

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

SVG Exercise: Project XQuery to SVG: Plot a clear, simple, legible, labelled graph.
Week 14 In Class Due Next Time

M 4-08

Putting the pieces together: SVG and HTML. Introducing JavaScript, the DOM, JavaScript event listeners and functions.

JavaScript Exercise 1

W 4-10

  • Working with global variables and for loops in JavaScript. JavaScript with CSS over SVG
  • Project Visualization and Mapping needs: discussion
JavaScript Exercise 2

F 4-12

Project Meeting Time. (Dr. B is in Pittsburgh.)

Project Development, prepare presentation material.

Week 15 In Class Due Next Time

M 4-15

JavaScript? or More SVG/Visualization

Projects and Portfolios: Guidelines for Submission. Creative Commons Licenses

Web development for Project Checkpoint 5

W 4-17

Project Checkpoint 5: Project presentations in Oakland. Carpool info.

F 4-19

Last day of classes. Project presentations in Oakland. Carpool info.

Thurs. 4/25 by 11:59 PM

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