Fall Term 2005
Changes/corrections in red.
In human-computer
interfaces using a mouse and point-and-click interaction, the difficulty of a
task is quantified by a relationship known as “ID” or “index of
difficulty”. It is an information
metric with the unit “bits”. The
relationship was first proposed by Paul Fitts in 1954. It is now known as Fitts’ law. Over the years, Fitts’ law has been
used extensively in experimental psychology and, since 1978, in human-computer
interaction. The
relationship proposed by Fitts is
ID = log2(2A
/ W)
Where A is the
amplitude, or distance, to move, and W with the width of the target to
select. For example, the following

shows a point-and-click
task with the path as a red solid line, the goal being to click the target
(perhaps a button in a toolbar) on the right. The distance to move is 20 cm and the width of the target to
select is 2.5 cm, hence the difficulty of the task is
ID = log2((2
x 20)/ 2.5 ) = 4.0 bits
Since ID is an
information metric, in bits, the human rate of information processing (in “bits
per second”, or “bps”) may be calculated by dividing the task difficulty (in
“bits”) by the time to complete the task (in “seconds”). Fitts called this rate IP, the
rate of information processing, although the term “bandwidth” is more common
today. As an example, if a user
completed the task above in, say, half a second, then the user can be said to
be performing at an information processing rate, or bandwidth, of
4.0 / 0.5 = 8.0 bps
The higher the bandwidth,
the better. One use of Fitts’ law
is as a measurement tool for testing and comparing pointing devices and
interaction techniques.
Besides the relationship
proposed by Fitts, two variations are also used, the “Welford” formulation
ID = log2(A
/ W + 0.5)
and the “Shannon”
formulation
ID = log2(A
/ W + 1.0).
For a simple overview of
Fitts’ law, see
http://www.yorku.ca/mack/GI92.html
Your goal in this
assignment is to implement
an “ID Calculator”. Design and
implement an interface that allows a user to specify an amplitude (A)
and width (W) of a point-and-click task. Your program will compute and display the corresponding
index of difficulty (ID).
Since users might prefer the Fitts, Welford, or Shannon formulation, it
would be useful to allow the program to work with whichever variation the user
prefers. Include optional
features, as appropriate.
Notes:
1. Your application should be robust
with a good user interface. Make appropriate use of the various GUI components
and features supported in JFC/Swing. Consider the organization, presentation,
interaction, and over-all usability of your program.
2. Your source code should be well
organised and documented.
3. You must do this assignment in
groups of three.
4. This assignment is due on Sunday,
October 9, at midnight.
5. Do not use the york
package.
6. Your programs must compile and run
in the Prism lab.
7. Be sure to read and follow the
instructions given below on what to submit, and the format for the top of the readme.txt
file.
8. The assignments will be awarded
letter grades, according to the university's letter grade standard. A program
that simply fulfils the requirements described here will be awarded a 'C'. To
get a higher grade, we want to see "an excellent job and originality"
in your assignment solutions.
9. Name your program 'a1.java'.
Submit it on Prism with 'submit 3461x a1 a1.java' where 'x' is your section (A, or B). Additional files, if required,
may be submitted using the same command, with the filename as the last
argument. (Use 'man submit' for further details on using the submit
command.)
10. Also submit a text file named 'readme.txt'
in which you describe the motivation behind your software design. Why did you
use the JFC/Swing and HTML components that you did, and why did you organise
them that way? Briefly justify your design. If your implementation includes any
special features, make sure you describe these and provide appropriate
instructions.
11. The readme.txt file should also contain a record
of your group meetings. Include the date and time of each meeting, the people
present, and the topics discussed. If other forms of communication were used
(e.g., e-mail, phone), indicate the type and extent. Also include in your readme.txt
file a record of the tasks assigned and performed by each member of the team.
12. Note: the first three lines of the readme.txt
file must contain the following four comma-delimited fields, with nothing
following the fourth field.
LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s)