home
about

introduction
1. human
2. computer
3. interaction
4. paradigms
5. design basics
6. software process
7. design rules
8. implementation
9. evaluation
10. universal design
11. user support
12. cognitive models
13. socio-organizational
14. comm and collab
15. task models
16. dialogue
17. system models
18. rich interaction
19. groupware
20. ubicomp, VR, vis
21. hypertext and WWW
references

resources
exercises
online
editions
community
search

CHAPTER 12
cognitive models

 outline 

 links 

 resources 

 exercises 

EXERCISE 12.1

Recall the CCT description of the rule INSERT-SPACE-2 discussed in Section 12.2.2:

	(INSERT-SPACE-2
	IF (AND (TEST-GOAL insert space)
		(TEST-CURSOR %LINE %COL) )
	THEN (  (DO-KEYSTROKE 'I')
		(DO-KEYSTROKE SPACE)
		(DO-KEYSTROKE ESC)
		(DELETE-GOAL insert space) ))

As we discussed, this is already proceduralized, that is the rule is an expert rule. Write new 'novice' rules where the three keystrokes are not proceduralized. That is, you should have separate rules for each keystroke and suitable goals (such as GET-INTO-INSERT-MODE) to fire them.

answer

   (INSERT-SPACE-BEGIN-SET-MODE
IF (AND (TEST-GOAL insert space)
(TEST-CURSOR %LINE %COL)
(TEST-NOTE in command mode ))
THEN ( (ADD-GOAL get into insert mode)))
(INSERT-SPACE-END-SET-MODE
IF (AND (TEST-GOAL insert space)
(TEST-GOAL get into insert mode))
THEN ( (DO-KEYSTROKE `I')
(ADD-NOTE in insert mode)
(DELETE-GOAL get into insert mode)))
(INSERT-SPACE-DOIT
IF (AND (TEST-GOAL insert space)
(TEST-NOTE in insert mode)
(TEST-CURSOR %LINE %COL))
THEN ( (DO-KEYSTROKE SPACE)
(ADD-GOAL get into command mode)))
(INSERT-SPACE-CLEAN-UP
IF (AND (TEST-GOAL insert space)
(TEST-NOTE in insert mode)
(TEST-GOAL get into command mode))
THEN ( (DO-KEYSTROKE ESC)
(DELETE-GOAL get into command mode)
(DELETE-GOAL insert space)
(DELETE-NOTE in insert mode)
(ADD-NOTE in command mode)))

 

EXERCISE 12.2

One of the assumptions underlying the programmable user model approach is that it is possible to provide an algorithm to describe the user's behaviour in interacting with a system. Taking this position to the extreme, choose some common task with a familiar interactive system (for example, creating a column of numbers in a spreadsheet and calculating their sum, or any other task you can think of) and describe the algorithm needed by the user to accomplish this task. Write the description in pseudocode. Does this exercise suggest any improvements in the system?

answer

open-ended exercise

  

Create a GOMS description of the task of photocopying a paper from a journal. Discuss the issue of closure (see Chapter 1) in terms of your GOMS description. [page 424]

  

Do a keystroke-level analysis for opening up an application in a visual desktop interface using a mouse as the pointing device, comparing at least two different methods for performing the task. Repeat the exercise using a trackball. Discuss how the analysis would differ for various positions of the trackball relative to the keyboard and for other pointing devices. [page 440]

  
  • a worked exercise
  
  • a worked exercise