CSE 3461 User Interfaces

Fall Term 2005

 

Changes/corrections in red.

Assignment 1 (due Sunday October 9, 2004 @midnight in groups of 3)

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)