Fall 2024 Syllabus (Schedule): Classes meet M W F 10:10 – 11am in Lilley Library 201A 
                
                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-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 anymoreComplete 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.GitHub file management: pulling, adding, committing, and
                                        pushing to your repo.GitHub profile configuration  | 
                                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 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). | 
                    
                        | 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 RepoComplete 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 discussionValidation 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 soupof 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 / proposalsGetting / 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 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-TestSpecialized community schemas: TEI, MEI, CBML: Applying these in
                                    projects 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. 
                                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 | 
                    
                        | F 10-04 | 
                                Issue Relax NG TestAll the markup languages! How does HTML relate to XML? Why you
                                    don't need to write a schema for HTMLHTML 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. |  | 
                    
                        | F 10-18 | 
                                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(). | 
                                XPath Exercise 2Finish/revise incomplete HTML exercises if necessary and
                                    continue tinkering with HTML and CSS on your GitHub Pages
                                    sites. | 
                
                
                    
                        | 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(); 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 10-23 | 
                                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)  | 
                    
                        | F 10-25 | Schematron: adjusting the rules, patterns. |  | 
                
                
                    
                        | 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 |  | 
                    
                        | W 10-30 | Debugging Schematron homeworks, applying Schematron in projects |  | 
                    
                        | 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. | 
                            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 | 
                
                
                    
                        | Week 11 | Class topics | Do before class | 
                    
                        | M 11-04 | 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-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 |  | 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 | Presentation vs. Semantics: What do we share? What do we miss?Checking for website accessibility: 
 |  | 
                
                
                    
                        | 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 |  | 
                    
                        | F 12-06 | 
                           Planning DIGIT works presentation: expectations and how to prepareReview project completion expectations (projects due during Finals Week)Permissions, licensing, crediting sources, documenting your project team workChoose, embed, post a Creative
                                Commons License |  | 
                
                
                    
                        | Week 16 | Class topics | Do before class | 
                    
                        | M 12-09 | 
                            Documenting your project coding on the websiteProject 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. |