Work in teams of three or four people based on assignment in class.
By the end of your work, be sure that you have begun to think about the role that direct manipulation will play in end-user programming, as well as the difficulties that it raises.
Here are some questions to ask yourself as you think about end-user programming:
As is often the case with cutting-edge ideas in software, techniques from the field of artificial intelligence play a central role in making possible end-user programming. One of the hot topics in UI research is intelligent "agents" that act on the user's behalf in the interface. A UI agent can watch the user's actions, learn basic patterns and preferences, and customize the interface to suit the user's needs and desires. Agents are also popular in the areas of operating systems and WWW usage, for many of the same reasons.
Another research area that is affecting how we might be able to "do" end-user programming is the modeling of domain knowledge. When a designer knows a lot about the domain in which a software system works, she can know a lot about the user knows and expects.
If you haven't yet, read Alan Kay's foreword at the top of Cypher's document. Alan is an accomplished computer scientist (the inventor of the idea of the laptop computer and of object-oriented programming) with a deep sense of the ethical implications that computing has for the welfare of people and society. He has some interesting comments about the ethics of programming by demonstration...
Work in the same teams as you did for Exercise 28.
Shneiderman opens Chapter 7 with this sentence: "When designers cannot create appropriate direct manipulation strategies, menu selection and form fill-in are attractive alternatives."
Okay. When exactly is that? So I thumb back through Chapter 6, and forward through Chapter 7, looking for a section titled "When Designers Cannot Use Direct Manipulation Effectively", or some such. No luck. I guess I'll send e-mail to the author and ask him to fix this problem in his fourth edition.
In the meantime, what am I to do? Why, I'll ask my bright and eager 171 students to help me out! As a team, draft an outline for the missing section. Your section may consist primarily of a bullet list of points, but you should provide some introductory and summary text for the section, too. And the bullet list should have some real "meat" to it, too. Oh, and tell me where you'd place your new section, either in Chapter 6 or Chapter 7. A page number should suffice.
For next time, you will study the ExtremeProgramming (XP) web space. XP is a hot example of the hottest kind of software development methodology: "lightweight" methods that do not impose lots of non-programming paperwork and process on the developer. XP is relatively new in terms of public awareness, but it has a long and venerable history in many software development cultures.
The web page is part of what is called a Wiki Web, which is a read-write web space in which folks can discuss a topic and build a community. The ultimate effect of the dynamic nature of these pages is that they can sometimes be disorienting. To help you read the XP pages, I provide some guidelines for you.