Current Topics in HCI - Winter Semester 2004/2005

Assignment 3 - LEAPs and Bounds
Due on Monday, November 15, 2004 @23:59


Raskin introduces the "LEAP" key in Chapter 5. Your task for this week is to implement the LEAP key with a subset of its functionality in a "Canon Cat Lite" system.


Implement a Java program, the Canon Cat Lite, that loads in a file called "filesystem.txt" when it is started. This text file is your Canon Cat Lite's entire filesystem and has the following characteristics:
  • it resides in the same directory as your Java program
  • it contains only ASCII text
  • paragraphs are separated by a blank line
  • documents are separated by two blank lines

A sample filesystem.txt has been provided for you, which contains three documents (humour from

Once your program starts, your user is now using your Canon Cat Lite system. The UI consists of a single text area which shows the contents of the user's filesystem. Your user should be able to leap to the next/previous paragraph and next/previous document in your filesystem. Using the leap key, s/he can also select paragraphs or documents and cut/copy/paste them. No other form of leaping or editing functionality is required for this assignment.

Since there are no dedicated leap keys on modern computers, we will use "Ctrl" for LEAP-Up and "Alt" for LEAP-Down. The other keys we will use are F8 for "paragraph", F9 for "document", and F10 for "select". Pressing the "select" key after a leap operation selects the text that was just leaped over. Use the standard Ctrl-X/C/V convention for cut/copy/paste. For simplicity, assume that LEAPs do not wrap (i.e. once you reach the end of filesystem.txt, LEAP-Down operations do nothing). Note, however, that this is contrary to what Raskin specifies in the book. Also for simplicity, you are not required to make any user changes to the filesystem persistent.

Some Java classes that you may help you: StringTokenizer, JTextArea.

Do not use any platform specific libraries/code your Canon Cat Lite program should run on any computer (Windows, Mac, Linux) with a standard installation of Java 1.4.2. We will be grading your assignments on the Mac, so it is strongly advised that you test your submission on one of our lab machines before handing it in.

You may complete this assignment by yourself or in groups of two (recommended).

Some ideas for extra credit for this assignment:
  • Incorporate any of the ideas Raskin suggests to make an interface more "humane" for example, if you close and restart your Java app (Canon Cat Lite), it should return you to exactly where you left off.
  • Make the LEAP key wrap around when you reach the end of the document. This should apply to selections as well.
  • Ability to LEAP to arbitrary string patterns (you will have to reassign the cut/copy/paste keys if you do this of course).


Email an archive of your assignment to This email address is being protected from spambots. You need JavaScript enabled to view it. before the due date. The subject of your email should be "CTHCI Assignment 3"; be sure to use this exact subject line as it will be used to filter assignment submissions for grading.

Your assignment archive should include all files required to compile and run your Java code. Do not include compiled object (.class) files. Include a short plain text README file that contains:
  • the names and email addresses of all group members
  • instructions on how to compile and run your code
  • a short description of what your program does
  • non-obvious things you did (if any)
  • if you did any extra credit work, be sure to tell us what you did


The assignment will be graded on the following rough scale:
  • 1.0 - exceptional work that clearly went above and beyond what was expected from the exercise
  • 2.0 - exercise was completed satisfactorily as per the assignment specification
  • 3.0 - exercise was completed, but has some problems
  • 4.0 - incomplete exercise
  • 5.0 - little or no effort was put into the exercise

Late assignments will be graded with a penalty of 0.5 per 24 hour period after the due date.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.