Inter L&S 102: Writing and Coding (Fall 2013)

10print running on a Commodore 64

We typically think of computer programming as a technical skill, one that involves the disciplines of math and science, and we often consider software to be a tool, something that helps us complete tasks efficiently. However, software can be more than a tool, and many writers and scholars in the humanities write code. We can use computer programming to create literature and to explore new ways of expressing ideas. In this class, we'll examine computer programming as a writing practice, as a way to express ideas and make arguments. From video games to digital storytelling to electronic poetry, software can be used to create worlds and to play with language.

This course is part of a Freshman Interest Group (FIG), and students also enroll in two other courses: "Introduction to Composition" and "Introduction to Computation." This FIG does not require that students know anything about programming a computer or about digital games. The class offers multiple opportunities to tinker with various technologies and to try out new writing practices. The only requirement is curiosity. In this class, we will ask: What happens when we explore the relationships between writing and coding? What do these practices have in common, and how are they different?

Syllabus

Professor: Jim Brown
Teaching Assistant: Brandee Easter
Class Meeting Place: 2252A Helen C. White
Class Time: Monday, 2:30pm-5:00pm

Jim's Office: 6187E Helen C. White
Jim's Office Hours: Monday 12:00-2:00pm [Make an Appointment]
NOTE: Some office hours meetings will happen via Google Chat, Skype, Learn@UW instant messaging, or some other technology
Jim's Email: brownjr [at] wisc [dot] edu

Brandee's Office: 7153 Helen C. White
Brandee's Office Hours: Tuesday 1pm-5pm [Make an Appointment]
Brandee's Email: bdeaster [at] wisc [dot] edu

Course Website: http://courses.jamesjbrownjr.net/102_fall2013

Course Objectives
In this course, we will:

  • Learn how to evaluate and analyze new media objects
  • Use digital technologies to express ideas and make arguments
  • Develop sustainable writing and design processes
  • Work collaboratively on computer programming and game design projects

Required Texts:

Course Work
In this class, the following work will be evaluated (details can be found in the "Assignments" section of the course website):

  • Attendance and Participation
  • Group Persuasive Game Project (game + presentation)
  • Group 10print Project (presentation)
  • Group Arduino Project

Learning Record
Grades in this class will be determined by the Learning Record Online (LRO). The LRO will require you to observe your own learning and construct an argument for your grade based on evidence that you accumulate throughout the semester. You will record weekly observations and you will synthesize your work into an argument for your grade. You will construct this argument twice - once at the midterm and once at the end of the course. We will be discussing the LR) at length during the first week of class. See below for more details.

Attendance
Success in this class will require regular attendance. I will take attendance at each class meeting, and your Learning Record will include a discussion of attendance. You are required to attend class daily, arrive on time, do assigned reading and writing, and participate in all in-class work. Please save absences for when you are sick or have a personal emergency. If you find that an unavoidable problem prevents you from attending class or from arriving on time, please discuss the problem with me.

Lateness
If you arrive five minutes after class is scheduled to begin, you will be considered late. If you are more than 10 minutes late for class, you will be considered absent. If there is something keeping you from getting to class on time (i.e., you have a long trek across campus right before our class), please let me know during the first week of class.

Computers, Smartphones, etc.
Please feel free to use your computer or any other device during class, provided that your use of it is related to what we are working on in class. Please silence cell phones during class.

Grades
Grades in this course will be determined by use of the Learning Record, a system which requires students to compile a portfolio of work at the midterm and at the end of the semester. These portfolios present a selection of your work, both formal and informal, plus ongoing observations about your learning, plus an analysis of your work in terms of the five dimensions of learning and the goals for this course. You will evaluate your work in terms of the grade criteria posted on the LRO site, and you will provide a grade estimate at the midterm and final.

The dimensions of learning have been developed by teachers and researchers, and they represent what learners experience in any learning situation:

1) Confidence and independence
2) Knowledge and understanding
3) Skills and strategies
4) Use of prior and emerging experience
5) Reflectiveness

In addition to analyzing your work in terms of these dimensions of learning, your argument will also consider the specific goals for this course. These goals are called Course Strands (these are also listed above in the "Course Objectives" section):

1) Digital Analysis
2) Digital Expression
3) Writing/Design Process
4) Collaboration

The LRO website provides detailed descriptions of the Course Strands and the Dimensions of Learning.

Your work in class (and in other classes during this semester) along with the observations you record throughout the semester will help you build an argument in terms of the dimensions of learning and the course strands. We will discuss the LRO in detail at the beginning of the semester, and we will have various conversations about compiling the LRO as the semester progresses.

Late Assignments
Due dates for assignments are posted on the course schedule. While I will not be grading your assignments, I will be providing comments and feedback. I will not provide feedback on late assignments. Also, late assignments will be factored into your argument in the LR (see the grade criteria for more details).

Intellectual Property
Much of what we'll be working on this semester involves the appropriation of existing texts. This is no different than any other type of writing - all writing involves appropriation. The key will be to make new meaning with the texts that you appropriate. Copying and pasting existing texts without attribution does not make new meaning. Some of your work will make use of different materials (text, video, audio, image), and you will have to be mindful of intellectual property issues as you create texts for this class. If you have questions about the University of Wisconsin's Academic Misconduct policy, please see the Student Assistance and Judicial Affairs website.

Technology Policy
We will use technology frequently in this class. Although I am assuming that you have some basic knowledge of computers, such as how to use a keyboard and mouse, and how to use the Web and check e-mail, most things will be explained in class. If you don’t understand what we are doing, please ask for help. If you are familiar with the technology we are using please lend a helping hand to your classmates.

Course Website and Email
You should check your email daily. Class announcements and assignments may be distributed through email. The course website will also have important information about assignments and policies. Pay close attention to the course calendar as we move through the semester. I reserve the right to move things around if necessary.

Emails to me must come from your wisc.edu email address. They must include a title explaining the email, a salutation (for example, "Dear Jim"), a clear explanation of what the email is about, and a signature.

Schedule


Unit 1: Rhetorical Computing

September 9
Read: Bogost, preface and pp. 1-14
Play: "Papers, Please"
In class: Discuss syllabus, discuss reading, discuss Papers, Please

September 16
Read: Bogost pp. 15-64
Play: "Papers, Please"
In class: Discuss LRO, discuss reading, discuss Papers, Please

September 23
Read: Bogost (your group's assigned chapter)
In class: Group presentations, game design workshop

September 27
[LRO PART A due at noon]

September 30
In class: Game design workshop

October 4
[Version 1.0 of game due at noon]

October 7
In class: Game design workshop

October 11
[Version 2.0 of game due]

October 14
In class: Game design workshop


Unit 2: Creative Computing

October 21
[Version 3.0 of game due]
Read: 10 PRINT pp. 1-18, pp31-50 ("Introduction" and "Mazes")
In class: Discuss reading, presentations

October 25
[Midterm LRO Due at Noon]

October 28
Read: 10 PRINT "Regularity" and "Randomness"
In class: Discuss reading, 10print workshop

November 4
Read: 10 PRINT "Basic," "The Commodore 64," and "Conclusion"
In class: Discuss reading, 10print workshop

November 11
10print presentations


Unit 3: Physical Computing

November 18
Read: Levi-Strauss (Dropbox), "Kinect-ing Together"
In Class: Arduino Workshop
NOTE: This workshop will run from 2:30 until 6:30, and dinner will be provided.

November 25
Arduino Workshop

December 2
Arduino Workshop

December 9
Physical Computing Project Presentations

December 21
[Final LRO due at 7:45am]

Assignments

Follow the links below for detailed descriptions of class projects.

Persuasive Game Project

During our reading of Persuasive Games, we have begun to think about how educational, political, and advertising games use procedures to persuade. In this project, you will have the opportunity to create your own persuasive game. You will also present your game to the class, explaining your group's issue and how your game sheds light on that issue.

In groups, you'll use the programming language Scratch to create a game that makes a procedural argument about an issue associated with your assigned section of the book. For instance, if your group was assigned the advertising section, you will make a game that uses procedural rhetoric as an advertising tool.

You will have ample class time to workshop your game (creating various versions, playtesting, revising the game, etc) and to work with your group members to build your game. Note that there are due dates for versions of the game. While there are not specific benchmarks for these versions, each version must be a playable version of the game. For instance, while version 1.0 will not incorporate all features and may only be a rough sketch of what you have planned, it must be a playable game.

Presentation
Throughout the game design process, you will also be crafting a 15-minute presentation about your game. You will be gathering information for the presentation and planning out how you will explain your game to the class. Early stages of this planning may be notes and an outline, but it should be progressing toward a 15-minute presentation that you will deliver on November 5.

Your group's presentation will explain the context of your game and the procedural arguments that your game makes. You may use any presentation software, but you should plan to incorporate visuals. All members of the group must speak during the final presentation, and you should be prepared to answer questions (as audience members for other group presentations, you should be also be prepared to ask questions).

DesignLab
During your work on this project, you must meet with the consultants at DesignLab at least once. The consultants at DesignLab can help you with both your game and your presentation by offering advice about how to best present your argument or explain your issue. Note that DesignLab is not a "help desk" and is not focused on providing answers to questions about software (these kinds of questions should be directed toward me and Brandee). Instead, DesignLab consultants are available to help you with creative development and planning.

When providing feedback, Brandee and I will be looking for the following:

    Game
  • Does your game make an effective and coherent procedural argument about your issue?
  • Does your game provide sufficient context for the issue?
  • Does your project demonstrate an understanding of the class readings and an application of their terms and concepts? You should be applying what you've learned in the Bogost readings and in our discussions about other games.
  • Has your group effectively managed the project, allowing all group members to take part in all phases (research, writing, coding, testing, etc)?
  • Has your group incorporated feedback from others in the class?
  • Is your project free from grammatical errors and generally well designed?
    Presentation
  • Does your presentation explain how your game responds to your assigned chapter in Persuasive Games?
  • Does your presentation provide sufficient context for someone who is not familiar with the issue or with your game?
  • Does your presentation explain your game's procedural argument?
  • Do all members of the group speak during the presentation?
  • Does your presentation incorporate visuals in a way that helps the audience?
  • Was your group prepared to answer questions about your issue and your game?
  • Are your slides free from grammatical errors and generally well written?

10Print Collaborative Paper and Presentation

The authors of 10 Print argue that creative computing allows us to explore the possibilities of a language, platform, or machine. Specifically, the 10 PRINT one-liner can be a useful way of understanding the various ways a certain computer language enables and constrains software design. In this project, your task will be to research a version of the 10 PRINT program. Versions of the program have been written in various languages and for various machines, and in group's you will be working to explain how your chosen version of 10 PRINT works and why that version of the program is interesting.

Each group will be assigned one of the "REM" chapters in 10 PRINT and will be tasked with writing a 1000-word paper and creating a 15-minute presentation. The paper will describe how your version of the program works while the presentation will focus on the significance of that version of the program and what it tells us about the language in which it's written.

For instance, if your group were to choose the Python version of 10 PRINT (this version of the program is not actually described in the text), that group's paper would offer a detailed account of how the program works and their presentation would explain what the Python version of 10 PRINT can tell us about the Python language.

Here are some things to consider as you work:

Paper
When describing how your version of the program works, you should model your discussion on pages 8-16 of the 10 PRINT text. Your explanation does not have to be as detailed as the one presented by the authors, but this section of the book offers a model for explaining how a program works.

Presentation
Your group's presentation will explain how your assigned version of 10 PRINT works, will cover some of the history of the computer language you are researching, and will explain what 10 PRINT tells us about the language in which it is written. This will require some research into the programming language you're discussing, and it may also mean attempting to write code in that language. In some cases, this will require using emulation software, much like the Frodo emulator I've used in class to emulate the Commodore 64.

You may use any presentation software you'd like for the presentation (Keynote, Powerpoint, Prezi, etc.), but you should plan to incorporate visuals. All members of the group must speak during the final presentation, and you should be prepared to answer questions (as audience members for other group presentations, you should be also be prepared to ask questions).

When providing feedback, Brandee and I will be looking for the following:

  • Does your paper adequately explain your version of 10 PRINT?
  • Does your presentation provide sufficient context for your assigned language? Does it provide some history of the language and how it's used?
  • Does your presentation explain how your version of 10 PRINT sheds light on the language in which it is written?
  • Do all members of the group speak during the presentation?
  • Does your presentation incorporate visuals in a way that helps the audience?
  • Was your group prepared to answer questions about your version of 10 PRINT?
  • Are your paper and presentation free from grammatical errors and generally well written?

Physical Computing Project

In our first two projects, we have considered code as writing, as an attempt to express ideas by way of procedures and processes. From videogames to various versions of the 10 PRINT one-liner, we have reimagined writing beyond the alphabetic. Code can be an expressive medium.

In this project, we will extend that line of thought into physical environments. By using the Arduino kits introduced during our workshop with Kevin Brock, we will design a responsive and interactive installation that asks an interactor to think differently about his or her body and about the physical space s/he is occupying. Your goal is to use the Arduino kit and a physical environment to communicate an idea. Previous projects asked you to build and study things that involve keyboard inputs and screen outputs. While a computer screen will be part of this new project, it will be coupled with the physical environment. The Arduino can accept various kinds of information (light, sound, a button push), and you will use those affordances to design a physical computing project that attempts to make us reflect on physical space and bodies.

Groups will choose some location on campus (indoors or outdoors) and make use of the physical environment to design an installation. The environment you choose is part of your installation, so you'll want to make use of it as much as possible. The choice of location will shape and constrain what you can or can't do with the project.

Like our previous projects, you will share your results in both a short paper and a presentation. Your paper will be short - a-500 word explanation that tells us what ideas you're trying to convey with your physical computing project. How are you asking an interactor to reimagine the physical space you've chosen? How are you asking that interactor to rethink how his or her body interacts with that space? These are the kinds of questions you should be answering in the 500-word paper.

In addition, your group will craft a 15-minute presentation. Presentations will need to show your project in action, either with video or images. You'll need to ask people to interact with your project, and you should document these interactions as well. You can use smart phones or any other type of equipment to document interactions. If you need access to equipment, let me know. Your presentation will need to do the following:

1) Explain the technical details of how the project works.
2) Explain the idea or ideas you're trying to convey with the project.
3) Demonstrate the project in action.
3) Discuss what you might change if given the chance to revise the project again.

As Brandee and I respond to projects, papers, and presentations, we'll be asking the following questions:

Projects

  • Does your project take full advantage of the affordances of the Arduino board?
  • Does the project successfully ask an interactor to reconsider bodies and physical space?
  • Can an interactor make sense of the project in the course of interaction, without any explanation on the part of the designers.

Papers

  • Does your paper clearly explain the idea your trying to convey with the project?
  • Is the paper free of grammatical errors and generally well written?

Presentation

  • Does your presentation show your project in action? Does it show us people interacting with it?
  • Do all members of the group speak during the presentation?
  • Does your presentation incorporate visuals in a way that helps the audience?
  • Was your group prepared to answer questions about the project?
  • Is it free from grammatical errors and generally well written?