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
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.
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.
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.
Note: Readings will be specified in more detail, links will be added, and other small changes may be made throughout the semester.
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.
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.
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
A look at and discussion of Tale-Spin. (Micro Tale-Spin will run under GNU Common Lisp, see the instructions.)
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.
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.
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.
Codework that works. Students present pieces they have read closely.
Language in space and time. Students present pieces they have read closely.
Literal art. Students present pieces they have read closely.
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.
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.
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.)
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: 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).
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.
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.
When games were texts. Students present pieces they have read closely.
Text in the arcade. Students present pieces they have read closely.
TextBox 360: Language on the video game console. Students present pieces they have read closely.
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.
Language in the Cave. Discussion of the Cave context, scientific computing and visualization.
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.
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.
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.
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.
In-class programming exercise: one-line BASIC programs.
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!
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.