Fall 2025 Syllabus (Schedule): Classes meet M W F 2:30 –
                        3:20pm in Kochel 77
                
                
                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, 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.
- 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! You are among friends, and this course is
                        designed for students without a computer science or math background. Past
                        students in this course with very little or no background at all with code
                        have designed projects (like these) and have even spoken about them at professional
                        conferences! By the end of this course, we hope you will be impressed at how
                        much you are able to make and build with your new skills and resources.
                    
 
            
                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-25 | 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-27 | 
                                Visit from Dr. Paul Barrett and team (Waed and Daniela) from the Digital John Norton Teyoninhokarawen project at U. Guelph.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-29 | 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-01 | Labor Day Holiday: No classes. | ... | 
                    
                        | W 09-03 | Discussion of XML homework. How to work with distinct
                            identifiers: @xml:idattributes and pointer attributes (#):
                            Prosopography lists. Self-closing elements. Introduce git and GitHub. |  | 
                    
                        | F 09-05 | 
                                Discussion of document metadata in The Ballad of Booker T.Introduce version control conceptGitHub and Shell orientation: Working with the Git Bash
                            Shell (Windows) and Terminal (Mac and Linux)  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. |  | 
                
                
                    
                        | Week 3 | Class topics | Do before class | 
                    
                        | M 09-08 | Working with git and GitHub as a code developer. 
                                GitHub file management: 
                                        Navigating between and managing multiple GitHub repositories.Pulling, adding, committing, and
                                    pushing to your repos.GitHub profile configuration: what, why, how.
                                    
                                            Introduce class collaboration with the John Norton Teyoninhokarawen project at U. of Guelph, 
                                    with GitHub repository. | 
                                GitHub Exercise 2 To help with this exercise:
                                    Watch my short (15 minute) video showing how to
                                        git pullin changes, and the three-step
                                        ofgit add,git commit, andgit 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). | 
                    
                        | W 09-10 | 
                              
                                Getting used to GitHub and getting help. Solving common problems.Preview Ballad of Booker T.exercise. | GitHub Exercise 3: Clone and push files to textEncoding-Hub and to your personal Repo | 
                    
                        | F 09-12 | 
                              
                                Discussion of The Ballad of Booker T.: Multiple
                            ways to encode a poem and manuscript information. Overlapping
                            hierarchies.Introduce XML TestLaunch GitHub Weekly Practice Series | XML Exercise with Norton Metadata. Push to your GitHub repo. | 
                
                
                    
                        | Week 4 | Class topics | Do before class | 
                    
                        | M 09-15 | Special guests: Dr. Lauren Liebe (Behrend) and Dr. Paul Barrett (U. Guelph): Introduction of John Norton Teyoninhokarawen and the Document Data Modeling challenge with U. GuelphDr. B is attending the TEI Conference in Kraków
                                this week. | 
                                Norton Journal Orientation Exercise 1Start weekly GitHub practice series | 
                    
                        | W 09-17 | XML modeling discussion of Norton’s journal (with special guests). | Norton Journal Orientation Exercise 2: XML | 
                    
                        | F 09-19 | Complete XML test. | XML Test due | 
                
                
                    
                        | Week 5 | Class topics | Do before class | 
                    
                        | M 09-22 | Well-formed vs. Valid XML. Introduction to schemas with Relax NG. |  | 
                    
                        | W 09-24 | 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.Demonstration: Why we do NOT use oXygen’s Generate/Convert schema.
 |  | 
                    
                        | F 09-26 | 
                                Grouping and mixed content.What is causing the red square? Determining sources of errorGetting / giving help on the DIGIT-Coders Slack: 
                                        How to ask good questions and get help!Slack practice with code blocks / markdown | 
                                Relax NG Exercise 2: Select an XML homework
                                    assignment you completed. Inspect your encoding (and any comments you received on the assignment). 
                                    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. | 
                
                
                    
                        | Week 6 | Class topics | Do before class | 
                    
                        | M 09-29 | 
                                Loose vs. tight? What is best for a schema? Who are schemas for? Revisiting the John Norton collaboration. Working with xsd:ID, xsd:IDREF, and xsd:IDREFslist{ }content model, with review ofmixed{ }.Dates, times, numbers and datatypes: Looking Stuff UpIntroduce semester team projects | 
                                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.)Repair any broken Relax NG syntax and/or XML validation issues
                                    on previous homework submissions.GitHub practice series | 
                    
                        | W 10-01 | 
         
                                Review of Relax NG Pretest.Specialized community schemas: TEI, MEI, CBML: Applying these in
                                        projectsIssue Relax NG Test.Project options discussion.
 |  | 
                    
                        | F 10-03 |  | 
                                TEI Orientation Exercise: Read this slide deck: Overview of Text Encoding and the TEIand respond on our discussion
                                            thread on the textEncoding-Hub.Submit repairs and revisions for any previous Relax NG assignments as needed. | 
                
                
                    
                        | Week 7 | Class topics | Do before class | 
                    
                        | M 10-06 | Form semester project teams! Initiate
                            project milestones, launching team GitHub repos. | 
                                Sign up for semester project. If you do not
                                    meet the requirements, meet with Dr. B to help catch up /
                                determine options. | 
                    
                        | W 10-08 | Handling text data structures, context information, and metadata the TEI way. What the TEI Header is for
                            How to research the TEI Guidelines and TEI Roma. Norton schema modeling collaboration. | 
                                Project Milestones Series Begins: Teams set up GitHub repos  | 
                    
                        | F 10-10 | Norton project discussion with TEI. | 
                                TEI Exercise 1: Norton project data and metadata in TEIRelax NG Test due | 
                
                
                    
                        | Week 8 | Class topics | Do before class | 
                    
                        | M 10-13 | Schema modeling in TEI with ODD (One Document Does it all). | TEI Exercise 2: Working with the teiHeader. (Read about and work with the TEI
                                        Header chapter in the TEI Guidelines)U. of Illinois LibGuide: TEI in Action: 
                                    look at the examples and consider whether the code structures
                                    make sense for your project!
 | 
                    
                        | W 10-15 | Refining and customizing a TEI ODD schema. Deciding on attributes and customizing attribute values. 
                            Document data modeling for a TEI project. | TEI
                                exercise 3: Working with a TEI ODD customization for the Norton project:
                            Experiment in TEI Roma Beta
                            with further customization of our starter ODD. | 
                    
                        | F 10-17 | TEI modeling for the Norton project. | TEI Exercise 4: TEI and ODD work with Norton material | 
                
                
                
                    
                        | Week 10 | Class topics | Do before class | 
                    
                        | M 10-27 | Querying XML with XPath. Searching for nodes on axes, and
                            setting predicates. | XPath Exercise 1 | 
                    
                        | W 10-29 | 
                                XPath Predicates as boolean filters (using and,orand thenot()function)Revisiting XML markup decisions, based on what XPath can
                                    show.distinct-values() XPath math: count(),min,max(), | XPath Exercise 2 | 
                    
                        | F 10-31 | XPath string functions: 
                                Handling only one node at a time: contains(),matches(),translate(),replace(),string-length().
                                    Cutting a string in parts:tokenize(); takingsubstring-before()orsubstring-after()Bundling up a sequences of strings:
                                    string-join() | XPath Exercise 3 | 
                
                
                    
                        | Week 11 | Class topics | Do before class | 
                    
                        | M 11-03 | 
                                Review XPath string functions exerciseApplying XPath in Project Code Inspection: Introducing
                                    SchematronHow Schematron is different from Relax NG. Asserts vs. reports. Associating
                                    Schematron files with XML, Schematron workflow. | XPath Exercise 4 (String functions) | 
                    
                        | W 11-05 | Schematron: rules and patterns. | Schematron Exercise 1 | 
                    
                        | F 11-07 | Debugging Schematron homework, applying Schematron in projects. | Schematron Exercise 2 | 
                
                
                    
                        | Week 12 | Class topics | Do before class | 
                    
                        | M 11-10 | 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: Project Milestone | 
                    
                        | W 11-12 | How XSLT template matches work. XSLT to create HTML, trimming the
                                tree. | 
                                XSLT Exercise
                                            1: an identity transformationReview Introduction to XSLT, and (re)watch one (or both) of the
                                    following orientation videos on how to set up oXygen to write XSLT:  | 
                    
                        | F 11-14 | XSLT to HTML: Making an HTML reading view for semester projects. | XSLT
                                            Exercise 2 | 
                
                
                    
                        | Week 13 | Class topics | Do before class | 
                    
                        | M 11-17 | 
                                Putting the pieces together: Workshopping XSLT, HTML, CSS.Modal XSLT: processing the same nodes in multiple ways. |  | 
                    
                        | W 11-19 | Internal links on an HTML page, from XSLTUsing XPath sort()vs. XSLTxsl:sortto sort your output.
 | XSLT
                                            Exercise 4: Modal XSLT over a Collection
 | 
                    
                        | F 11-21 | 
                                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 14 | Class topics | Do before class | 
                    
                        | Sun 11-23 – Sat 11-29 | Thanksgiving Holiday | Have a peaceful and productive week! | 
                
                
                    
                        | Week 15 | Class topics | Do before class | 
                    
                        | M 12-01 | CSS Flex and Grid for Reading View Layouts: | Work on XSLT test and Project Milestone | 
                    
                        | W 12-03 | 
                                Accessible design considerations: 
                                    
                                
                                Site Navigation |  | 
                    
                        | F 12-05 | 
                                Planning DIGIT works presentation: expectations and how to prepareReview project completion expectations (projects due during Finals Week) | XSLT for Layout: XSLT/HTML/CSS with Images (combined with Project Milestone)
 | 
                
                
                    
                        | Week 16 | Class topics | Do before class | 
                    
                        | M 12-08 | 
                                Documenting your project decisions and coding on the websitePermissions, licensing, crediting sources, documenting your project team workChoose, embed, post a Creative
                                        Commons LicenseProject development sprint! | Penultimate Semester Project Milestone | 
                    
                        | W 12-10 | Project development sprint! | Preparing for presentations and completing the projects | 
                    
                        | F 12-12 | Last day! DIGIT Works presentations | You and your team share your project with the
                            class and DIGIT Works audience. | 
                
                
                    
                        | Finals Week: 12/15 – 12/19 | Due | 
                    
                        | W 12-17 | 
                                Semester projects due by 11:59pm.
                             Send a post to me on GitHub and Canvas to indicate that your team is
                                finished. |