Fall Term 2006
Changes/corrections in red.
Create a Java application for an alarm clock. The application should work entirely using just one key ("J") for input and a 200 x 300 pixel display for output. Since this is an alarm clock, you may also use audio output.
The intent is to create an application that could be used by someone with a severe motor disability. Such individuals include the renowned physicist Stephen Hawking who communicates entirely through a single manually-operated switch. Others are even more restricted in their motor facility and communicate through a sip 'n puff switch that is operated somewhat like a drinking straw:

For this assignment, we'll use just a single key for input, the "J" key.
If you think this is impossible, bear in mind that alarm clocks are highly moded (high in "cognitive friction" in the words of Alan Cooper) and typically operate through just a few switches or buttons:

Recently, the following alarm clock was given free to attendees at the Fourth Nordic Conference on Human-Computer Interaction - NordiCHI 2006:

As evident from the images, the output display has very limited resolution and input is through just two buttons on the back of the device. In the operating instructions, the buttons are referred to as SET and ADVANCE. For this assignment, the device must be configured and operated through a single button or key. For your design, include operating instructions in a file called a3.html. Good luck.
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. Do not use the york package.
5. Your programs must compile and run in the Prism lab.
6. 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 solution.
7. Name your program 'a2.java'. Submit it on Prism with 'submit 3461 a2 a2.java'. 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.)
8. 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.
9. 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.
10. 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)