Fall 2023 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, 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! 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-21 | 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. What happens when text-generative AI writes
                            markup code, and when/how we'll be working with AI in this class. | Respond to Dr. B’s Poll (see Canvas / Penn State
                            email). | 
                    
                        | W 08-23 | 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-25 | Discussion of Pierazzo introduction of XML: what kinds of
                            things are really markup? Discussion of homework, writing
                            comments, XML data and metadata, coding attributes and self-closing
                            elements. Introduce the DIGIT Coders’ Slack and XML
                                Exercise 3 and being systematic about a collection. |  | 
                
                
                    
                        | Week 2 | Class topics | Do before class | 
                    
                        | M 08-28 | Discussion of XML homework: (how is a collection
                            different from a single file)? Explicit markup and pseudo-markup.
                            Self-closing elements. Introduce document metadata coding challenge in
                                XML Exercise 4.
                            (If time: Ideas for organizing metadata: capturing prosopography:
                            pairing up @xml:idattributes withpointer
                                attributes( #) to refer to them across a
                            collection. Examples: Digital Mitford letters and Map of Early Modern
                            London.) | 
                                Connect to the DIGIT Coders' Slack: Install
                                    Slack on your computer / mobile devices and set up your profile
                                    using this Slack Guide for New Users. Join the DIGIT-Coders Slack
                                    (invitation link posted in Canvas), and set up your profile
                                    display name so the class and I can recognize you.Complete and submit XML Exercise 3 (small collection of
                                        letters) | 
                    
                        | W 08-30 | Discussion of The Ballad of Booker T.: Multiple ways to
                            encode a poem and manuscript information. Overlapping hierarchies. | Complete XML Exercise
                                4. | 
                    
                        | F 09-01 | Prep for Dr. B's away-mission to the TEI-MEC Text and
                            Music encoding conference next week. Introduce XML-Pretest exercise.
                            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. | 
                                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. | 
                
                
                    
                        | Week 3 | Class topics | Do before class | 
                    
                        | M 09-04 | Labor Day Holiday: No classes. | ... | 
                    
                        | W 09-06 | [Dr. B is in Germany for the TEI-MEC Conference:
                                    Class via Zoom] Review of the XML Pre-test.
                            Issue the take-home XML Test on Canvas and
                                Emily Dickinson Project discussion. | Complete the XML Pre-Test to
                            review together in class. | 
                    
                        | F 09-08 | [Dr. B is in Germany for the TEI-MEC Conference: No
                                synchronous class meeting today.] Class holds a virtual
                            discussion in markdown on GitHub. | GitHub Discussion Assignment:
                            Comparing Emily Dickinson Projects on the textEncoding-Hub. | 
                
                
                    
                        | Week 4 | Class topics | Do before class | 
                    
                        | M 09-11 | GitHub orientation week! Working with the Git Bash Shell
                            (Windows) and Terminal (Mac and Linux): Command line (shell)
                            orientation. |  | 
                    
                        | W 09-13 | Working with git and GitHub as a code developer. 
                                GitHub file management: pulling, adding, committing, and pushing
                                    to your repo.GitHub profile configuration 
                                 |  | 
                    
                        | F 09-15 | 
                                Introduce Seven Days of Git/GitHub. Always git
                                        pull before you start work in a shared repo!In-class Pull-Push practice: Use git pullto access
                                    a file on the textEncoding-Hub, and then push it to your
                                    personal GitHub repo. | (If you didn't do this on Wednesday): | 
                
                
                    
                        | Week 5 | Class topics | Do before class | 
                    
                        | M 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 soupof mixed content. | 
                                Read our Introduction to Relax NGGitHub practice | 
                    
                        | W 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. |  | 
                    
                        | F 09-22 | 
                                Getting / giving help on the DIGIT-Coders Slack: 
                                        How to ask good questions and get help!Slack practice with code blocks / markdownGrouping and mixed content. 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.GitHub practice | 
                
                
                    
                        | Week 6 | Class topics | Do before class | 
                    
                        | M 09-25 | Relax NG review / debugging. | 
                                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.)GitHub practice | 
                    
                        | W 09-27 | 
                                 Working with xsd:ID, xsd:IDREF, and xsd:IDREFsDates, times, numbers and datatypes: Looking Stuff Up | 
                                Relax NG Exercise 4 / Pre-Test: exploring more datatypesRepair any broken Relax NG syntax and/or XML validation issues
                                    on previous homework submissions. | 
                    
                        | F 09-29 | 
                            
                            Issue Relax NG TestIntroducing 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. |  | 
                
                
                    
                        | Week 7 | Class topics | Do before class | 
                    
                        | M 10-02 | Handling text data structures, context information, and metadata the TEI way. What the TEI Header is for. | TEI Exercise 1: Analyzing documents with TEI, working with the TEI Guidelines | 
                    
                        | W 10-04 | Introducing HTR (Handwritten Text Recognition). Tranksribus orientation | TEI Exercise 2: metadata in TEI | 
                    
                        | F 10-06 | Working with / training Tranksribus for HTR and TEI export. | 
                            Trankribus Exercise 1Relax NG Test due by the end of the day | 
                
                
                    
                        | Week 8 | Class topics | Do before class | 
                    
                        | M 10-09 | Optimizing HTR, working with TEI | Tranksribus Exercise 2 | 
                    
                        | W 10-11 | Customizing TEI with ODD (One Document Does it All): planning a schema. TEI ODD / Tranksribus topics. Photographing and processing images and text on
                            text encoding projects: Image file
                            formats for web projects. HEIC images (from iPhones): Image-processing tutorial Semester project options.
 | TEI Exercise 3: Working with the teiHeader. (Read about and work with the TEI
                            Header chapter in the TEI Guidelines) | 
                    
                        | F 10-13 | Form Project Teams! Setting up new team project GitHub repos | TEI
                            exercise 4: Working with a TEI ODD customization:
                            Experiment in TEI Roma Beta
                            with further customization of our starter ODD. | 
                
                
                    
                        | Week 9 | Class topics | Do before class | 
                    
                        | M 10-16 | How does HTML relate to TEI and XML? HTML and file management.
                            Introduce HTML Exercise 1 for GitHub Pages in your GitHub repo. |  | 
                    
                        | W 10-18 | Associating files and making links: absolute vs. relative. Building web
                            pages in your GitHub repo. |  | 
                    
                        | F 10-20 | Introduce XPath | 
                                
                                
                                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 repoEstablish 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 | 
                
                
                    
                        | Week 10 | Class topics | Do before class | 
                    
                        | M 10-23 |  |  | 
                    
                        | W 10-25 | Querying XML with XPath. Working with XPath arithmetic operations,
                            searching for nodes on axes, and setting predicates. | 
                        XPath Exercise 2Finish/revise incomplete HTML exercises if necessary and continue
                                tinkering with HTML and CSS on your GitHub Pages site. | 
                    
                        | F 10-27 | 
                            XPath Predicates as boolean filters (using and,orand thenot()function)Revisiting XML markup decisions, based on what XPath can show. XPath math: min,max(),sum(). | 
                            Complete XPath Exercise
                                3Work on markup and a schema for your semester project, and push updated
                                files to your repo.   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).  | 
                
                
                    
                        | Week 11 | Class topics | Do before class | 
                    
                        | M 10-30 | 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 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-01 | 
                            Review XPath ExercisesProject code review. (Why a good project schema mattes for building a
                                project.) | 
                            Complete XPath
                                Exercise 4 (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-03 | 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-06 | 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:  | 
                    
                        | W 11-08 | XSLT to HTML: Making an HTML reading view for semester projects. | XSLT
                            Exercise 2 | 
                    
                        | F 11-10 | 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 13 | Class topics | Do before class | 
                    
                        | M 11-13 | 
                            Putting the pieces together: Workshopping XSLT, HTML, CSS.Modal XSLT: processing the same nodes in multiple ways. | XSLT
                            Exercise 3 | 
                    
                        | W 11-15 | Using sort()to sort your output. Internal links on an
                            HTML page, from XSLT. | XSLT
                            Exercise 4: Modal XSLT over a Collection | 
                    
                        | F 11-17 |  | XSLT
                            Exercise 5: adding internal links, sorting, and styling the
                            collection output with CSS | 
                
                
                    
                        | Week 14: Thanksgiving | Class topics | Do before class | 
                    
                        | Sun 11-19 to Sat 11-25 | Thanksgiving Holiday | Have a peaceful and productive week! | 
                
                
                    
                        | Week 15 | Class topics | Do before class | 
                    
                        | M 11-27 | XSLT, HTML, CSS for displaying images and
                            text | Work on XSLT test and Project Milestone | 
                    
                        | W 11-29 | 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-01 | 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-04 | CSS Flex and Grid for Reading View Layouts: | Semester Project Milestone | 
                    
                        | W 12-06 | 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 siteChoose, embed, post a Creative
                                Commons License | Project work! | 
                    
                        | F 12-08 | Last day! DIGIT Works presentations. | Prepare to share and discuss your project work with the
                            class / DIGIT Works. | 
                
                
                    
                        | Finals Week (12/11 - 12/15) | Due | 
                    
                        | H 12-14 | 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. |