Fall 2021 Syllabus (Schedule)
Classes meet M W F 11:15am - 12:05pm in Kochel 77. Attend class wearing a face mask
that covers your mouth and nose.
(Until further notice, face masks are required inside all university buildings, regardless
of vaccination status.)
Remember: Your mask protects me, my mask protects you.
This contains a detailed explanation of course policies and the basis for grades.
This link 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.
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.
- <oXygen/>.
The DIGIT program has purchased a site license for this software, which
is installed in Kochel 77 and the Lilley Library computers. 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.
- 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 meetings.)
- No coding experience? Don’t worry! Past students
in this course
who never saw anything like markup or XML code have designed projects (like these) and have even spoken about them at professional conferences! You will learn to develop
your own digital tools and how to manage digital projects as teamwork.
Class Web Resources
Week 1 |
Class topics |
Do before class |
M 08-23
|
Welcome! Introduction to the course. Intro to XML and "plain" text in the oXygen XML
Editor. Introduce XML Exercise 1 (due Wed. 8/25): getting started with oXygen and coding your first XML. |
Respond to Dr. B's Poll (see Canvas / Penn State email). |
W 08-25
|
Review and discuss coding of the Leaves poem 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 XML Exercise
2 (Historic Letter) |
|
F 08-27
|
Discussion of Pierazzo introduction of XML. Discussion of homework, XML
data and metadata. Document sources. Coding attributes and self-closing elements.
Example with Map of Early Modern London Project
Introduce XML Exercise 3 |
|
Week 2 |
Class topics |
Do before class |
M 08-30
|
Discussion of XML homework. How to work with
distinct identifiers: @xml:id attributes and pointer attributes (#):
Prosopography lists. Self-closing elements. |
Complete XML Exercise 3:
- First, revise the code in your XML Exercise 2: Try adding tags and attributes to help
track more specific pieces of information than you marked at first. Try marking people
and places, for example.
- Look for
pseudomarkup to convert into markup
- Choose another letter in the collection from XML Exercise 2 and try to encode it the
same way.
- Submit your revised letter XML and new letter XML (and optional personography/placeography)
on Canvas for XML Exercise 3.
|
W 09-01
|
Discussion of The Ballad of Booker T. : Multiple ways to encode a poem and manuscript information. Overlapping hierarchies
|
XML Exercise 4: Mark up The Ballad of Booker T. |
F 09-03
|
- Introduce class GitHub 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. Command line hands-on navigation, and introduction to git commands:
Clone the textEncoding-Hub to your local computer.
- Introduce discussion assignment on Emily Dickinson projects and reading interfaces
for encoded documents: textEncoding-Hub.
|
|
Week 3 |
Class topics |
Do before class |
M 09-06
|
Labor Day Holiday: No classes. |
... |
W 09-08
|
- GitHub file management: pulling, adding, committing, and pushing to your repo.
Talk about / demonstrate Git Bash Profile / gitconfig.
- Join the DIGIT-Coders Slack!
- Emily Dickinson Discussion on GitHub: using markdown.
|
|
F 09-10
|
- Emily Dickinson Projects: Exploration
- Seven Days of Git/GitHub. Always
git pull before you start work in a shared repo!
- Prepare for XML Test 1: Pre-Test Class Exercise:
git pull from textEncoding-Hub.
- Open oXygen XML Editor. Open a file from textEncoding-Hub > Class-Examples > xmlPreTest
- Open the file inside: ozyMeta.xml in oXygen. (If trouble with git pull, copy and paste
the file into a new XML document from here.)
- IMPORTANT! Save this file OUTSIDE of our textEncoding-Hub, so you don't save over my Class Examples
as you are working. Save to your personal repo or to your Desktop or elsewhere on
your computer!
- Work in oXygen on finding and correcting errors that break XML form. With each error,
document your correction: write an XML comment explaining what you did to correct
the problem.
- Keep making corrections until XML is well formed (and oXygen is green). Do your best!
This is like the exam you will be taking next week.
|
|
Week 4 |
Class topics |
Do before class |
M 09-13
|
- Review of XML Pre-Test, historical perspective on XML, SGML, HTML, and markup languages.
- Look ahead at Relax NG unit
- Issue Take-Home Test 1.
|
- Complete XML PreTest Homework: Push the corrected and documented file to your personal GitHub repo and post the URL to your commit to Canvas for this assignment.
- Complete discussion posts on Emily Dickinson comparison exercise.
|
W 09-15
|
Validity for a project: what is a schema? How to write a Relax NG schema |
- Read Intro to Relax NG and comment on the Prep for Relax NG assignment on Canvas
- Work on Take-Home XML Test
|
F 09-17
|
Writing schemas: technical details and big picture issues.
Introducing datatypes. The interesting tag soup of mixed content . |
- You may find it helpful to watch my video on Relax NG and how to write it in oXygen.
as you work on Relax NG Exercise 1: You will be writing a schema for a different encoding of
Ozymandias than the one we modeled in the last class.
- Make a folder to hold this homework, since it will contain two files. Save the folder using our homework filenaming conventions.
- Open this file containing a fresh encoding of
Ozymandias (open the link, and right-click to save on your computer with your homework, then open in oXygen).
- Open a new Relax-NG Compact syntax file in oXygen, and set your editor in tile view so you can see the goodMorning.xml file next to your schema file. Delete the code in the Relax NG file so you have a blank slate to start with.
- Write a Relax NG Schema in Compact Syntax that models the content of this XML file as you study it. (Save the schema in the same directory with your XML file so you can easily find it.)
- Associate the schema with the XML file (in oXygen go to Document > Schema > Associate Schema, and browse to locate the schema. Click OK and note the new schema line at the top of your XML file.
- Zip (compress) the file directory holding your XML file and the Relax NG schema file, and submit this on Canvas at the upload point for this assignment.
Review XML syntax and consult the Intro to Relax NG as you work on
this, and ask for help on the DIGIT-Coders Slack if you get stuck.
Submit this exercise before class on Canvas, and we will review this together in class.
- Complete Take-Home Test 1 and submit on Canvas by 11:59pm tonight.
|
Week 5 |
Class topics |
Do before class |
M 09-20
|
Trioubleshooting and debugging Relax NG issues. |
Relax NG Exercise 2:
- Make a folder to hold this homework, since it will contain two files. Save the folder using our homework filenaming conventions.
- Open this goodMorning.xml file (open the link, and right-click to save on your computer with your homework, then open in oXygen).
- Open a new Relax-NG Compact syntax file in oXygen, and set your editor in tile view so you can see the goodMorning.xml file next to your schema file. Delete the code in the Relax NG file so you have a blank slate to start with.
- Write a Relax NG Schema in Compact Syntax that models the content of this XML file as you study it. (Save the schema in the same directory with your XML file so you can easily find it.)
- Associate the schema with the XML file (in oXygen go to Document > Schema > Associate Schema, and browse to locate the schema. Click OK and note the new schema line at the top of your XML file.
- Zip (compress) the file directory holding your XML file and the Relax NG schema file, and submit this on Canvas at the upload point for this assignment.
Review XML syntax and consult the Intro to Relax NG as you work on
this, and ask for help on the DIGIT-Coders Slack if you get stuck.
|
W 09-22
|
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.) |
F 09-24
|
Relax NG review, and discussion of crowdsourcing exercise.
|
- Repair any broken Relax NG syntax and/or XML validation issues on previous homework submissions.
- Get started on the Crowdsourcing Transcription exercise:
Choose a resource from one of the options on the assignment and begin transcribing.
|
Week 6 |
Class topics |
Do before class |
M 09-27
|
Review of major concepts about XML and document data modeling.
Relax NG Debugging Class Exercise: Pre-Test on textEncoding-Hub. (Please do not push your files to the textEncoding-Hub but save them somewhere else on your computer, like your personal GitHub or where you do homework.) |
Complete the Crowdsourcing Transcription exercise. |
W 09-29
|
Introduce semester projects. Library Visit to the Behrend Archives.
|
- Repair any broken Relax NG syntax and/or XML validation issues on
previous homework submissions.
|
F 10-01
|
- Introducing the Text Encoding Initiative (TEI): Ways of Knowing in Digital Humanities and TEI (web slides).
- Presentation info vs. Semantics in Markup. Text encoding
initiative: introducing the Guidelines and structure of a TEI document.
Introduce class coding exercises in TEI.
- Issue Take-Home Test 2: Relax NG
Discussion / comparison of class TEI encoding. TEI Header and metadata. |
TEI Orientation Exercise: Read this slide deck:
Overview of Text Encoding and the TEI
and respond on our discussion thread on the textEncoding-Hub. |
Week 7 |
Class topics |
Do before class |
M 10-04
|
TEI for coding context information. |
TEI Exercise 1: Analyzing Documents with TEI |
W 10-06
|
|
- Before class: complete TEI Exercise 2:
- Revise your code from TEI Exercise 1 to make it valid if necessary
- Try changing your approach, or adding some new elements from the TEI that you did not introduce before.
For example, how are you working with the images? Can you find a way to point to the image files from the TEI code?
Or, have you located the TEI elements that help you encode things that are hard to read (hint:
unclear )?
- Consider how to encode dates and other related information
after studying the TEI Guidelines Chapter 13 (Names, Dates, People, and Places)
- Look into how to develop the
msDesc in the teiHeader
- Try coding more content from the calendar sheets
- Complete Take-home Test 2: Relax NG
|
F 10-08
|
Schemas for the TEI with One-Document-Does-It-All (ODD): selecting elements, constraining attribute values. |
complete TEI Exercise 3:
- Read about and work with the TEI Header chapter in the TEI Guidelines: Take a close look at the:
- Suggestion: Read about and work with the
handDesc and handNote elements in the TEI header, and try to apply the @hand attribute
in your code.
|
Week 8 |
Class topics |
Do before class |
M 10-11
|
Introduce TEI customization with ODD. Working with images and text on text encoding projects. |
Catch-up on assignments, respond to comments. Investigate semester project options.
|
W 10-13
|
Form Project Teams! Setting up new team project GitHub repos |
|
F 10-15
|
Photographing and processing images for the project. Image file formats for web projects.
HEIC images (from iPhones): Conversion to jpeg |
|
Week 9 |
Class topics |
Do before class |
M 10-18
|
How does HTML relate to TEI and XML? HTML and file management.
Introduce HTML Exercise 1 for GitHub Pages in your GitHub repo. |
- Read introduction to HTML and review GitHub and git at command line
- Project Milestone 1:
- 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
|
W 10-20
|
Creating links, associations: absolute vs. relative. Building web pages in your GitHub repo. |
|
F 10-22
|
- Take stock of website issues, look ahead at HTML development from XML.
- Introduce XPath: Set XPath 3.1 in oXygen XML Editor.
|
|
Week 10 |
Class topics |
Do before class |
M 10-25
|
Querying XML with XPath. Working with XPath arithmetic operations, searching for nodes on axes, and setting predicates. |
- Read our Introduction to XPath.
- Start working on XPath exercise 1
- Project Milestone 2:
- Set up
docs/ directory and start GitHub Pages from the project repo. Someone on the team posts a splash page for the project site.
- Decide in project teams (if necessary) which documents you are working with, and how you will divide them up among you. Survey your documents and determine what they are about, what makes them interesting.
What kinds of information can you be making available by building a digital archive of this material?
Write this up for this milestone and work together to try to represent this on the website.
- If working with the Behrend Library archive materials, make a start on photographing images for the project.
- Create a space in the project GitHub repo for photos of the documents you are working with.
- Come up with a good system for naming the files (no spaces in the names).
- Finish/revise incomplete HTML exercises if necessary and continue tinkering with HTML and CSS on your GitHub Pages site.
|
W 10-27
|
- XPath Predicates as boolean filters (using
and , or and the not() function)
- Revisiting XML markup decisions, based on what XPath can
show.
|
|
F 10-29
|
Discuss/review semester project milestones. Review XPath Exercise 2 together. XPath math: min , max() , sum() . |
- Complete XPath Exercise 2
- Work on markup and a schema for your semester project, and push updated files to your repo.
|
Week 11 |
Class topics |
Do before class |
M 11-01
|
Introducing 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 11-03
|
- Review XPath Exercise 3.
- Project code review. (Why a good project schema mattes for building a project.)
.
|
- Complete XPath Exercise 3 (String functions)
- Semester Project Milestone:
- Teams make progress on organizing GitHub repos, modeling documents and images in XML.
- Discuss and decide on use of the TEI or Relax NG.
- Each team member prepares some XML for the project, perhaps to propose a model for the documents you are working with.
|
F 11-05
|
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. |
- Read Introduction to XSLT, and watch one (or both) of the following orientation videos on how to set up oXygen to write XSLT:
|
Week 12 |
Class topics |
Do before class |
M 11-08
|
How XSLT template matches work. XSLT to create HTML, trimming the tree . |
- XSLT Exercise 1: an identity transformation
- Review Introduction to XSLT, and (re)watch one (or both) of the following orientation videos on how to set up oXygen to write XSLT:
|
W 11-10
|
XSLT to HTML: Making an HTML reading view for semester projects. |
XSLT Exercise 2 |
F 11-12
|
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 2
|
Week 13 |
Class topics |
Do before class |
M 11-15
|
- Putting the pieces together: Workshopping XSLT, HTML, CSS.
- Modal XSLT: processing the same nodes in multiple ways.
|
XSLT Exercise 3 |
W 11-17
|
Using sort() to sort your output. Internal links on an
HTML page, from XSLT. |
XSLT Exercise 4 |
F 11-19
|
- >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 |
|
|
|
M 11-22 - F 11-26
|
Thanksgiving Holiday |
Have a peaceful and productive week! |
Week 14 |
Class topics |
Do before class |
M 11-29
|
XSLT, HTML, CSS for displaying images and text |
Work on XSLT test and Project Milestone 5 |
W 12-01
|
Preparing the reading view with images and text. Navigating the site. Styling considerations |
- Exercise: XSLT/HTML/CSS with Images (combined with Milestone 5)
- Project Milestone 5a due by the end of the day
|
F 12-03
|
Presentation vs. Semantics: What do we share? What do we
miss? Schema workshop |
XPath/XSLT Take-Home Test due
|
Week 15 |
Class topics |
Do before class |
M 12-06
|
CSS Grid for Reading View Layouts:
|
Project Milestone 5b (due by the end of the day) |
W 12-08
|
- Revisiting CSS Grid for Reading View Layouts: Scaling and Flexibility:
- 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
- Choose, embed, post a Creative Commons License
- Checking for website accessibility:
|
Project documentation |
F 12-10
|
Last day. Project presentations. |
Prepare to share and discuss your project work with the class. |
Finals Week: (December 13-17) |
Do before class |
W 12-15
|
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.
|