> classes > the word made digital, spring 2018

The Word Made Digital
MIT · Spring 2018

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

Instructor: Nick Montfort, nickm at nickm dotcom, 14N-233
Class meets Wednesdays, 2pm - 5pm, 14E-310
Office hours beginning February 14: Wednesdays 10:30am - 11:30am & by appointment

Final collaborative project!

A movie pitch generator in Python 2/3. Developed, tested, edited, etc. in class using Pirate Pad in three hours. Free software; modify it yourself if you like.

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, in the form of a previous writing course or in some other form, 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.


The course serves a wide range of students interested in text and digital media, including those who are focused on videogames and those interested in literary play and literary systems.

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 on the Web can be in the form of an HTML page and a JavaScript file (which count towards the 200 lines) along with a CSS file (which need not). If you do not come from a programming background you are allowed to modify a single longer program; the changes you make it to should not exceed 200 lines. This is not a class about mash-ups, 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 IS&T Laptop Loaner 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.


Assignments and their due dates are noted. Readings will be linked; all of them will be available on the Web, so there are no books to purchase.

Time for Assignment Deadlines

Submit your work (URLs pointing to your work on the Web) by email to me by 11am of the day it is due, so we can discuss it in class at 2pm and so I will have time to assemble links to everyone's work beforehand.

(Simple Combinatorial Text Generation)

1: February 7

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 Feb 14. Post your in-class generator exercise somewhere on the Web (using your Athena account and Web space at MIT is fine) and send me a link to it. If you want to make a few small revisions, that’s fine, but don’t spend too much time on it. The assignment is just to post what you did in class.

2: February 14

Additional provocative text generators:

And some more from

Discussion of platform/language/approach each student will choose for program 0.5.

Program 0.5 assigned, due February 21. 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 would 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 February 28. Write a short critical discussion of a particular system for random text recombination, bringing in some scholarship about combinatorics, randomness, computation, and/or the domain of the system - for instance, in the case of About So Many Things, gender stereotypes. 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.

3: February 21

Discussion of systems being examined in paper 1.

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 early versions 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 March 7. Revise program 0.5, or rework it, or set off in a new direction based on how that project went.

4: February 28

Meet in 14N-233, The Trope Tank. Digital text viewing & programming on classic computers, including Commodore 64s.

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

5: March 7

Program 1 (brief!) presentations fosucing on final decisions and insights gained. Program 1 due 11am for discussion during the first hour of class.

(Tiny Generated Books)

Program 1.5 assigned, due Mar 14.

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 so we can look at them together and so you can show them around in class and trade with other students.

6: March 14

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

Program 2 assigned, due Mar 21. 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. Again, make at least six copies. Each student should provide me with a copy for display in/outside of 14N-233.

7: March 21

Program 2 (brief!) presentations focusing on final decisions and insights gained. Program 2 due 11am for discussion during the first hour of class.

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...

NO CLASS: March 28 - Spring Break

Note that you have readings to do for next week - but no other assignments. Readings for April 4: "The Oulipo: Constraints and Collaboration," by William Gillespie; Six Selections from the Oulipo.

(Digital Forms & Constrained Writing)

8: April 4

Discussion of readings on the Oulipo. More on the Oulipo, Noulipo, and traditional forms. In-class writing exercises. Here is a link to the very useful Table of Forms.

We will read from and discuss the following in class:

Other relevant work, some of it hard to access these days:

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 April 11. The implementation of an originally non-digital writing procedure, of writing within a set pre-digital form, or of writing using a constraint, such as an Oulipian constraint. You should select an existing formal writing technique of some sort and implement it. You can make a system that is general (works on any source text) or not. You program can either be self-contained, with all the data it needs included within it (as in programs 0.5 & 1), or it can be data-driven and can transform texts (programs 1.5 & 2). The difference for programs 2.5 & 3 is that you are to take existing, documented writing procedures and constraints as starting points.

Paper 2 assigned, due April 18. Write a short 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: Lolcats image macros, Advice animals, quotes, Wikipedia articles, Arts & Letters Daily teasers, Unix man pages, etc. You should characterize the form and the important constraints and reveal at least one non-obvious thing about the form through your analysis.

9: April 11

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

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

10: April 18

Program 3 presentations, similar to earlier presentations. I will also ask you to summarize your discussion in paper 2 - you do not need to prepare a formal oral presentation of your paper, however. Program 3 due 11am (for everyone) for discussion in class. Paper 2 due.

11: April 25

(Interactive Texts)

In-class play and discussion of two “artgames” that engage text specfically and one digital poem I collaborated on:

Also, as an example, a slightly more than 200-line implementation of the first famous chatbot, Eliza, in Python.

Program 3.5 assigned, due May 2. Produce an interactive prototype that engages language and computation. It may be a game, may be a multimedia production, may be networked, etc. but in any case should be as simple as possible for its purpose. Program 3.5 should be interactive (this part is new from earlier programs) and capable of being shown in an interactive demo, but does not need to be fully tested and ready for arbitrary users. It also does not need to be technically complex; it should be designed to work well given your concept and the nature of the English language.

12: May 2

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

13: May 9

Program 4 due 11am. Presentations. Discussion of how to continue, refine, test, and release projects for those who are interested. In-class interaction with other systems as time permits.

14: May 16

We'll conclude with a collaborative in-class digital writing activity, one that will involve the whole class in a short project.


Official Notices

The WCC at MIT (Writing and Communication Center) offers free one-on-one professional advice from communication experts (MIT lecturers who all have advanced degrees and who are all are published writers). The WCC works with undergraduate students, graduate students and post-docs.

The WCC helps you strategize about all types of academic and professional writing as well as about all aspects of oral presentations (including practicing your presentations & designing slides). No matter what department or discipline you are in, we help you think your way more deeply into your topic, help you strategize to convey your message more effectively to particular audiences, help you polish your style, and help you see new implications in your data, research and ideas. The WCC also helps with everything from understanding genre conventions to analyzing what particular journals require. We also help with all English as Second Language issues, from writing and grammar to pronunciation and conversation practice.

The WCC is located in E18-233. To register with our online scheduler, to make appointments, and to see detailed directions, go to To access the WCC’s many pages of advice about writing and oral presentations, go to The Center’s core hours are Monday-Friday, 9:00 a.m.-6:00 p.m.; evening hours vary by semester–check the online scheduler for up-to-date hours.