Lab Assignment 7

CSC 220

Posted: April 7, 2005

Due: April 11, 2005

DO NOT IMMEDIATELY ATTEMPT TO PRINT THIS OUT. YOU WILL SWAMP THE PRINTERS AND WASTE PRECIOUS LAB TIME. YOU MAY OPEN MORE THAN ONE WINDOW! KEEP THIS PAGE OPEN WHILE YOU WORK.


THE NO PROGRAMMING LAB!

The Task:

Build a medium sized, complete program of your own design in groups of two to four. You will implement this project as an application or an applet.

The purpose of this lab is to :

Background and the basics

This is the first part of a three part lab. It is intended to guide you through design, implementation, testing and documentation of an interactive, stand-alone program. The complete project is due Tuesday, May 3, right BEFORE your final exam, however you will be asked to submit components of the project in three installments: You may NOT do this lab on your own. You are required to work on this lab with at most three other people.

Lab 7: Design

By the end of the week you should choose one of the following projects. You have some freedom in enhancing the design. At this stage you may not believe you have the skills to complete the project, however, each project suggested should not require programming concepts beyond what has been presented. Because of the way the project is laid out you can get full credit for either the underlying program or the GUI, even if the other part doesn't run properly. In other words, there is an inherent safety net in the project. However. You must keep up with the project on a weekly basis. You cannot possibly put this together in a few short days at the end of the semester. The critical component is a realistic design. Spend time there and the rest of the project should fall into place quite easily.

Choose one of the projects listed below. By Monday, April 11, get approval for the basic idea of your project from your instructor..

The report due Monday should be the result of the following analysis process.

  1. Describe your problem in detail. Explain what you want to happen in as much detail as you can.
  2. Using the Software Development method flesh out as much of the project as you possibly can up to, but not including implementation. Identify data and methods, classes, how classes will interact. You will need arrays of objects. Identify what these are.
  3. Given your experience using computers, think about the GUI interface you will need. How will a user interact with your program? Obviously you do not yet know how to identify appropriate objects, but sketch out what should happen. Articulate questions that you have. What Java techniques and general programming skills do YOU think you need to complete the GUI, or for that matter the underlying project.
  4. Each project below assumes a "session" occurs in which a user (or users) interacts with your program. Optional : some data needs to be stored between sessions. Identify what you think that data is, and describe how you think you might be able to save and retrieve that data.
The Projects (choose ONE!)
  1. A graphic design tool. This program allows a user to create simple drawings using predefined figures as well as simple line drawings. You might want to think about saving drawings to a file and reloading them later.
  2. A non-real-time game. A real time game is a video game in which the action proceeds regardless of the human interaction. A non-real time game is one in which state changes only after a user's action. Chess, checkers are non-real-time games, and so are classic computer adventure games. Active games such as baseball can be made to be non-real time. In this project it should be possible to suspend the game (save the game state) between sessions. You may either write a game in which two players interact and your program provides the playing field. Or you may write a game in which the user plays against the computer. Good games: Score Four (an extended version of TicTacToe), Concentration (either one or two player).
  3. A simple data base. This is for the "business" oriented. Design a simple data base manager, such as an address book, CD collection organizer, etc, or appointment manager. Although this project does not involve complex graphics painting, it still requires a simple GUI interface and the ability to store and retrieve the data base.

REQUIREMENTS

On Monday, April 11, during the lab, each group is to present its project to the professor for comment. Submit the report then. The report should have the following structure.

Hints and Other Advice:

Be prepared to describe briefly which project you wish to work on. If its a game or a data base, identify the domain (e.g. the game or application.)

ASK!!!!!!! questions, in class, in lab, during office hours and especially via the class newsgroup. Please do not phone. Posting questions on the newsgroup shares your question and my response with the rest of the class.