Fall 2022 Syllabus (Schedule)
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.
- <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/project
meetings.)
- 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:
- newtFire: My collection of
teaching resources and student projects.
- textEncoding-Hub: https://github.com/newtfire/textEncoding-Hub Class
GitHub Repository and Issues Board
- Canvas:
https://canvas.psu.edu To submit homework assignments and exams, read
private course announcements, access Zoom class meetings and video recordings.
- 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.
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-22
|
Welcome! Introduction to the course. Intro to XML and "plain" text in
the oXygen XML Editor. Introduce
XML Exercise 1 (due Wed. 8/24): getting started with oXygen and coding
your first XML. |
Respond to Dr. B’s Poll (see Canvas / Penn State email). |
W 08-24
|
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 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-26
|
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-29
|
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
|
W 08-31
|
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-02
|
- 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-05
|
Labor Day Holiday: No classes. |
... |
W 09-07
|
- GitHub file management: pulling, adding, committing, and pushing to your
repo. Talk about / demonstrate GitHub profile configuration
- Join the DIGIT-Coders Slack!
- Emily Dickinson Discussion on GitHub: using markdown.
|
|
F 09-09
|
- 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-12
|
[Dr. B is in England for the TEI Conference: Class via Zoom]
- 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-14
|
[Dr. B is in England for the TEI Conference: Class via
Zoom]
Validity for a project: what is a schema? How to write a Relax NG schema
|
- Work on Take-Home XML Test
|
F 09-16
|
[Dr. B is in England for the TEI Conference: Class via
Zoom] Writing schemas: technical details and big picture issues.
Introducing datatypes. The interesting tag soup of mixed
content . |
Complete Take-Home Test 1 and submit on Canvas by 11:59pm
tonight.
|
Week 5 | Class topics | Do before class |
M 09-19
|
Troubleshooting and debugging Relax NG issues. |
- You may find it helpful to watch my video on Relax NG and how to write it in oXygen and the recording of our last class video. as you work
on Relax NG Exercise 1:
- 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
Good Morning
(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.
|
W 09-21
|
Debugging Relax NG |
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. |
F 09-23
|
Relax NG review, and discussion of crowdsourcing exercise. |
- Repair any broken Relax NG syntax and/or XML validation issues on
previous homework submissions.
- 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.)
|
Week 6 | Class topics | Do before class |
M 09-26
|
Review of major concepts about XML and document data modeling. Relax
NG, datatypes for time and durationPre-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.) |
|
W 09-28
|
XML Datatypes:
- Working with xsd:ID, xsd:IDREF, and xsd:IDREFs
- Connecting the class to DIGIT-Coders Slack:
- How to ask good questions and get help!
- Slack practice with code blocks / markdown
- Dates, times, numbers and datatypes: Looking Stuff Up
- Debugging workshop
|
- Relax NG Exercise 4: exploring more datatypes
- Repair any broken Relax NG syntax and/or XML validation issues
on previous homework submissions.
|
F 09-30
|
Discussion / comparison of class TEI encoding. TEI Header and metadata. |
|
Week 7 | Class topics | Do before class |
M 10-03
|
Jane Ingold gives us a tour of the Behrend Archives at Lilley Library:
Meet at the main (top floor) entrance to Lilley Library. Preview of primary sources and Behrend-focused semester project options |
TEI
Exercise 1: Analyzing Documents with TEI |
W 10-05
|
- Issue Take-Home Test 2: Relax NG
- TEI for coding context information.
- Modeling TEI content and metadata: working with the
teiHeader
- Introduce Semester Project Options
and Sign-up
|
- Before class: complete TEI Exercise 2: Revising, developing, exploring the TEI.
|
F 10-07
|
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-10
|
Introduce TEI customization with ODD. Working with images and text on
text encoding projects. |
|
W 10-12
|
Form Project Teams! Setting up new team project GitHub repos |
|
F 10-14
|
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-17
|
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-19
|
Creating links, associations: absolute vs. relative. Building web
pages in your GitHub repo. |
|
F 10-21
|
[Dr. B is away guest-speaking at Pitt. Class via Zoom]
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-24
|
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-26
|
- XPath Predicates as boolean filters (using
and ,
or and the not() function)
- Revisiting XML markup decisions, based on what XPath can show.
|
|
F 10-28
|
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 10-31
|
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-02
|
- 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-04
|
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-07
|
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-09
|
XSLT to HTML: Making an HTML reading view for semester projects. |
XSLT
Exercise 2 |
F 11-11
|
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-14
|
- Putting the pieces together: Workshopping XSLT, HTML, CSS.
- Modal XSLT: processing the same nodes in multiple ways.
|
XSLT
Exercise 3 |
W 11-16
|
Using sort() to sort your output. Internal links on an
HTML page, from XSLT. |
XSLT
Exercise 4: Modal XSLT over a Collection |
F 11-18
|
|
XSLT
Exercise 5: adding internal links, sorting, and styling the
collection output with CSS |
Week 14: Thanksgiving | | |
Sun 11-20 - Sat 11-26
|
Thanksgiving Holiday |
Have a peaceful and productive week! |
Week 15 | Class topics | Do before class |
M 11-28
|
XSLT, HTML, CSS for displaying images and
text |
Work on XSLT test and Project Milestone
5 |
W 11-30
|
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 12-02
|
- Presentation vs. Semantics: What do we share? What do we miss?
- Checking for website accessibility:
|
XPath/XSLT
Take-Home Test due
|
Week 16 | Class topics | Do before class |
M 12-05
|
CSS Flex and Grid for Reading View Layouts: |
|
W 12-07
|
- CSS Flex and 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
|
Project documentation |
F 12-09
|
DIGIT Works Project presentations run from 11am - 1pm. Students from multiple classes present semester projects. |
Prepare to share and discuss your project work with the
class / DIGIT Works. |
Finals Week (12/12 - 12/16) | Due |
H 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.
|