NewtFire logo: a mosaic rendering of a firebelly newt
newtFire {dh}
Maintained by: Elisa E. Beshero-Bondar (eeb4 at psu.edu) Creative Commons License Last modified: Wednesday, 11-Sep-2024 04:51:14 UTC. Powered by firebellies.

Fall 2024 Syllabus (Schedule): Classes meet M W F 10:10 – 11am in Lilley Library 201A

Read the Course Description

The Course Description page contains a detailed explanation of course policies and the basis for grades.

Jump Down to the Schedule

The button jumps to the closest day to today's date. Review the schedule as we get started to get a sense of how this course will work on a daily basis.

Tools and Resources

Download and install the following software on your own personal computer(s) as we start the course. These software tools are also available in our campus computing labs.

  1. <oXygen/>. The DIGIT program has purchased a site license for this software, which is installed in Kochel 77, Lilley Library, and other classrooms in Burke and Witkowski where students are taking DIGIT classes this year. 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 Canvas.
  2. Zoom: Make sure your Zoom installation is up-to-date, and you are ready to connect. (We will use Zoom when we need it for office/project meetings.)
  3. Slack: https://slack.com/help/articles/218080037-Getting-started-for-new-members). Download and install the Slack chat client, configuring your account to use use your Penn State email address (the official address, which looks like xyz123@psu.edu, and not an alias based on your name that you may have set up), so you can join our Slack workspace: DIGIT-coders. When you receive an invitation to join this workspace you should accept.
Resources for class:

Schedule

This schedule is subject to revision. Stay alert for updates and announcements of significant changes posted on Canvas.

Week 1 Class topics Do before class

M 08-26

  • Welcome! Introduction to the course.
  • Intro to XML and "plain" text in the oXygen XML Editor.
  •  Introduce XML Exercise 1 (due Wed. 8/26):
  • What happens when text-generative AI writes markup code, and when/how we'll be working with AI in this class.
  • Is typing a challenge? (Recent Wall Street Journal headline: “Gen Z-ers are Computer Whizzes. Just Don’t Ask Them to Type” (2024-08-24. A web game to help with typing more accurately with all your fingers on a QWERTY keyboard.
Respond to Dr. B’s Poll (see Canvas / Penn State email).

W 08-28

Review and discuss coding of the letter for XML Exercise 1. Elements, attributes, comments, escape characters, and "pretty-printing" in <oXygen/>. How file systems recognize XML documents (File extension, and XML declaration line). Introduce Pierazzo video and XML Exercise 2.
  • Install oXygen XML Editor and add our license key if you have not done so already.
  • Read my Introduction to XML, open a new XML file in oXygen, and experiment with the code in the tutorial: Can you tell what makes markup well-formed or not?
  • Complete XML Exercise 1

F 08-30

Discussion of Pierazzo's introduction of XML. Discussion of recipe XML homework, XML data and metadata. Document sources. Coding attributes and self-closing elements. Example of code used for visualizing: Map of Early Modern London Project Introduce XML Exercise 3
Week 2 Class topics Do before class

M 09-02

Labor Day Holiday: No classes.

W 09-04

Discussion of XML homework. How to work with distinct identifiers: @xml:id attributes and pointer attributes (#): Prosopography lists. Self-closing elements.
  • Read Obdurodon’s You aren’t a beginning XML developer anymore
  • Complete XML Exercise 3: Mark up a text of your choice: any text (or portion of a text) with a manageable size for this assignment, and foreign languages welcome! 
  • Haptics of Coding Canvas discussion: Try out the typing game and comment on what you notice about the challenges of writing pointy brackets and weird characters we use in coding.

F 09-06

Discussion of The Ballad of Booker T.: Multiple ways to encode a poem and manuscript information. Overlapping hierarchies
Week 3 Class topics Do before class

M 09-09

GitHub and Shell orientation: Working with the Git Bash Shell (Windows) and Terminal (Mac and Linux)
  • XML Exercise 5: Revise your coding for XML Exercise 4 to change something significant about how you represent the metadata of this document, and try the optional challenge in the assignment to represent how Hughes revised one or two of his lines in the poem.
  • Complete GitHub Exercise 1: If you don't have a GitHub account yet, you'll create one. ALL students, complete this exercise by requesting to be added to our class textEncoding-Hub.
  • Get connected with our DIGIT coders chat: Install Slack on your computer / mobile devices and set up your profile using this Slack Guide for New Users : Join the DIGIT-Coders Slack (link expires in two weeks), and set up your profile display name so the class can recognize you.

W 09-11

Working with git and GitHub as a code developer. Introduce class GitHub (textEncoding-Hub) and how we will interact with it. Students join the class textEncoding-Hub. Intro to GitHub markdown. Markup vs. markdown. Explore GitHub markdown for writing issues, including code-blocks.
  • Complete Git Exercise 2. Send a link to your personal GitHub repo to me on Canvas (Assignments) To help with this exercise:
    • Watch my short (15 minute) video showing how to git pull in changes, and the three-step of git add, git commit, and git push.
    • Review our short list of Git Commands to pull, commit, and push changes to your personal GitHub repo and/or to the textEncoding-Hub.
    • Set up your local Git Config in your shell, and your Personal Access (Developer) Token for GitHub
    • (Optional: good to try:): Watch / work with Set up a Git Bash Profile (short video how-to): (This is convenient for you, and more command line knowledge).

F 09-13

Review the XML Pre-test exercise. Issue the take-home XML Test on Canvas and Emily Dickinson Project discussion.
  • GitHub Exercise 3: Clone and push files to textEncoding-Hub and to your personal Repo
  • Complete the XML-Pretest exercise
Week 4 Class topics Do before class

M 09-16

  • Git/GitHub review: In-class pull-push practice.
  • Seven Days of Git/GitHub. Always git pull before you start work in a shared repo!
  • Emily Dickinson discussion
  • Validation of XML vs. Well-formedness

W 09-18

Validity for a project: what is a schema? How to write a Relax NG schema and how to describe XML elements, attributes, and their contents like an architect’s blueprint. The interesting tag soup of mixed content.

F 09-20

Writing Relax NG: Technical details and big picture issues. Introducing datatypes, rules for mixed content, attribute value options, datatypes. Practice with sequence indicators, options, grouping.
Week 5 Class topics Do before class

M 09-23

  • Relax NG Exercise 2: Select an XML homework assignment you completed. Inspect your encoding (and review my comments if available). Then determine how you might want to change it to make it more systematic and efficient. Your code should feature attributes and apply datatypes, and mixed content. Write Relax NG and modify your XML so that it is valid against your schema plan.
  • GitHub practice

W 09-25

  • Introduce Semester Project options / proposals
  • Getting / giving help on the DIGIT-Coders Slack:
    • How to ask good questions and get help!
    • Slack practice with code blocks / markdown
  • Grouping and mixed content. Debugging Relax NG
  • Relax NG Exercise 3: Choose a new document (any genre, any language, manageable size for homework, interesting to model): Try writing a schema first, and then coding to fit the schema. (Edit both the XML structure and the Relax NG rules as you go.)
  • GitHub practice

F 09-27

Relax NG review / debugging.
  • Repair any broken Relax NG syntax and/or XML validation issues on previous homework submissions.
  • GitHub practice
Week 6 Class topics Do before class

M 09-30

Form semester project teams! Initiate project milestones, launching team GitHub repos.

W 10-02

  • Review Relax NG Pre-Test
  • Specialized community schemas: TEI, MEI, CBML: Applying these in projects
  • Working with xsd:ID, xsd:IDREF, and xsd:IDREFs
  • Dates, times, numbers and datatypes: Looking Stuff Up
  • Relax NG Exercise 4 / Pre-Test: exploring more datatypes
  • Repair any broken Relax NG syntax and/or XML validation issues on previous homework submissions.
  • Project Milestone 1: (end of day)
    • Team leaders: create GitHub repo for your team and invite your teammates and Dr. B (as @ebeshero) to your repo
    • Establish a time and means for regular weekly meetings within your project groups. Set up a Slack channel for your project in the DIGIT-Coders Slack and invite your teammates and Dr. B

F 10-04

  • Issue Relax NG Test
  • All the markup languages! How does HTML relate to XML? Why you don't need to write a schema for HTML
  • HTML and XML in a GitHub repo: How we will work with both: Tour of student projects.
  • Introduce HTML Exercise 1 for GitHub Pages in your GitHub repo.
Week 7 Class topics Do before class

M 10-07

No class meeting (project teams can meet). Dr. B is attending the TEI Conference in Buenos Aires this week Work on HTML Ex 2

W 10-09

Zoom class: Dr. B in Buenos Aires and special guest, Dr. David J. Birnbaum (Professor Emeritus, University of Pittsburgh)

F 10-11

Zoom class with special guest, David J. Birnbaum: Introducing XPath!: Explore XPath DHSI Tutorial Part I (Introduction to XPath in eXist-db and oXygen), Parts A and B: following instructions and peeking at the answers.
  • Project Milestone 2: markup, schemas, project web launch
Week 8 Class topics Do before class

M 10-14

XPath DHSI Tutorial: Part I C through E in class together

W 10-16

Querying XML with XPath. Searching for nodes on axes, and setting predicates.
  • XPath Exercise 1

F 10-18

  • XPath Predicates as boolean filters (using and, or and the not() function)
  • Revisiting XML markup decisions, based on what XPath can show.
  • XPath math: min, max(), sum().
  • XPath Exercise 2
  • Finish/revise incomplete HTML exercises if necessary and continue tinkering with HTML and CSS on your GitHub Pages sites.
    • Project Milestone
Week 9 Class topics Do before class

M 10-21

XPath string functions:
  • Handling only one node at a time: contains(), matches(), translate(), replace(), string-length(). Cutting a string in parts: tokenize(); taking substring-before() or substring-after()
  • Bundling up a sequences of strings: string-join()
  • XPath resubmissions: If you have not done so already, review your submissions for XPath 1 and 2 against posted solutions and add comments and alternative XPath expressions for anything you missed. Alternative XPath expressions would be: think of a different, related node or piece of information to look for in the XPath, and try looking for that based on what you learn from the posted solution.

W 10-23

  • Review XPath string functions exercise
  • Applying XPath in Project Code Inspection: Introducing Schematron
  • How Schematron is different from Relax NG. Asserts vs. reports. Associating Schematron files with XML, Schematron workflow.
  • XPath Exercise 4 (String functions)

F 10-25

Schematron: adjusting the rules, patterns.
  • Schematron Exercise 1
Week 10 Class topics Do before class

M 10-28

No class meeting (project teams can meet) Dr. B is guest-lecturing at U. Tennessee Knoxville
  • Project Milestone

W 10-30

Debugging Schematron homeworks, applying Schematron in projects
  • Schematron Exercise 2

F 11-01

Introducing XSLT (eXtensible Stylesheets Language Transformations). XML to XML, XML to HTML. Namespaces. Setting up oXygen to write XSLT and saving as .xsl. Writing your first XSLT stylesheet transformation.
Week 11 Class topics Do before class

M 11-04

How XSLT template matches work. XSLT to create HTML, trimming the tree.

W 11-06

XSLT to HTML: Making an HTML reading view for semester projects.

F 11-08

Review XSLT and next project milestone. Writing good code documentation in your GitHub repo.
  • For XSLT-to-HTML review, watch Dr. B's video Writing XSLT to Process (TEI) XML and Output HTML. Review your first two XSLT submissions and make corrections. Resubmit these with your comments/questions in the Canvas submission points for XSLT Ex 1 and 2.
  • Semester Project Milestone
Week 12 Class topics Do before class

M 11-11

  • Putting the pieces together: Workshopping XSLT, HTML, CSS.
  • Modal XSLT: processing the same nodes in multiple ways.

W 11-13

Using sort() to sort your output. Internal links on an HTML page, from XSLT.

F 11-15

  • Review / discuss XSLT over collection: linking and sorting. Introduce Creative Commons. Pulling and highlighting interesting data for project sites. Planning how to style your output; looking stuff up.
  • Issue XPath/XSLT Take-Home Test
  • XSLT Exercise 5: adding internal links, sorting, and styling the collection output with CSS
Week 13 Class topics Do before class

M 11-18

XSLT, HTML, CSS for displaying images and text Work on XSLT test and Project Milestone

W 11-20

Preparing the reading view with images and text. Navigating the site. Styling considerations
  • Exercise: XSLT/HTML/CSS with Images (combined with Milestone 4)
  • Project Milestone 4 due by the end of the day

F 11-22

Week 14 Class topics Do before class

Sun 11-24 to Sat 11-30

Thanksgiving Holiday Have a peaceful and productive week!
Week 15 Class topics Do before class

M 12-02

CSS Flex and Grid for Reading View Layouts:
  • Semester Project Milestone

W 12-04

CSS Flex and Grid continued. Taking stock of projects:
  • Documentation and reflection work: writing about what isn't there, assessing what could come next.
  • Linking the code view of your repo to your GitHub Pages site
  • Project work!

F 12-06

  • Planning DIGIT works presentation: expectations and how to prepare
  • Review project completion expectations (projects due during Finals Week)
  • Permissions, licensing, crediting sources, documenting your project team work
  • Choose, embed, post a Creative Commons License
  • Project work!
Week 16 Class topics Do before class

M 12-09

  • Documenting your project coding on the website
  • Project development sprint!
  • Penultimate Semester Project Milestone

W 12-11

Project development sprint!
  • Preparing for presentations and completing the projects

F 12-13

Last day! DIGIT Works presentations Prepare to share and discuss your project work with the class / DIGIT Works.

W 12-18

Semester projects due by 11:59pm.

Finish developing projects, and send a post to me on GitHub and Canvas to indicate your team is finished.