For your final project you will develop a fully functional J2ME application.Here are some possible ideas.
Develop a simple demonstration application that shows how to use an API or package that was not discussed in detail in class. An alternative is to develop a demonstration application for a different platform (not J2ME or not MIDP) that you are interested in.
Prepare a 30 minute tutorial on the API, package or platform to be given in class on week 12 and 13. Use your demonstration application as an example.
You must tell me what you want to do by the end of Class 5 (an email is fine). I will assign the presentation date and add that to the class calendar.
Some possible ideas include (most of these can be done with an emulator and don't require a real device, although you may wish to use a real device to test your demo application)

Write a weather client in J2ME. You can use any of the J2ME API's you like or need and the layout and operation of the client is up to your design.

Make an aquarium simulation in J2ME. This lab must use the MIDP 2.0 Game Canvas API. Include a tiled background of water, the ocean floor of sand and rocks, some animated sea plants, and some animated fish.
Develop a simple demonstration application that shows how to use an API or package that was not discussed in detail in class. An alternative is to develop a demonstration application for a different platform (not J2ME or not MIDP) that you are interested in. In either case, prepare a 30 minute tutorial on the API, package or platform to be given in class on week 12 and 13. Use your demonstration application as an example.
Some possible ideas include (most of these can be done with an emulator and don't require a real device, although you may wish to use a real device to test your demo application):
This is an OLD lab.
Develop a simple game framework. You should provide a startup menu (form or canvas) from which the user can select from these options (at a minimum):
Your game does not need to be fully functional, just a simple game. A main character that wanders around a map (under user control) and who collects objects is sufficient. The main game must include the following at a minimum (you can add more if you like):

Make a resistor (electronic component) color code solver using a Canvas (MIDP 1.0 API). You don't need to know much about resistors, just that the numerical resistance value is represented in color bands printed on the resistor.

Using any part of the High-Level MIDP user interface (Alert, TextBox, Form, List), implement a property viewer.

After installing of the necessary tools (java SDK and WTK (you will want WTK 3.0)), create a new project (MIDP, HelloMIDlet), select the defaultcldcjtwiphone2 emulator, and then compile and run HelloWorld. Modify the program so that it displays your name and "CSCI 188".
Send me a zip file of the entire WTK project and a screen/widow capture (control+printscreen) of the emulator window.

For your final project you will develop a fully functional J2ME application. It can be a game or a business application of your choice. Your project will need to run in the SUN wireless toolkit 2.5.2 emulator at a minimum. You can also run it on a real device if you choose. (I will consider exceptions if you need features of a real device that are not supported by the emulator, such as games that use the handsets accelerometer). You will be expected to demonstrate your application to the class on week 14 (the last week).
Here is what is required for your project:
Updated for fall 2009. This class follows the university undergraduate and graduate academic calendars. I prefer all submissions by email by midnight of the due date (which is almost always a Tuesday). If your work requires submitting something other than email (paper, CD, a device, etc) then it should be in my mailbox in the Academic Center (704) by 4:00 PM (not later) on the due date or you can give it to me before, during, or after class on the due date. ALL submissions after these times will be considered late.
This is a George Washington University, Department of Computer Science course in programming Cell Phones in J2ME. This class will be a rigorous examination of J2ME programming for mobile devices (Cell Phones, Smart Phones and Personal Digital Assistants). This course will include a detailed examination of the various configurations and profiles in PhoneME (J2ME for cell phones). The student will be developing programs for the Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP), with specific attention to the details necessary for developing fully functional applications such as games, business applications and personal assistant tools. Programs will be developed to run with the Sun Wireless ToolKit emulator, however real devices can be used if the student wishes to provide their own.