Current Topics in HCI - Winter Semester 2004/2005
Assignment 3 - LEAPs and Bounds
Due on Monday, November 15, 2004 @23:59
Due on Monday, November 15, 2004 @23:59
Description
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.
Task
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 crazyapplerumors.com)
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"
Submission
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
Grading
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.