nickm.com > classes > the word made digital, spring 2008

The Word Made Digital

21W.764J/CMS.609J/CMS.844
Instructor: Nick Montfort, nickm at nickm dotcom, writingnick on IM, 14N-233
Class meets Mondays and Wednesdays, 9:30am - 11am, 14E-310
Office hours: Mondays 1pm - 2:30pm, 14N-233 and by appointment (in person or via IM)
Updated 13 April 2008

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 will explore 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 will 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 will also be 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.844 for graduate credit. One of the six sections of this course covers material explored in greater depth and more comprehensively in 21W.772 Digital Poetry. Another 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 can be taken at any point relative to this course.

Why?

The course serves a wide range of students interested in text and digital media, from artists and creative writers who want to create digital literary works to those interested in online and in-game advertising. The course builds on the Writing and Humanistic Studies Program's extensive undergraduate offerings that relate to digital media: Interactive Narrative, Digital Poetry, Becoming Digital, and Writing in Cyberspace. For those who want to take a single course on digital writing, this course offers an additional option. For majors and minors, this course will help to provide a deep and broad education in digital media and writing. For students in Comparative Media Studies, the course will address a single element of digital media that is pervasive and important to our understanding of media ecology and the uses of digital media in culture. It will complement courses that consider video gaming and digital media from visual, cinematic, and spatial perspectives.

Outline of the Course

  1. Recreational Computing & Early Computer Creativity (1-5)
  2. Computational Poetry & Fiction (6-9)
  3. Digital Communication Channels (10-14)
  4. Commercial Video Games (15-18)
  5. Art Games, Installations & Performances (19-21)
  6. Student Language Games Workshop (22-23)
  7. Obfuscated Code & Human-Legible Programs (24-26)

Note: Readings will be specified in more detail, links will be added, and other small changes may be made throughout the semester.

1 - Recreational Computing & Early Computer Creativity (W Feb 6)

Demonstrations of Christopher Stratchey's M.U.C. love letter generator, random haiku (1 2 3), Eliza. Preview of selected digital works that will be read and discussed later in the semester.

In-class combinatorial writing exercises on paper.

2 - Recreational Computing & Early Computer Creativity (M Feb 11)

Discussion of digital and pre-digital techniques for combinatorial writing.

Beyond the cut-up: Literary constraint and potential literature.

In-class cut-up writing exercise.

Program 1 assigned. Languages such as Perl, BASIC, and others (with instructor approval) may be used; Python is the class's official "supported" language.

For program 1, you're asked to write a program that produces creative writing as output, like the Manchester love letter generator, the haiku-generating programs we looked at, Eliza, Tale-Spin, assert.py, and ppg256.

Your program 1 isn't supposed to assist someone in writing; it should do the writing itself. It can implement some non-digital system for writing that we investigated in class (a Surrealist writing game, the cut-up technique, writing under an Oulipian constraint), or it can imitate formulaic but interesting human speech or writing. It isn't supposed to be complex. Rather, it should be simple, the simpler the better. You should be able to tune it and modify it so that it does better or worse at the writing task you're interested in. If you have a program that could be improved by generalizing many steps into a single method, or in other ways, you do not need to refactor your program to make it short in order to complete the assignment, but doing so may help you develop a better program. I will be glad to help you with refactoring so that you can adjust your program more easily and improve its writing output.

The hard part shouldn't be the programming (although those with no previous programming experience will face some challenges), but that your program should be an investigation into writing and language. Your creative work will, hopefully, help you to learn new things about how people write and speak and about how we receive language. It may make an argument that some type of writing is formulaic, or perhaps that certain phrases and words are powerful no matter how they are combined.

Readings for this class

3 - Recreational Computing & Early Computer Creativity (W Feb 13) Meet in 26-139

Constrained writing and Python programming exercises. See also: the official site of the Oulipo (in English and French), the 20 Consonant Poetry site, and Table of Forms. To begin with computational writing, a very simple language-generating program, assert.py

Readings for this class

4 - Recreational Computing & Early Computer Creativity (Tuesday Feb 19)

A look at and discussion of Tale-Spin. (Micro Tale-Spin will run under GNU Common Lisp, see the instructions.)

Readings for this class

5 - Recreational Computing & Early Computer Creativity (W Feb 20)

Detailed explanation of a short poetry generation program, ppg256-1. Review of some programs from the first class with consideration of Burroughs, Swift, the Oulipo via Gillespie, Link, and Wardrip-Fruin.

6 - Recreational Computing & Early Computer Creativity (M Feb 25)

Brief presentation of all student projects in a screening format. Students will explain how they function and demonstrate their programs.

DUE: Program 1. A program that writes automatically and implements some originally non-digital procedure.

7 - Computational Poetry & Fiction (W Feb 27)

Technologies of writing and the word. In-class reading of additional concrete, visual, and typewriter-related poems from Futurist and other traditions. Preview of works from this unit, assignment of works to students for close reading, presentation, and critical writing.

Readings for this class

8 - Computational Poetry & Fiction (M Mar 3)

Codework that works. Students present pieces they have read closely.

Readings for this class

9 - Computational Poetry & Fiction (W Mar 5)

Language in space and time. Students present pieces they have read closely.

Readings for this class

10 - Computational Poetry & Fiction (M Mar 10)

Literal art. Students present pieces they have read closely.

Readings for this class

11 - Digital Communication Channels (W Mar 12)

How does the form, material, and situation of digital communication influence what we write? Ability to support fluent writing of different sorts. Support for formatting, special characters. Conventions and contexts of writing and reading. Spaces in which writing is done.

DUE: Paper 1. Computational poetry & fiction critical essay, on the same topic as one's presentation. Bring a printed copy your paper, of between 5 and 8 pages, double-spaced, into class. We will take some time to discuss our writing before we move into the digital communication channel unit.

12 - Digital Communication Channels (M Mar 17)

Traditional digital forms beyond the web. HOWTOs, man pages, USENET and email messages, textfiles, RFCs. In-class exercise in compsing short messages for screen savers.

Readings for this class

13 - Digital Communication Channels (W Mar 19)

Focus on a contemporary digital media channel and how it carries/shapes language. (Guest lecture possibilty. Channels may include WoW, Second Life, Flash animations, Twitter, etc.)

14 - Digital Communication Channels (M Mar 31)

Focus on a contemporary digital media channel and how it carries/shapes language. (Guest lecture possibilty. Channels may include WoW, Second Life, Flash animations, Twitter, etc.)

Outcome of today's writing games: FAQs and HOWTOs written exquisite-corpse style.

Due

DUE: Paper 2. A critical analysis of one non-Web digital communication form (e.g. a HOWTO or textfile) presented in a different non-Web digital communication form (e.g. a USENET FAQ or man page).

15 - Commercial Video Games (W Apr 2)

Introduction to the use of text and langauge in video games. Different contexts of gaming: the arcade, computer gaming, console gaming. Enumerating the different functions of text in a "typical" game.

Readings for this class

Program 2 assigned. Languages such as Perl, BASIC, and others (with instructor approval) may be used; Python is the class's official "supported" language. You may wish to select a langauge that is more suitable for your particular type of work. You may begin by modifying an existing program as long as you do a "total conversion" of the program's textual output - that is, completely reprogram the text-generating ability of the program and completely rewrite all the texts that are used to produce outputs.

For program 2, you are asked to develop an interactive computer program that can be played and enjoyed, one that produces creative writing as output during play. It does not have to be a game in the strict sense of being winnable or allowing the player to do better or worse in a quantiative sense, but it should invite play in some form.

For example (this is not an exhaustive list of possibilities), you can write a piece of interactive fiction, a chatterbot, a roguelike game, a computer role-playing game, or even something that looks more or less like a screensaver but allows user interaction. Technical complexity is not required, graphics are not required, but the generation of creative writing is essential (as it was in program 1) and the program must be interactive (as was not required in program 1). There will be an in-class workshop to allow you to hear from your classmates. You should meet with me in my office or by IM at least once as you are developing program 2, either during office hours or by requesting an appointment.

Your program should be an investigation into writing, language, and play. It can build upon your work in program 1 or take you in a new direction.

16 - Commercial Video Games (M Apr 7)

When games were texts. Students present pieces they have read closely.

Readings for this class

17 - Commercial Video Games (W Apr 9)

Text in the arcade. Students present pieces they have read closely.

Readings for this class

18 - Commercial Video Games (M Apr 14)

TextBox 360: Language on the video game console. Students present pieces they have read closely.

Readings for this class

19 - Art Games, Installations & Performances (W Apr 16)

Art games. Documentation of various artist-created games will be shown, including some games that aren't text-heavy such as those by Cory Archangel and Eddo Stern.

DUE: Paper 3. Computer or video game essay, on the same topic as one's presentation. Bring a printed copy your paper, of between 5 and 8 pages, double-spaced, into class. We will take some time to discuss our writing before we move into the art games unit.

Readings for this class

20 - Art Games, Installations & Performances (W Apr 23)

Language in the Cave. Discussion of the Cave context, scientific computing and visualization.

21 - Art Games, Installations & Performances (M Apr 28)

DUE: Working (if incomplete) version of program 2 to show in class. Bringing this to class (or emailing it to me before 9am) and showing your work in progress is part of class participation; you are not otherwise graded on this.

Readings for this class

22 - Student Language Games Workshop (W Apr 30)

Class will be devoted to discussing work in progress on Program 2.

DUE: Paper 4. Art games, installations, and performances essay. Compare the use of text in a digital work from an art context (an art game, artwork, installation, or performance) with either the electronic literature work you wrote about or the commercial video game you wrote about - the same one you wrote about in paper 1 or 3. Bring a printed copy your paper, of between 3 and 5 pages, double-spaced, into class. We will take some time to discuss our writing before we begin the workshop.

23 - Program 2 presentations (M May 5)

Students will demo Program 2 and there will be a short time for critique.

DUE: Program 2. An interactive computer program that can be played and enjoyed, one that produces creative writing as output during play.

24 - Obfuscated Code & Human-Legible Programs (W May 7)

Popular computing, reading BASIC. Trace of two BASIC programs. Examination of layout, presentation, contextualization of programs in printed matter from the 1970s and 1980s. In reading the assigned articles, try to understand the programs and the programming languages (BASIC, WEB) presented and the concepts Knuth puts forth. You may run the BASIC programs if you like (the Ahl ones are available online) but be sure to read them closely.

Readings for this class

25 - Obfuscated Code & Human-Legible Programs (M May 12)

In-class programming exercise: one-line BASIC programs.

Readings for this class

26 - Obfuscated Code & Human-Legible Programs (W May 14)

Explication of obfuscated Perl and C programs. "Sight reading" of programs, obfuscated and otherwise.

DUE (I will accept your paper/program for full credit if you email it to me by SATURDAY, May 18, midnight): Paper 5 & program 3. A short paper explicating an obfuscated program and a revision of that program into a "literate" program — a program that is meant to be read and easily understood. You can select a short (one line or so) obfuscated program from these Perl JAPHs or choose an obfuscated C one-liner. If you know of another intentionally difficult-to-understand program in another language, that could work - email to ask if it will. You should write a program in Python or another language (with instructor approval) that functions the same way that the original program does - performs the same internal operations - but is clear and easy to understand, because of how it is written, what names you selected for variables, and what comments you wrote. Your paper should verbally explain what the Perl program does; your program should offer the same explanation in code. If you can accomplish this all in three pages, you don't need to write any more. If it seems like your text will take up more than eight pages, you have either picked too complex an example or are going into too much detail!

Summary of Assignments

Creative work

Critical work

Evaluation

Note: The Writing Center

The Writing and Communication Center (12-132) offers you free professional advice from published writers about oral presentations and about all types of academic, creative, and professional writing. To schedule an appointment, go to http://web.mit.edu/writing and click on the yellow sunburst. If you cannot find an open appointment slot, do not despair. There are always cancellations on the day of the appointment (sometimes as many as 15 cancellations in one day). Click on the wait list (the blue strip that says "Is the time that you want already reserved?"). Whenever a cancellation occurs on that day, you will be automatically notified by email. Because several people might receive that same message, go online ASAP to schedule that open spot; 96% of clients who want an appointment end up with one if they use the wait list. If you can't find an appointment, you try dropping in or try the online tutor. The Center's hours are Monday-Thursday, 9:00 a.m.-9:00 p.m.; Friday 9:00 a.m.-6:00 p.m.; and Sundays, 5:00-9:00 p.m.