Header image (punch card)

Reading and Writing Electronic Text (Schedule Spring 2026)

Essential information

Syllabus with course description, policies, resources, etc.

All readings are available online, unless otherwise indicated. If you’re having trouble accessing a resource, try the NYU Library Proxy (it’s very easy to set up). Please contact me ASAP if you have trouble accessing any of the readings.

Unit A: Disarticulation and juxtaposition

Python basics; how to break a text down into its component pieces and put it back together.

Session 01: Introduction

Date: 2026-01-23.

Before the next session:

Please install Python on your computer. Once Python is installed, use the pip command to install Jupyter Notebook. Note that this will probably require doing a little bit of work at the command line (Terminal on macOS, PowerShell on Windows). Make sure that you can launch Jupyter Notebook on your machine before we begin next session.

NOTE: If you already have a working installation of Python 3 on your computer, you don’t need to install it again! Just use the version that you already have installed.

Here are two good tutorials on YouTube:

And here’s a more general tutorial for all platforms.

Linux users and users of other UNIX-alikes: In this class, you can probably get away with using your distribution’s default Python 3. However, you may want to research a tool like pyenv or asdf to make it easier to have multiple versions of Python available on your machine at once (e.g., your distribution’s Python alongside the latest version of Python).

Another option for many platforms is Anaconda (though please read the licensing terms).

Note that (as far as I know) there is no satisfactory option for installing Python on iOS or Android. If you only have access to iOS and/or Android, you may be better off using a web-hosted service like Python Anywhere (you will need their $5/mo service, which includes access to Jupyter Notebooks). You can also use Google Colab in a pinch.

Reading assigned: Poetry, juxtaposition, procedure

To be discussed in session 02.

Optional, on that Pound poem cited in the Hartman chapter above:

Optional, on the history of procedural text and experimental writing, and how to write and interpret it:

Session 02: Expressions and strings

Date: 2026-01-30.

Suggested exercise: Programming Exercise A: Expressions and strings

Session 03: Lists and lines

Date: 2026-02-06.

Suggested exercise: Programming Exercise B: Lists and list operations

Assignment #1

Due at the beginning of session 04.

Many well-known poetry generators, especially those from the beginning of the computational era, work by drawing randomly from a limited vocabulary of strings and composing those strings using straightforward string manipulation techniques (like concatenation, splitting, joining, indexing, etc.). Create your own poetry generator using these techniques. Use one of the generators implemented in this notebook as a starting point for your creation.

In your documentation, discuss the poetry generator you created and how it differs from the code it was based on. Why did you choose the vocabulary that you chose? Does your generator succeed in creating output that surprises you?

Session 04: Poetics of grouping

Date: 2026-02-13.

Reading assigned: Bot poetics

To be discussed in session 05.

What makes computation suited to a particular genre of text, and vice versa?

Session 05: Quantifying text

Date: 2026-02-20.

Supplementary notes: Dictionaries, sets, tuples (more thorough dictionary tutorial)

Suggested exercise: Programming Exercise C: Dictionaries

Session 06: Grammars

Date: 2026-02-27

Assignment #2

Due at the beginning of session 07.

The genre study: Choose a genre or form of writing. This can be anything from a literary genre to a meme format. Gather a small number of exemplars of the genre and make a list of the characteristics that are common to all of them. Write a program that produces texts that emulate a particular form or genre of language.

Unit B: (Tiny) Language Models

How to construct a text by making statistical predictions about the next token. Good for a laugh, or for convincing investors to give you hundreds of billions of dollars to build carbon-belching data centers.

Session 07: N-grams and Markov chains

Date: 2026-03-06.

Reading assigned: Predicting the next token

Session 08: Generating text with Markov chains

Date: 2026-03-13.

Assignment #3

Due at the beginning of session 09.

Generate text from a Markov chain-style language model, using Shoestrings or another implementation, possibly in combination with other techniques for arranging text that we’ve discussed in the class. Be intentional about your use of source text and comment on what (if anything) your generated text demonstrates or reveals about that source text.

Also, before the next session:

Identify a text to contribute to the “collective corpus” that we’ll be using together as a class over the next few weeks. This should be a text of around 1,000 words, written in the English language, and that the class as a whole is authorized to freely reuse. (This could be text in the public domain, text of your own composition, etc.)

Unit C: Syntax and semantics

The units of text often occur in particular patterns, which have hierarchical and nested structures; this is called “syntax.” Units of text also often appear to mean something, whatever that means; this is called “semantics.” Here we discuss some approaches to working with syntax and semantics computationally.

Session 09: Syntax

Date: 2026-03-27.

Reading assigned: Transcription and interpretation

Before the next session:

Using the tagging software discussed in class, tag at least 1000 words.

Session 10: Using tagged data

Date: 2026-04-03.

Before next class:

Using the tagging software discussed in class, assign values to at least 500 nouns and adjectives.

Session 11: Vector semantics

Date: 2026-04-10.

Assignment #4

Rework a previous assignment or prototype to use our hand-tagged data. For example, take an existing Tracery grammar and have it fill in parts of speech as tagged in our corpus, or remix a text using adjective scores to sort or filter the source text.

Unit D: Applications

Final presentations and whatever’s left over.

Session 12: Odds and ends

Date: 2026-04-17.

Session 13: Final project presentations, part 1

Date: 2026-04-24.

Session 14: Final project presentations, part 2

Date: 2026-05-01.

On the bench

Here’s a list of readings, tutorials and links previously incorporated into this class, but not scheduled in the current iteration. The links might be broken and the tutorials might be out of date. I’m listing them here in case they’re of interest to students, and so I can easily find them later if I want to sub them back into the game.

Readings

Tutorials

Intertexts

Related work (artworks, poems, etc.) that are in dialogue with the readings and concepts presented in class. You’re encouraged to review and engage with these works.

On cut-ups.

On genre and poetic form.

On transcription.

Language models etc.