Programming 4 Humanists
Programming 4 Humanists (P4H) is a continuing education program designed to introduce participants to methodologies, coding, and programming languages associated with the Digital Humanities (DH). P4H courses are taught by CoDHR staff and TAMU faculty during the Fall, Spring, and Summer semesters. Course participants have the option to attend class synchronously via Zoom or review class recordings on their own time.
These courses are available for free to faculty, staff, and students at Texas A&M University, and to external scholars for a registration fee.
CoDHR will not be offering a P4H course in Fall 2023.
Previous Course Offerings
Instructor: Dr. Lauren Liebe
This intermediate-level course is designed to build upon the basics of XML encoding courses, for the purposes of building text-based digital humanities projects. It serves as an expansion for the Programming4Humanists course Digital Editions from Start to Finish, though anyone familiar with TEI/XML encoding and looking to refine their projects will benefit. The course focuses on a variety of skills necessary to run a digital humanities project and work with the data it produces. Rather than guiding participants toward a set final project, this course offers an intermediate-level toolkit of skills with optional one-on-one project consultations twice during the semester.
Topics to be covered include both project development (project management and sustainability, goal setting, content management, documentation, peer review, etc.) and technical skills to further develop XML-based projects (regex, git, schema development, XSLT, XML Databases, and XQuery).
- Week 1, February 10: Course Introduction
- Today, we will discuss what it means to go “beyond encoding” and discuss the trajectory of the course. We will begin by taking a distanced look at the lifecycle of projects, from their initiation as projects to their endings. We will also be installing and configuring the software we will be using this semester.
- Additional Readings/Guides:
Appleford, Simon and Jennifer Guiliano, 2013
The Endings Project
- Assignment (optional, due February 8): Fill out the Yale DH Lab’s “Lean Canvas” and post to course GoogleDrive.
- Week 2, February 17: Goals, Principles, and Tools
- Today, we’ll be discussing defining project goals, establishing and presenting editorial principles, and finding the best tools for the job. We will talk about various content management systems, software packages, and web tools to help you build your project.
- Additional Readings/Guides:
A Catalog of Digital Scholarly Editions
MLA’s Guidelines for Editors of Scholarly Editions
- Week 3, February 24: Managing Your Data: Metadata, Regex, and Git
- Today, we’ll be thinking about the data that makes up your project as well as two different means of “managing” data: version control through git and bulk editing through regular expressions (or regex).
- Additional Readings/Guides:
MARC Controlled Vocabularies
Library of Congress Subject Headings
Regex101 (for regex testing)
- Week 4, March 3: XML Review, XPath
- Today, we will be reviewing the basics of XML encoding, focusing on XML structures to facilitate manipulating, querying, and analyzing XML through XPath.
- Additional Readings/Guides:
Elisa Beshero-Bondar’s XPath for Processing XML and Managing Projects site
XPath Cheat Sheet
- Spring Break
- Week 6, March 17: Schema Development: ODD and Schematron
- Week 7, March 24: HTML/CSS and XSLT (Part 1)
- Week 8, March 31: XSLT (Part 2)
- Week 9, April 7: XML Databases and Query (Part 1)
- Week 10, April 14: XML Databases and Query (Part 2)
- Week 11, April 21: XML Databases and Query (Part 3) and Project Documentation
- Week 12, April 28: Course Review, Putting It All Together, Next Steps
In this online webinar offered every Friday, 10:00 a.m. to 12:00 noon Central US Time (Chicago), starting September 30, 2022 and finishing on December 9, 2022 (11 weeks), we will go through all the necessary steps for creating a digital edition of texts, beginning with coding plays, novels, letters, stories, and poems in TEI, using and modifying XSLT programs that transform these TEI documents into Web pages, and then launching the digital edition on the web. We will also introduce participants to XPath and XQuery. Taught by a team of five people, some graduates from previous versions of this webinar, the course has been streamlined by offering to participants pre-made XSLT and CSS files that, when used, enable launching a digital edition by Thanksgiving! We hope you can join us.
- Week 1, September 30: TEI: Introduction
- Today we will introduce the class to the Text Encoding Initiative Consortium and the code recommendations and schemas that it has developed -- in shorthand, TEI. We will describe what it is, why digital editors should use it, and the processes to be learned during this webinar that will make TEI- encoded documents viewable on the web. Everyone will learn how to install and use oXygen, the best TEI editor.
- Week 2, October 7: TEI Encoding: Essays, Fiction, Letters
- Today we will learn how to encode in TEI simple essays, stories, novels, and letters.
- Week 3, October 14: TEI Encoding: Frontmatter, Drama, Poetry
- Today we will learn how to encode in TEI plays and poems as well as title pages, prefaces, prologues, epilogues, etc.
- Week 4, October 21: TEI Header
- Today, we will make available the Digital Editions, Start to Finish Website. Everyone will learn about the TEI Header metadata categories and publishing information, and then learn how to use the form available on the DE website to create a TEI Header for their projects.
- Week 5, October 28: Online Publishing and HTML
- Online Publishing: Today we will learn how to structure Digital Edition Files for the smoothest transition from desktop to server space that allows for public viewing of encoded documents. We will discuss online publishing options and provide examples.
- HTML: Today we will learn about Hypertext Markup Language 5 and will learn the HTML code for building a splash page.
- Week 6, November 4: HTML and CSS
- Now we will learn how to make a splash page beautiful with Cascading Style Sheets or css! We will also learn the basic HTML structure of documents and then how to modify their appearance with css.
- Week 7, November 11: XSLT to HTML
- Introduction to Extensible Stylesheet Language Transformations or XSLT and how it produces HTML using the XSLT programs built into oXygen and then learning how to run a basic XSLT available on the DE website. We will learn some of the basic principles of XSLT by making changes to the basic XSLT.
- Week 8, November 18: XSLT to HTML
- Today we will learn how to use the complicated XSLT on the DE website. We will begin with an introduction to XPath, the XML Path Language used in XSLT programming. We will also learn about params (setting parameters allows you to customize the HTML documents you publish) and running multiple files at a time using XSLT, useful for digital editions that contain multiple XML documents.
- Thanksgiving Break
- Week 9, December 2: XQuery
- Today we will introduce XQuery, the XML Query Language that enables deep exploration of TEI-encoded data, and then everyone will learn how to write regex (Regular Expressions) and flwor expressions (pronounced "flower," it is an acronym for "For, Let, Where, Order by, Return."
- Week 10, December 9: XQuery
- Today everyone will focus on XQuery for document and corpora analysis. We will discuss when to use XQuery and when XSLT. And finally, we will discuss the paths forward for continuing to develop your own digital edition.
Instructor: Dr. Bryan Tarpley
Dr. Bryan Tarpley, Associate Research Scientist for Critical Infrastructure Studies at CoDHR, will be teaching "Python for Humanists – Crash Course", an 8-week long course which seeks to drastically lower the barrier-to-entry for humanities researchers interested in unlocking the power of Python. All levels of experience are welcome to attend.
During these 8 weeks, participants will become acculturated to the “Pythonic” way of thinking, and will become proficient in using the following fundamental building blocks of procedural programming:
- Variables, operators, lists, and dictionaries
- If-statements, for-loops, and functions
- Classes, properties, and methods
- Reading, writing, and manipulating files
- Week 1, March 25: "Time and Space: The Ontology of Python" (primitive data types)
- Week 2, April 1: "Coding as Speech Act" (lists)
- Week 3, April 8: "A Thousand Plateaus" (dictionaries and namespaces)
- Week 4, April 15: "Ratiocination" (ifs and loops)
- Week 5, April 22: "Performativity" (functions)
- Week 6, April 29: "Object Orientation" (classes)
- Week 7, May 6: TBA
- Week 8, May 13: TBA
Instructor: Dr. Katayoun Torabi
This course will introduce participants to generating network visualizations using Gephi, an open-source interactive platform, which allows users to highlight relationships between various elements. Specifically, this class will use Gephi to model interactions between characters in various literary works, producing visualizations that convey at-a-glance the frequency of those interactions as well as the centrality of certain characters.
While familiarity with spreadsheet-style data organization techniques will be a helpful skill set for participants, no prior knowledge of network graphs or Gephi is required for this class.
- Week 1, May 29: Data Formats
- Week 2, June 5: Visualization
- Week 3, June 12: Visualization and exporting graphs to the web
Instructor: Dr. Bryan Tarpley
- Week 1, March 20: "Time and Space" (Introduction to procedural programming)
- Week 2, March 27: "Ratiocination" (Codifying logic)
- Week 3, April 3: "Object Orientation" (Introduction to classes and libraries)
- Week 4, April 10: "Find Me, Read Me, Write Me" (Introduction to filesystem access, reading, writing, and manipulating files)
- Week 5, April 17: To be determined by participants, see below.
- Week 6, April 24: To be determined by participants, see below.
- Week 7, May 1: To be determined by participants, see below.
- Week 8, May 8: To be determined by participants, see below.
Options for Weeks 5-8:
The following are examples of topics covered in previous Python courses. Once the course commences, participants will be invited to rank which topics interest them the most. The instructor will then select the topics that garner the most interest for determining the agenda for the second half.
- Performing OCR on page images
- Preparing novel-length texts for textual analysis (clean-up, chapter segmenting, tokenization, lemmatization, etc.)
- Performing and visualizing word frequency analysis
- Authorship attribution (clustering similar texts together)
- Topic modeling
- Natural Language Processing (named entity recognition, part of speech tagging, grammatical dependency parsing)
- Querying REST API’s (like Twitter)
- Parsing XML documents (like TEI)
- Creating simple but dynamic web applications for displaying data
Instructors: Syd Bauman, Dr. Diane Jakacki, Dr. Laura Mandell
This class teaches faculty, staff, and students how to create a digital edition, from start to finish. Attendees will bring documents of all types (prose, poetry, drama, letters, and records), in plain text, Word, or some other word‐processing format, and will learn how to encode them using guidelines from the Text Encoding Initiative, and then will learn how to transform these texts using eXtensible Stylesheet Language Transformations (XSLTs) into web pages for online display of their digital editions. No prior coding skills are required: we begin by explaining what all these codes are and why they are used, as well as teaching them to novices.
- Week 1, January 25: Intro to Digital Editions (standards, best practices, diversity) and oXygen
- Week 2, February 1: TEI-encoding: Prose, Letters, Novels
- Week 3, February 8: TEI-encoding: Poetry
- Week 4, February 15: TEI-encoding: Drama
- Week 5, February 22: TEI-encoding: Taxonomies, Records, Letters
- Week 6, March 1: Semantic Markup and Personography in TEI
- Week 7, March 8: TEI Schemas
- Week 8, March 22: Principles of XSLT
- Week 9, March 29: HTML and CSS
- Week 10, April 5: XML transformations
- Week 11, April 12: Using and modifying XML Masters: HTML, plain text, spreadsheets
- Week 12, April 19: Writing XSLT from scratch
- Week 13, April 26: Workshopping your own edition; review of existing editions; scoping and hosting your project
- Week 14, May 3: Workshopping your own edition (troubleshooting)