Introduction to Interactive Programming
by Lynn Andrea Stein
A Rethinking CS101 Project

Known Bugs and Errors

With thanks to Carl Alphonce, H. David Stein, and Debora Weber-Wulff, so far!

This file contains a list of corrections to the Interactive Programming beta edition distributed by Morgan Kaufmann as PDF files in the fall of 1999. Some of these corrections have been incorporated into the html available on the MIT site.

We're sure there are more. Please email additional corrections to

General Issues

Several programming examples are poorly formatted in the pdf. Line wrapping makes some of the code difficult to read or even changes the scoping of comments. Underlining and spacing interact badly.

Chapter 1: Introduction to Program Design

Page 1-6 Section 1.3
Change "What kinds of things to" to "What kinds of things do"

Page 1-11 Section 1.5.1 Footnote 3

"can handle is called" to "can handle at any one time is called"

Interlude: A Community of Interacting Entities

Page I1-12, sidebar on strings:
substring (beginIndex,endIndex) ends at endIndex-1, not at endIndex. So "Hello".substring(1,4) , not (1, 3), is "ell".

Page I1-15 Section 1.3.4 last paragraph

Change "Thisk" to "This"
Page I1-18, Section 1.3.5
The class NameDropper is badly formatted and the definition of transform is incorrect. It should read:
class NameDropper extends StringTransformer
String name;        // the persistent storage,
                    // a permanent part of each NameDropper
NameDropper( whatMyNameShouldBe )
{                                   // the creation rule
 = whatMyNameShouldBe;
String transform ( String whatToSay )
{                                   // the transform rule
           return + " says " + whatToSay;

Chapter 3: Things, Types, and Names

Page 3-14
line 8 change: "while Console.print does." to "while Console.println does."

Chapter 4: Specifying Behavior: Interfaces

Page 4-12 Section 4.3.1
Change: COunting to Counting

Chapter 5: Expressions: Doing Things With Things

Page 5-5:
substring (beginIndex,endIndex) only cuts to endIndex-1, not to endIndex, so you can extract the word "REND" using "serendipitous".toUpperCase().substring(2,6), not (2,5).

Chapter 6: Statements and Rules

Chapter 7: Classes and Objects

Chapter 8: Designing with Objects

Page 8-4 Section 8.1.3
Change "int field0" to "int field"

Page 8-11 Section 8.2

Change "objects to a lot of different" to "objects do a lot of different"

Page 8-22 Section 8.3.3

Change "setTIme()" to "setTime()"

Page 8-24 Exercise 2

Change "What doe s its" to "What does its"

Chapter 9: Animate Objects

Chapter 10: Reusing Implementation: Inheritance

Chapter 11: When Things Go Wrong: Exceptions

Chapter 12: Dealing with Difference: Dispatch

Chapter 13: Encapsulation

Chapter 14: Intelligent Objects and Implicit Dispatch

Chapter 15: Event-Driven Programming

Chapter 16: Event Delegation (and AWT)

Chapter 19: Communication Patterns

Chapter 20: Synchronization

Chapter 21: Network Programming

© 2003 Lynn Andrea Stein

This chapter is excerpted from a draft of Introduction to Interactive Programming In Java, a forthcoming textbook. It is a part of the course materials developed as a part of Lynn Andrea Stein's Rethinking CS101 Project at the Computers and Cognition Laboratory of the Franklin W. Olin College of Engineering and formerly at the MIT AI Lab and the Department of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology.

Questions or comments:

cs101 icon