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

Autumn 2017: This course material is shared by two University of Pittsburgh campuses this semester:

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

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

W 08-30

Getting started with GitHub and our DHClass-Hub. Discussion of the XML recipe homework: XML Comments, Validity, and Well-formedness, and how to work with <oXygen/>. Web Accounts: collect info.

F 09-01

Discussion of homework, and XML: Validity and Well-formedness. XML projects in digital humanities. Introduce the Digital Mitford Project and student projects from Greensburg and Pittsburgh.

Working with our DHClass-Hub: Opening and closing Issues, writing markdown and joining in discussions (via Issues), accessing our class examples of code, pulling and pushing files in Troubleshooting directory.

Week 2 In Class Due Next Time

M 09-04

Labor Day Holiday: No classes.

W 09-06

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

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

F 09-08

drop-add period ends

Short Test 1 (10-15 minutes): 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 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-11

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

Course projects: discussion and tour: digital archive projects by Pitt students in the past year:

  • 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.
  • Discussion Post on GitHub Issues: Where Might We Go from Here? Comment on one of the 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, the UX of the project site, 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.

W 09-13

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

F 09-15

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

Document Analysis and TEI Exercise, Part 1

Week 4 In Class Due Next Time

M 09-18

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

W 09-20

Form project teams

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.

F 09-22

XML and the Web: HTML and CSS.

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

  • Project Development: You have 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.
  • Consult our Introduction to and HTML, and our Introduction to Cascading Stylesheets (CSS) as you work on the homework exercise.
  • HTML/CSS Exercise 1: NOTE: Do not submit this assignment on Courseweb. Instead, submit this homework by using SFTP to post to our newtFire web server.
Week 5 In Class Due Next Time

M 09-25

Short Test 2: Relax NG

  • Web browsers and display variations
  • The CSS Box Model and controlling layout with Flexbox: see tutorial, with newtFire examples:
    • HTML: Open URL in oXygen: http://newtfire.org
    • CSS: Open URL in oXygen: http://newtfire.org/nfIndex.css
  • Server Side Includes for boilerplate content: Example:

W 09-27

  • FTP Customization and Project Development:
    • How to customize SFTP (Filezilla)
    • Decide on project website directory names and URLs.
    • Project development expectations: project GitHub development, use of Issues board, and website posting.
  • 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!
  • Project team leaders: if you have not done so already, launch your project GitHub Repo, and find and add your team members and instructors.
    • Write a first post on your Issues board to get started and set regular project team meetings.
    • After each project meeting (at least) each team should post on its Issues board about progress and tasks you're working on.
    • If your website directory is ready, post a splash page to get started.
  • 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 09-29

Regular Expressions: thinking algorithmically. Greedy Matching.

Week 6 In Class Due Next Time

M 10-02

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

W 10-04

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

Introducing XPath with Hamlet

Review for Regex Test

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

Short Regular Expressions Test

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

Fall Break: Monday classes meet on Tuesday this week.

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

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

XPath Exercise 4: Manipulating Strings.

F 10-13

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

Examples of Schematron in our projects

Week 8 In Class Due Next Time

M 10-16

W 10-18

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

XSLT to HTML: How it works.

Week 9 In Class Due Next Time

M 10-23

Project Midterms due

XSLT: XPath and XPath patterns. Working algorithmically.

MITH Digital Dialogue

W 10-25

XSLT: Push and Pull. Attribute Value Templates

Review for XPath test.

MITH Digital Dialogue

F 10-27

How Modal XSLT works.

Processing collections of files

Week 10 In Class Due Next Time

M 10-30

Sorting with XSLT

HTML with internal links: how it works

W 11-01

XPath test.

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

F 11-03

Week 11 In Class Due Next Time

M 11-06

SVG from XSLT, working with variables to plot coordinate space

W 11-08

more on XSLT to SVG and working with variables

F 11-10

Pittsburgh: Guest speaker: Dr. Patrick Juola on Stylometry and Authorship Attribution

Work on SVG Exercise: How to stack the bars

Project Development: Review Project Guidelines

Week 12 In Class Due Next Time

M 11-13

Embedding SVG on an HTML page.

TEI Conference
  • 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-15

SVG and Project Development

TEI Conference

F 11-17

How JavaScript works, and how to write it.

How JavaScript is different from Server Side Includes (client side vs. server side).

Server Side Includes and Javascript Exercise 1:

Week 13 In Class Due Next Time

M 11-20

More JavaScript! Writing JavaScript functions.

W 11-22 to F 11-24

Thanksgiving Recess: No Classes.

Week 14 In Class Due Next Time

M 11-27

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

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

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

Set Project Presentation Schedule

Project development

F 12-01

Web Development: Projects

Project development, Prepare presentations.

Week 15 In Class Due Next Time

M 12-04

Project Review and Presentations

  • Project development
  • 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-06

Project Presentations

  • Project development
  • 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-08 (Last day of classes)

Project Presentations

  • Project development
  • 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/14 by 11:59 PM

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