CSE 3461 User Interfaces

Fall Term 2007

 

Changes/corrections in red.

Assignment 1 (due Monday October 8, 2007 @midnight in groups of 3)

Create a GUI program using JFC/Swing classes.  Your program is a predictive model for the rise in the Earth's sea level due to the melting of surface ice, such as the ice sheets on Greenland or the Antarctica.   The main inputs are (a) the present year, (b) the volume of surface ice melting in the present year, and (c) the yearly increase in the volume of surface ice melting.  The main output is the rise in the Earth's sea level at points in the future; for example, 1 year hence, 5 years hence, 10 years hence, etc.

As with all models, some assumptions are necessary.  Let's assume the following:

·          The earth is a perfect sphere (which it is not)

·          The radius of the earth at the "present year" is 6367 kilometers (approximately correct)

·          All the ice as it melts forms sea water that is added to the Earth's oceans (approximately correct)

·          Ice melting produces 0.9 its volume as sea water (approximately correct)

·          The Earth's oceans cover 3/5th of the Earth's surface area (approximately correct)

·          There are no other effects contributing to the rise or fall in the level of Earth's oceans

Additional output that may be useful is the rise in sea level and the year corresponding to the melting of Greenland's entire ice sheet. For this latter output, use the following information:

·          Greenland's ice sheet is 1.7 million sq km with an average thickness of 2 km (approximately correct)

As background, please read the BBC article from February 16, 2006 on new evidence concerning the rate of melting of Greenland's ice sheet (http://news.bbc.co.uk/2/hi/science/nature/4720536.stm).  The article reports 100 cubic km of sheet ice melting in 1996, increasing to 220 cubic km per year in 2005.  This suggests test inputs for your model of (a) 1996, (b) 100 cubic km/year, and (c) (220 – 100) / (2005 – 1996) = 13.33 cubic km increase per year.

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 or type 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 'a1.java'. Submit it on Prism with 'submit 3461 a1 a1.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)