nickm.com > classes > the word made digital, fall 2022

The Word Made Digital
MIT · Fall 2022

Tentative/draft syllabus, 21W.764J / CMS.609J / CMS.846

Last updated 9/20 to indicate that we will meet on 9/27 in our regular room. Updated 9/19 to make Paper 2 more interesting (without increasing your workload.)

Instructor: Nick Montfort, nickm at nickm dotcom, 14E-316
Class meets Tuesdays, 2pm–5pm in MIT’s room 1-277
Office hours Tuesdays 12:30pm–1:30pm in person in 14E-316 & by appointment (in person and Zoom)

Short Description

Video games, digital art and literature, online texts, and source code are analyzed in the contexts of history, culture, and computing platforms. Approaches from poetics and computer science are used to understand the non-narrative digital uses of text. Students undertake critical writing and creative computer projects to encounter digital writing through practice. This involves reading and modifying computer programs, so previous programming experience, although not required, will be helpful. The graduate section includes additional assignments.

Elaborated Description

This course considers the wide spectrum of ways that text, language, and writing have been used in creative digital media, including video games, digital artworks and installations, electronic literature pieces, websites, message boards, the interface to and source code of recreational programs, and other sorts of systems and spaces. The focus is on the many non-narrative uses of text, which include the use of text for the display of information, for visual and lyrical purposes, and as human-legible computer code. The course considers these uses of text within different contexts of computing and upon different computing platforms. Drawing on concepts and approaches from poetics, the material history of texts, and computer science, the course explores how text has been used effectively in digital media and how the use of text relates to the overall goals of digital media creators.

Students interact with and read various creative computer works, supported by critical readings from the Web and printed sources. The understanding of text in digital media is developed through practice, by completing several digital writing projects, some individually and some in groups. The projects in this course involve reading and modifying computer programs. Previous programming experience is not necessary, but students should arrive ready to learn the basics of programming if they do not already know how to program. While there are no prerequisites, some experience with writing and/or media studies, in the form of a previous CMS and/or writing course, will be extremely useful.

Graduate students may take this course, with additional assigned work, as CMS.846 for graduate credit. A complement to this course is 21W.765J/21L.489J/CMS.845 Interactive Narrative, which deals with the narrative uses of text (and other media) in digital works and which could be taken at any point relative to this course.

Why?

The course serves a wide range of students curious about the intersection between computation, language, and the literary.

For Writing majors and minors as well as others who want to take a single course on digital writing, this course offers a good option. For students majoring or minoring in Comparative Media Studies, the course addresses a single aspect of digital media that is pervasive and important to our understanding of media ecology and the uses of digital media in culture. It complements courses that consider video gaming and digital media from visual, cinematic, and spatial perspectives.

About Programs and Papers

Programs are assigned simultaneously with the two papers so that your critical writing can inform your creative programming practice and vice-versa. You may choose to do the two assignments in sequence and in isolation (program first, then paper, or vice-versa), but if you do, you'll miss out on the chance for the paper to positively influence your program. There is no length requirement for programs or papers; they should accomplish the goal of the assignment.

There is a brevity requirement for programs. All programs submitted (from 0.0 through 4.0) should be no more than 200 lines of code + data, with lines no longer than 80 characters, including comments. Your programs should be self-contained and have no externals: No use of Web APIs; no use of libraries except those that are built-in to the programming language you are using; no reliance on any other code or data file. A program for the Web can be in the form of an HTML page, a JavaScript file, and a CSS file, for instance, with all counting toward the 200-line limit. If you do not come from a programming background you are allowed to modify a single program, with your changes not exceeding 200 lines. This is not a class about mash-ups or about large-scale software development, but about developing small, jewel-like programs where the code is well-understood by its programmer and accessible to others.

Bring a Computer to Class!

You can do work for the class using any major OS: GNU/Linux, Mac OS X, or Windows. Bring your own notebook computer or one you borrow from the Computing Equipment Loan Program. We will spend time in class just about every week doing some exercises or work on student projects. We meet in a classroom with good audiovisual support and movable chairs to facilitate small group work and class discussions, but we do not have a computer lab with machines for everyone.

Schedule

Assignments and their due dates are noted. Readings will be linked. The readings that are assigned to everyone will be available on the Web. Students each must obtain a (physical, print) book during the semester to do a book report on. This may involved making a purchase, although books can also be obtained from the MIT Librares or via ILB (Interlibrary Borrowing).

Assignment Deadlines

Submit your work (in a zipfile, as a true email attachment) by email to me by 10am on the day it is due, so we can discuss projects in class at 2pm and so I will have time to assemble links to everyone's work beforehand. A zipfile is a compressed set of files ending in .zip and can be created without cost in any modern operating system. A “true” email attachment is a file that is actually sent along via email with the body of an email message. This is in distinction to a link to Dropbox, Google Drive, WeTransfer, etc.

I — Simple Combinatorial Text Generation

1: September 13

Creative computing on text is introduced though a handful of small-scale systems that do something very simple — combining text fragments uniformly at random — but nevertheless produce interesting results.

Assignment due Sep 13. (Today!) Submit your in-class generator exercise by email. You are not assigned to revise this at all, just to send it to me. You are welcome to send it in right at the end of class before you depart. This will count as part of your participation grade.

Assignment due Sep 27. Bring a computer-generated book to class that you plan to report on in Paper 1. Here is an old but hopefully helpful bibliography of such books. You can check it out from the MIT Libraries, get it via Interlibrary Borrowing, get it from a local library (if one is available), or purchase a new or used copy of a book from an online or brick-and-mortar bookseller. If you have any questions about what is a good selection, email the instructor. This will count as part of your participation grade.

Program 0.5 assigned, due Sep 20. Write a very simple text generator that is nevertheless interesting. No previous programming experience is needed; you may modify an existing program and, if your plan for doing so is good enough, can change only the textual data (leaving the code and parameters the same). Whether you modify a program or write one from scratch, it should do something new with language and computation. Programming languages that would work include JavaScript, Java, Perl, Processing, and Python, or even BASIC. Others could be fine, too. Consult with the instructor if you have any question about which language to use or how to get started.

Paper 1 assigned, due October 4. Write a short critical discussion of a particular computer-generated literary book. Bring in some scholarship about combinatorics, randomness, computation, and/or the domain of the system. You may refer to our class discussion of systems, but you should base your paper on the book you found will bring into class September 20. The paper should be long enough to reach and develop some sort of significant insight — to reveal something about the system that is not obvious to begin with.

2: September 20

Program 0.5 workshop: Program 0.5 due (for everyone) for discussion in class.

What is a workshop? In a workshop, participants read their writing aloud and demonstrate demonstrate early versions (sketches) of systems that they are developing. We pretend that the work offered to us in this way is our own writing or our own in-progress system, and that the the underlying goals and purposes of the author are our goals and purposes, and then we sincerely try to determine how to revise, reimagine, reconceptualize, add to, or cut the text, or modify the system, to better accomplish these purposes. We do not ask the participant to interpret or explain what is being expressed in his or her work — instead, we respond to the work. Our discussion will be undertaken with complete respect for the writer/developer, the work, and the purposes behind the work, and will not resort to either euphemism or harshness.

Also discussed today: Claude Shannon and the application of Markov processes to English ... charNG.

Program 1 assigned, due October 4. Revise program 0.5 or rework it.

3: September 27

Meet in our regular room, 1-277. We will have a visit to the MIT Trope Tank later in the semester.

Display of books you have selected for paper 1. You need to have an actual book, printed on paper and bound together, in class with you today. We will discuss the books you are examining in paper 1.

Program 1 due at 10am via email. In class we will have full presentations of Program 1, including discussion of your journey in revising/reworking to complete this program. What did you do? What did you learn?

II — Tiny Generated Books

4: October 4

Meet in the MIT Trope Tank, 14E-316. This is in Building 14, where the Hayden Library and Lewis Music Library are also located. East wing, 3rd floor.

Paper 1 due. Bring it on paper, stapled, to turn in.

Program 1.5 assigned, due Oct 18.

Prompt/assignment: Create your own tiny computer-generated booklet using (1) a short, self-contained Python program of no more than 66 lines (80 characters/line); (2) a single printed sheet, US letter size, which can be printed single-sided or double-sided. You can cut this sheet and staple it, get even more fancy and use a pamphlet stitch, or use the 8-page zine cut-and-fold technique. Make at least six copies for review in class and so you can submit one to me.

No Class: October 10. MIT Student Holiday.

5: October 18

Program 1.5 workshop: Program 1.5 due (along with the booklet!) for discussion in class.

Prof. Nick Thurston visits (during the second half of class) to discuss conceputalism, quotational writing, and computer-generated writing.

Program 2 assigned, due October 25. (Syllabus was incorrect until the last moment!) Revise program 1.5, or rework it, or set off in a new direction based on how that project went. Keep the one-page code restriction and the format of a one-sheet booklet. This time, make a copy for everyone in class, including me. The copies students provide me will be display in the MIT Trope Tank, 14E-316. The others will allow you to trade with your fellow students.

6: October 25

Program 2 is due at 10am for discussion during the first hour of class. We will have look at the finished booklets as he hear about decisions made and insights gained during the revision process.

Initial examples of "Digital Forms" (relevant to the next program and paper): tweets, Yelp reviews, Amazon reviews, Internet Oracle questions and responses, .plan files in response to "finger." Let's list others...

III — Digital Forms

7: November 1

The questions we'll use as starting points are: What form or constraint is this piece "implementing"? How exactly is it doing that?

Program 2.5 assigned, due November 8. A digital project that exists within and adheres to a “born-digital,” and all-digital, form/format. You need to select an existing form “implement” it.

Paper 2 assigned, due by email November 22. Computer-generate a short critical paper using a Transformer-based LLM (Large Language Model) such as GPT-NeoX 20B and then write a brief (2 pp. or so) discussion of your experiences using this type of text generation. (1) The paper you generate will be a critical discussion of a particular form of digital writing that traces one or more of its material, formal, explicit, or implicit constraints and explains something about the form in light of those constraints. The form could be popular or unpopular, low-brow or high-brow, recent or antiquated: Advice animals, bash.org quotes, Wikipedia articles, Arts & Letters Daily teasers, Unix man pages, etc. (Admittedly, this list now leans toward the antiquated.) You should characterize the form and the important constraints and reveal at least one non-obvious thing about the form through your analysis. (2) You will generate it using a system such as GPT-NeoX 20B, although if you like you could use another system. GPT-NeoX 20B can be used for free and is an free/open-source system. You do not need to pay for access to a proprietary LLM to do this assignment. (3) After you have generated a critical paper, write a discussion of your process and an assessment of how useful (or useless) the LLM was for you in this particular case.

8: November 8

Program 2.5 workshop: Program 2.5 due at 10am by email for discussion in class.

Program 3 assigned, due November 22. Revise program 2.5, or rework it, or set off in a new direction based on how that project went.

NO CLASS on November 15. I will be in Europe. Paper 2 will be due by email.

9: November 22

Program 3 presentations, similar to program 2 presentations. I will also ask you to summarize the insights you reached as you completed your paper 2. You do not need to prepare a formal oral presentation of your paper, however. This is just an in-class discussion.

To prepare for the next unit: Liza Daly on NaNoGenMo, 2017; a special twist on the event, Nano-NaNoGenMo, is introduced.

Program 3 due 10am (for everyone) for discussion in class. Paper 2 due.

IV – Document- and Corpus-Based Books

10: November 29

In-class play and discussion of this year’s entries in National Novel Generation Month (NaNoGenMo) as well as standouts from previous years.

Program 3.5 assigned, due May 2. Produce a book generator (not a booklet generator!), the output of which is at least 50,000 words. You can have this program accept a single document (such as the novel Moby-Dick) as input, have it use a very small and well-defined corpus of texts (3-5 edited e-texts), or have it use an existing resource developed by another researcher. You should not be spending a large amount of your time cleaning data and processing text.

11: December 6

Program 3.5 workshop: Program 3.5 due for discussion in class.

12: December 13

Program 4 due 10am. Presentations. Discussion of how to continue, refine, test, document, and release projects after the class. Possible micro-project done as a collaboration between all of all in class.

Evaluation

Official Notices

The MIT Writing and Communication Center

MIT Writing and Communication Center offers free one-on-one professional advice from communication specialists with advanced degrees and publishing experience. The WCC can help you learn about all types of academic and professional writing and further develop your oral communication skills. You can learn more about WCC consultations and register with the online scheduler to make appointments. Please note that WCC hours are offered Monday-Friday, 9:00 a.m.- 6:00 p.m., and fill up fast.