Spring 2024 Syllabus (Schedule)
Classes meet M W F 3:35 - 4:25pm in Burke 153.
This contains a detailed explanation of course policies and the basis for grades.
This link 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.
All the Tools You Need As We Begin:
Download and install the following software on your own personal computer(s) on or
before the first day of class. These software tools are available in our campus computing
labs, too.
- <oXygen/>.
(You will probably have this installed from DIGIT 100 or 110.) The DIGIT program has purchased a site license for this software, which
is installed in Burke 153, Kochel 77, the Lilley Library computers, and Witkowski 109, as well as the computer labs in Hammermill. 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.
- AntConc: (You may have this installed from DIGIT 100.)
Free corpus text analysis tool.
- We will ask you to install Python version 3.8 or
higher on your computer, and install PyCharm Edu to assist in learning and
writing Python code with syntax checking. Follow instructions and links from
Pycharm ( https://www.jetbrains.com/help/pycharm/quick-start-guide.html#meet ) paying attention to what you need for your own computer systems.
Feel free to download and explore Pycharm Edu on your own before we start
working with it together: https://www.jetbrains.com/pycharm-edu/. Also, configure
Anaconda so it is available to work within Pycharm following this guide: https://www.jetbrains.com/help/pycharm/conda-support-creating-conda-virtual-environment.html. (We will provide guidance on this in class.)
- Zoom: Make sure your Zoom installation is up-to-date, and you are ready to
connect. Sometimes we will record portions of class meetings and tutorial sessions for future reference to share over Zoom. Look for these in Canvas Announcements and use the Zoom menu option in Canvas to access these meetings.
- We will use GitHub for for sharing code and for project management. Create an account (choose the free options) at the https://github.com and install the GitHub client software for your operating system on your own machine on your computer. (We will explain how to use git and GitHub this in our course.)
- We will use the Slack chat platform for discussion and for asking questions (see https://slack.com/help/articles/218080037-Getting-started-for-new-members). Download and install the Slack 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.
- Later in the semester we may ask you to install a local copy of the eXist-db
XML database, which you can download from https://exist-db.org/.
- 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 even spoken about them at academic conferences! You will learn to develop
your own digital tools and how to manage digital projects as teamwork.
Class Web Resources:
Week 1 |
Class topics
|
Do before class
|
M 1-08
|
Welcome! Intro to the course, and the era of AI, Chat-GPT, and natural
language processing. Join class Hypothes.is anotation group. Class exercise with Chat-GPT. |
... |
W 1-10
|
Orientation to Natural Language Processing and how AI works. |
- Join our DIGIT Slack Group and Hypothes.is group (if you did not already)
- ChatGPT and Git Review Exercise 1: Organize a directory in your GitHub repo (or create a new GitHub repo + directory for this):
Curate your experimental prompts and responses as text or XML files in your GitHub repo.
|
F 1-12
|
>Class protocols for handling code files: GitHub and version controlled file management. Making a branch on the textAnalysis-Hub. Review adding, pulling, adding, committing, and pushing. |
|
Week 2 |
Class topics
|
Do before class
|
M 1-15
|
Martin Luther King Day: No classes. |
... |
W 1-17
|
Discussion of word embeddings, word math , and AI. How we play with mathy AI and NLP in digital arts and humanities.
Prep for Python unit: Orientation to Pycharm’s IDE and the Pycharm Edu tutorial |
|
F 1-19
|
Pycharm Edu tutorial work together. Manipulating strings wtih Python, and Pythonic data structures (lists, tuples, dictionaries). |
- ChatGPT + Git Exercise 2: Push this assignment to your branch of the textAnalysis-Hub repository and issue a pull request assigned to Dr. B (ebeshero).
- Pycharm Edu tutorials: through Strings (submit evidence of completion via screen capture on Canvas).
|
Week 3 |
Class topics
|
Do before class
|
M 1-22
|
Pycharm Edu tutorial review. Python environments: Pycharm vs. Jupyter notebooks:
Introduce Google CoLab (Jupyter) Notebook via Google Colab Notebook cellblocks in Tutorial: Exploring Gender Bias in Word Emedding. |
- Read and annotate in our class Hypothes.is group:
- Pycharm Edu Community tutorials: Complete the Tutorial through the Condition expressions Unit (submit evidence of completion via screen capture on Canvas).
- Review git branching, catch up/fix git homeworks if necessary.
|
W 1-24
|
- Ethical issues and research paths with AI, NLP, word embeddings. Where do we find arts and humanities in computational processing?
Python: Working with libraries (modules and packages), saving and executing files.
- Initiate Five Days of Command Line GitHub Test.
|
|
F 1-26
|
Writing your own Python: Getting started with Natural Language Processing (NLP) with Python:
installations/imports: nltk, spaCy, gensim |
- Finish Pycharm Edu Intro to Python tutorials: Classes and
objects, Modules and packages, File input and output. Submit evidence of completion via screen capture on Canvas.
|
Week 4 |
Class topics
|
Do before class
|
M 1-29
|
- Git branching and pull requests. GitHub markdown.
- Python file imports and exports. Reading file collections.
|
- Python NLP Exercise 1
- (By the end of the day): Five Days of Git: Part 1: Record completion on Canvas as part of GitHub Test
|
W 1-31
|
spaCy's word similarity calculations. NLP and large language models, vs. customized, specialized modeling. |
- Five Days of Git: Part 2: Record completion on Canvas as part of GitHub Test
|
F 2-02
|
Reviewing Python NLP word similarity.
|
- Python NLP Exercise 2: comparing a set of files using word vector data: (words similar to a word of interest)
- Five Days of Git: Part 3: Record completion on Canvas as part of GitHub Test
|
Week 5 |
Class topics
|
Do before class
|
M 2-05
|
Review of GitHub Markdown. Introducing Python web scraping with Beautiful Soup.
|
|
W 2-07
|
Python: Introducing Topic Modeling with nltk (LDA) |
- Python NLP Exercise
- Five Days of Git: Part 5: Record completion on Canvas to finish the GitHub Test.
|
F 2-09
|
- Topic Modeling code and visualization
- Semester Project Possibilities: ideas, sources, teamwork expectations: discussion
|
Python NLP Exercise |
Week 6 |
Class topics
|
Do before class
|
M 2-12
|
Introduction of fastAI deep learning with Python. Forking and configuring a local Jupyter notebook.
Semester projects. |
Python NLP: Build a web scraper with Beautiful Soup to collect text files. |
W 2-14
|
Windows and Mac setups for Jupyter Lab and FastAI book. |
|
F 2-16
|
Deep Learning discussion, examples, fine-tuning FastAI models.
|
Complete intro chapter of FastAI book. |
Week 7 |
Class topics
|
Do before class
|
M 2-19
|
Fast AI Deep Learning classification. Semester Project Discussion.
- Structuring and regularizing data from documents with markup.
- Introduce document analysis with Regular Expressions: the dot, the backslash, numbers (
\d , repetition indicators, matching on lines, and autotagging. Greedy and non-greedy matching.
- Preview Intro to Regular Expressions
- Choosing a license for your project GitHub repo.
|
Complete FastAI book through Ch. 2.
|
W 2-21
|
- Regular Expressions: Thinking (and writing) in markdown, algorithmically.
The fine art of
Looking Stuff Up in the Regex tutorials:
Character sets, symbols, capturing groups.
|
- Project Proposals launch!
- Watch Regex Orientation Videos:
|
F 2-23
|
- Project discussion / team formation?
|
|
Week 8 |
Class topics
|
Do before class
|
M 2-26
|
Regex greedy and non-greedy matches. |
|
W 2-28
|
Guest speakers Jennifer Isasi and Joshua Ortíz-Baco present / discuss "An Exploratory Data Analysis of Space in Spanish-Language Literature" on Zoom today!
|
- Preparation assignment / review project before class
|
F 3-01
|
Regex for projects |
- Regex Exercise 3
- Project Milestone 2 due
- Create a file directory structure for the project GitHub repo(s): Initiate the project website within the docs directory with an index.html page and some CSS. Consult with your team and Dr. B to decide on a place to work on the text files (in its own directory, or in a separate private repo?) and create that space. Create a directory for XML files. Begin populating those file directories (even with placeholder Readme.md files to describe what belongs where).
- Assemble the text files you want to work with on the project. As a team, work on document analysis to plan for how you want these to be marked for structure. What structure do you want to use to contain meaningful units of text data? Aim for a clear, simple structure that distinguishes the kind of info you want to be able to track.
|
Sun 3-03 - Sat 3-09 |
Spring Break |
Enjoy this week! |
Week 9 |
Class topics
|
Do before class
|
M 3-11
|
Regex for projects: XML elements as containers and labels. Text data
sets, curation and analysis. Project workflows.
|
- Regex Exercise 3
- Fast AI book: Chapter 09 and 10: Tabular learning and NLP
|
W 3-13
|
Regex for collections of files.
|
Regex Exercise 4
|
F 3-15
|
- Python / XQuery: Addressing cleaned-up collections with XPath/XQuery in Python
- Outputting files and saving them to the eXist-db database for
previewing
- XQuery online and offline: in eXist and in <oXygen/>
|
Regex Autotagging Exercise 5
|
Week 10 |
Class topics
|
Do before class
|
M 3-18
|
- Project Regex: Applying Regular Expressions for cleaning input.
- XPath intro / review.
- Saxon C library for reading XPath from Python.
|
Project Milestone (due end of day) |
W 3-20
|
- XPath in Python : pulling data from project XML files.
- Jupyter Lab / interactive python notebooks. Virtual
environments, .gitignore screening, and .ipynb files
|
|
F 3-22
|
- XPath and XQuery in Python.
- Project pipelines in an interactive notebook.
|
ipynb exercise 1: XPath in Python |
Week 11 |
Class topics
|
Do before class
|
M 3-25
|
XQuery in Python: Pulling data and visualizing it with matplotlib and
SVG libraries. |
ipynb exercise 2: XQuery in Python |
W 3-27
|
Project applications of network analysis |
- ipynb exercise 3: Visualizing NLP data
- Network Analysis Readings (annotation assignment):
|
F 3-29
|
Discussion of LLMs and model fine-tuning and ethically problematic
applications, as demonstrated in Fastbook AI tutorials. |
Completion of Fastbook AI Tutorial Sequence:
- 01_intro.ipynb
- 02_production.ipynb
- 03_ethics.ipynb
- Optional: 06_multicat.ipynb
- 10_nlp.ipynb
- Optional: 11_midlevel_data.ipynb
- Optional: 12_nlp_dive.ipynb
|
Week 12 |
Class topics
|
Do before class
|
M 4-01
|
Introducing Network Analysis for projects: Modeling relationships in project
data.
|
Work on Project Milestone |
W 4-03
|
Network analysis: orientation to network statistics. Pulling and
organizing data with Python and XQuery for network analysis. |
Project Milestone (due end of day) |
F 4-05
|
Network Analysis, continued: XQuery to Network Analysis Visualization |
|
Week 13 |
Class topics
|
Do before class
|
M 4-08
|
Solar eclipse: No class meeting today!
|
- Safely view the eclipse with proper viewing glasses!
- Work on network analysis and next project milestone.
|
W 4-10
|
Network Analysis: refining visualizations |
- Network Analysis Exercise
|
F 4-12
|
XML that makes graphics: SVG (Scalable Vector Graphics). Drawing elements,
and screen grid coordinates
|
Project Milestone (due end of day)
|
Week 14 |
Class topics
|
Do before class
|
M 4-15
|
Notebook and Visualization for Projects: Pulling data for visualizing, and plotting graphs using FLWOR statements. Namespace issues.
Writing variables for plotting, labelling, scaling, colors. |
|
W 4-17
|
- XQuery to SVG Development
- Launch last take-home test
|
SVG Exercise 2 (from XQuery): Plot a clear, simple, legible,
labelled graph. |
F 4-19
|
XQuery to SVG: exploring possibilities with project data |
- SVG Exercise 3
- Project Milestone due: Visualization and Documentation Development
|
Week 15 |
Class topics
|
Do before class
|
M 4-22
|
Putting it all together: Discussion, analysis, documentation, web work. Ethics in public-facing digital data representation. |
Project development sprint, prep for DIGIT Works presentation |
W 4-24
|
Project work sprint |
Project development sprint, prep for DIGIT Works presentation |
F 4-26
|
Last Day! Project Milestone: Teams deliver DIGIT Works presentations |
Prep for presentations |
Finals Week: April 29 - May 3
|
To Complete
|
H 5-02
|
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.
|