CS 56 Advanced Java Programming
Team Projects
Overview
You are required to do a project, preferably as a member of a team.
The project will consist of the design, development, test, debug, and presentation
to the class of some Java program of your choice. This is a good opportunity
to solve a problem of interest to you, to be creative, and to show the
fruits of your labor to the class. The application doesn’t have to be anything
fancy, just whatever you can do with about four or five hours of work from
each member of the team. It can be anything you like, but it must
use some Java topic covered in this course, e.g., multithreading, networking,
etc. Be creative and have fun. Your team shall make a presentation
lasting five minutes or less.
I encourage you to participate in a team project. This is the way software
is usually developed in the
real world, so it is good practice.
Ideally, a team should consist of about four members.
Requirements
-
You shall choose one team member as leader for purposes of coordinating
the project and reporting to the instructor.
-
Each team member shall spend at least four hours on the project.
-
Each team shall make one (or perhaps two) presentations.
-
Part 1: midterm; a brief, informal progress report
-
Part 2: following the final exam;
a presentation lasting five minutes or less in which you present your completed
application. At the beginning of the presentation the leader shall present
to the instructor a single sheet of paper which states the following:
-
Leader’s Name:
-
Application Name:
-
Description:
a one-sentence description
of your application
-
Team Members: a list of your
team members and their job titles
See below for more suggestions on this presentation.
-
Prior to the time of the presentations
you must put all your files into one folder (folder name is leader's name)
and turn it in to Zeus in the teamProjects folder.
Suggestions for development and presentation
-
You may organize your team any way you like. One way is user, designer,
coder/programmer, and tester. Another way is an architect / chief
programmer with a team of programmers each of whom works on one part of
the program.
-
The presentation could be structured as follows:
-
a PowerPoint slide show to introduce the problem
-
a demo run of the program
-
a display and explanation of some of the code
-
a question and answer period
-
Think of an interesting problem to solve using Java. For example, a game,
one of the exercises in the book, animation, or a form that computes the
price of a car. It can be anything you like. It should be fairly simple
and easy to complete in the four hours required. Of course, if you want
to spend more time and effort on it that’s fine.
-
Decide the responsibilities for each team member. E.g.
-
User - specify the problem, including somewhat detailed requirements (for
example, a rough sketch of the User Interface showing information to be
input and output). Work with the Designer in nailing down the requirements.
Help Designer sketch the User Interface. Check out the prototype and finished
program and provide feedback to the developers (other team members). Prepare
the program demo part of the presentation.
-
Designer - work with the User to determine the program requirements. Sketch
the User Interface. Design the program - determine the classes, fields,
methods, objects, etc. Write pseudocode for all methods.
-
Programmer - Create the interface and write all the code.
-
Tester - Develop a test plan including test procedures, test data, method
of tracking and reporting bugs, and assigning priorities to bugs. May also
help write code to fix bugs. Put together the PowerPoint slide show using
input from the other team members.
-
Decide on a schedule; estimate hours for each phase; determine when, where,
and how you will communicate and coordinate your work. Part of class time
will be available for team work and I will be available to help you. Email
is a good way to communicate.
-
PowerPoint slide show could include the following:
-
User - statement of problem, and general requirements (inputs, outputs,
etc.)
-
Design - Overview of solution, key design features, user interface, UML
class diagrams, pseudocode.
-
Programming - highlights of Java language and API features used (packages,
classes, methods, etc.)
-
Testing - how tested (e.g., test plan, data used, tracking and reporting
bugs, bugs fixed/not fixed, etc.)
-
Choose one or more presenters. You may choose to have one person do the
entire presentation. Or perhaps one will do the slide show, and a second
team member will demo the program. Or, each team member may wish to present
his own work.
Grading
If you decide to work together on all the jobs, the project will be given
an overall grade and each member of the team will receive that grade. If,
on the other hand, each person has a specific job title, each person will
be graded somewhat independently. E.g., if the code is poorly written,
full of bugs, uncommented, etc. but the testing is done very well, the
Programmer may receive a poor score while the Tester receives a high score.
Alternatives
If it is not feasible for you to work with a four-member team (due to work
schedule, transportation problems, etc.), you can either do an individual
project or form a smaller team. The larger teams will be given preference
in doing their presentations; smaller teams and individual presentations
will follow, time permitting.