Spring 2016: Classes meet M W F 10:30 - 11:20 AM, 210 Cassell 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, 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
Week 1 In Class Due Next Time

W 01-06

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 Fri. 1/8: Install <oXygen/> software on your own computers. Instructions and license key posted on Courseweb.
  • Read our Introduction to XML, and read File-Naming Conventions for Courseweb Homework Submissions.
  • First XML exercise for New Students: 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 ForktheCookbook.com? Think about a good system for tagging the file for this long-term situation, and mark up your file accordingly. Experiment with this and write a complete XML file in a way that makes sense to represent the recipe, and try to 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: Can the attributes hold information from the main text, perhaps removing it from the body of the text?) Submit the results on Courseweb, in the folder labelled "Upload Assignments Here," before our next class.
  • Continuing Students:
    • Work on project code or your choice of an interesting XML coding challenge.
    • Help us test-pilot some new methods with GitHub: See instructors for details.
  • By Fri. 1/8 or Mon. 1/11: Read the Obdurodon GitHub tutorial, then 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.

F 01-08

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.

  • XML Exercise 2: Choose the text of one letter from one of the following websites (click through until you see a complete letter), and copy its text into <oXygen/>. Then, mark it up in XML, using your own system of tagging, as seems appropriate, to code the structure and the content of the document. Save and name your document according to the File-Naming Conventions (which hold for all coding homework in this course), and upload to Courseweb. Options:
  • Reading and Discussion Post on GitHub Read Gabrielle Kirilloff, “<Traversing_the_Tree/>” Then go to our class GitHub Issues page to discuss: Discussion Prompts:
    • What perspective does Kirilloff provide on the kinds of XML markup we are learning, the history and context of hierarchical markup, and its potential issues?
    • Consider the examples of overlapping hierarchies in Kirilloff's reading: What ideas are presented for how to deal with these in code, and how effective might these be? Is it possible to write XML to get around the problems raised in these pieces?
    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.
Week 2 In Class Due Next Time

M 01-11

  • Discussion of homework, and XML: Validity and Well-formedness.
  • Document Analysis, Overlapping Hierarchies, and Coding: Exercise with Kubla Khan

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.

W 01-13

The concept of "UX."

XML projects in digital humanities. Introduce some or all of the following Pitt-Greensburg student projects:

Response Paper: Choose one of the following large-scale Digital Humanities projects to explore, and write a response paper addressing 1) what distinctive approaches the site takes to sharing information and visualizing data, 2) whether and how the site shares its methods or information sources behind its visuals, and 3) the effectiveness of the user experience (“UX”) in navigating at least one or two significant areas of the site.

Read Intro to Relax NG.

F 01-15

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 01-18

drop-add period ends T 01-19

Martin Luther King's Birthday: No classes.

. . . .

W 01-20

Relax NG: mixed content, data types. Projects: discussion.

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.

F 01-22

  • 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 next Wed. 1/27: 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 Friday 1/29 when we will form project teams.
Week 4 In Class Due Next Time

M 01-25

Network Analysis with XML: Discussion of Thalaba project

W 01-27

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

Review of Relax-NG

Form project teams (today or F 1/29)

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

F 01-29

Test 2: Relax NG

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

Week 5 In Class Due Next Time

M 02-01

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

W 02-03

  • Amadis in Translation project (GitHub repository): special guest, Helena Bermúdez Sabel. Regular Expressions in the Amadis project.
  • Regular Expressions: thinking algorithmically. Selecting for what’s not there, complicated patterns

F 02-05

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

Week 6 In Class Due Next Time

M 02-08

The Web and its namespaces: HTML, XHTML, HTML5....and CSS. What happens on the server side vs. the client side with JavaScript vs. PHP. Perspective on database servers,

  • 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 02-10

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

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

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 02-17

Guest lecture by Wendell Piez (Piez Consulting Services) about overlapping hierarchies and markup possibilities

F 02-19

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

Examples of Schematron in our (Greensburg) projects

Week 8 In Class Due Next Time

M 02-22

W 02-24

Introducing XSLT and XQuery: how we use each.

Orientation to XSLT (eXtensible Stylesheet Language Transformations). 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 don’t use XPath in XSLT.

Identity Transformations

F 02-26

XPath Exam

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.

Week 9 In Class Due Next Time

M 02-29

Pull vs. Push processing (and why we tend to work with XQuery for Pull processing)

W 03-02

How to make internal links on a webpage with XSLT and AVTs

Introducing XQuery and eXist, the XML database.

F 03-04

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

XQuery online and offline: in eXist and in <oXygen/>

Week 10 In Class Due Next Time

M 03-07 - F 03/13

Spring Break: No Classes

. . . .

Week 11 In Class Due Next Time

M 03-14

XQuery: Writing FLWOR statements and outputting HTML

XQuery Exercise 2

W 03-16

Nested FLWORS and HTML output

Project Discussion

Complete Project Midterm

F 03-18

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

Introduce with w3Schools SVG Tutorial.

Work through the w3schools SVG tutorial to complete the SVG basic and SVG shapes pages. Filters, gradients, examples, and reference are optional.

SVG Exercise 1

Week 12 In Class Due Next Time

M 03-21

Stephen Ramsay is in Pittsburgh this week. See schedule of events.

XQuery: Nesting FLWORS: when and why

XQuery to SVG: Pulling data, choosing visualization formats: Timelines

Saving output in the eXist database

In preparation for Steve Ramsay's visit, read his blog posting on DH and CS, and choose at least one of the following two to continue reading and discussing on our DHClass-Hub:

Post at least twice before Wednesday's class, to reflect and respond to each other about DH and CS and one of the other two short articles by Stephen Ramsay on our DHClass-Hub Discussion of Stephen Ramsay’s work.

W 03-23

Guest presentation by Stephen Ramsay (University of Nebraska)

continued work on SVG Exercise 2 (Part 1 of Timeline)

F 03-25

Review of SVG timeline assignment.

Project files in eXist

SVG Exercise 3 (Part 2 of the Timeline)

Week 13 In Class Due Next Time

M 03-28

XQuery to Network Analysis: generating plain text data for Cytoscape

XQuery to SVG: Bar Graph or Your Choice

W 03-30

Network Analysis Processing and Filtering; Running the Network Analyzer. Common Network stats: degree centrality, node centrality, edge betweenness, shortest paths

XQuery from eXist to Web: Building the Database into the Web 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 my tutorial.

F 04-01

XQuery to Network Analysis: preparing data for import. TSV and CSV formats.

XQuery to Network Analysis: Exercise, Part 1

Week 14 In Class Due Next Time

M 04-04

XQuery to Network Analysis: Working in Cytoscape, filtering data.

W 04-06

  • How JavaScript works (client side), and how to write it.

Server Side Includes and JavaScript Exercise 1

F 04-08

More JavaScript! Writing JavaScript functions.

Week 15 In Class Due Next Time

M 04-11

  • JavaScript with SVG for Dynamic Activity on an Image
  • JavaScript, SVG, and CSS with your HTML: Putting it All Together

Projects and Portfolios. Creative Commons Licenses

JavaScript Exercise 3 [TBD] : JavaScript with SVG

Website Development and Review Exercise [TBD]

W 04-13

Web Development: Projects

Project Design Work

F 04-15

  • Set Project Presentation Schedule
  • Web Development: Projects

Project Design Work

Week 16 In Class Due Next Time

M 04-18

Web Development: Projects

Project Design Work

W 04-20

Project Presentations and Review

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 04-22

Project Presentations and Review

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. 4/28 by 11:59 PM

Projects due.