Extra Credit Opportunities

Here are some extra credit project ideas. They are available on a first-come-first-served basis. Email the instructor if you want to sign up for one. The number of points you can earn toward your final grade depends on the project and the quality/features of the finished product.

(2 points) XMahjongg is a version of the popular Mahjongg Solitaire game that is written in C++. Here is the source code. This program creates game boards that are known to be winnable. Convert the "solvable maker" routine from C++ to Java. (NOT the entire program, just this one module: solvable.cc).

(2 points) Download a Java coding style verifier such as CheckStyle or Hammurapi and configure it to verify code for conformance to our class Coding Standard.

(3 points) Juno is a popular free e-mail program. Write a program that will aid in converting Juno mail folders and address book to the format used by the Mozilla browser.

(1 point) Write the java code for a board generator for Revelation9 that will always generate a "winnable" board.

(1-4 points) Implement any of these word puzzle games.

(2 points) Correct the known issues and rework the design of this Java version of the TimeLogger (V4.0) application.

(2 points)  Convert this calendar generator to an applet (or CGI) with appropriate HTML form fields for user input.  Display the resulting calendar in a new browser window.  Here is the competition's solution.

(2-4 points) Perform the items on the maintenance list for the Network Jeopardy application.

(4 points) Write a software simulator for a real-time medical monitor. The simulator will take the place of a monitor that gathers vital signs from a patient: heart rate, blood pressure, oxygen saturation, respiration rate. The simulator uses statistical models to generate simulated vital signs. The simulator operates like a server in a client-server architecture. The simulator pretends to simulate 1 to 10 monitors. The server will receive requests from a client asking for the current readings for a particular monitor.

(3 points) Write a java screensaver using the SaverBeans API that displays a view from a web cam selected from a user supplied list of web cam URLs.  Here are some additional directions to assist you in running the demo.

(1 points.) Write a test driver for this Natural number class (non-negative integer). Perform complete branch testing.

(1 point) Write an enhancement to this Natural number class (non-negative integer) that has a constructor that accepts an upper limit on the values of the Natural number. 

(2 points) The JMetric analyzer tool was written under a previous version of Java and doesn't seem to run properly under JRE 1.4.  Download the source and perform the necessary maintenance to get the tool to work under JRE 1.4.

Taken (5 points.) Design and implement a solution to the Tape Calculator problem. I expect a thoroughly decomposed design, including separation of user interface from problem domain classes.

(2 points.) We would like to enhance the javadoc processor so that it can recognize the tags @pre and @post when they appear in the source code.  This would make a convenient way for the programmer to document the pre- and post-conditions for their methods.  Luckily the javadoc command is easily extended through a facility called "doclets." Write a doclet to add the desired tags to our javadoc output.  In addition, we would like to add a new command line parameter to the javadoc command, "-nodetails," that causes the output to include only the field, constructor, and method summaries, not the details.  Here is the standard doclet source code index.

(2 points.) (Taken) Implement a variation to Game2D. This version is a solitaire game (instead of multi-player like the original). The player is playing against the computer who initially displays dots once a second. Every ten seconds the rate of dots appearing is increased by one tenth of a second. Eventually the dots will appear too rapidly for the player to keep up, but the goal is to play as long as possible. The server is to be modified to allow up to 20 solitaire players to engage in simultaneous games.

Taken (2 points.) Write a text user interface for the hangman game to substitute for the GUI in the original version. Use the existing board class provided.

(? points) There exists on the Internet a database of audio compact discs that can be queried by an application program to determine the songs and playing times on any CD.  Here is an example CD contents. In order to use the database your application must determine the Disc ID given a CD.  The algorithm for this computation is given at freedb.org. There are also several example implementations, one in MFC and one in Pascal.  For this assignment write a Java implementation of the Disc ID algorithm.

(4 points) Create a "software project control panel" like the one described in Norm Brown's article.

(4 points) Mozilla needs a simple graphical front end to modify key bindings.

(3 points)  Create a web-based database of PSP project summary data.  It should allow the user to enter time and defect data from their PSP forms and perform the calculations for the project summary.

(1 point) Create a random number "spinner" applet.  It should display a graphic of a spinner similar to that used in many board games for determining number of spaces to move.  The default should be a spinner with numbers 1 to 6, but an input field should allow the user to specify a different upper limit.  A "spin" button shows the spinner animated and the resulting random number.

(1 point) Identify and repair the defects in Dr. Dalbey's Random Spinner web applet.
 


  • Email: john's email address


  • CPE 205 Home