* Home
* Description
* Overview
* Syllabus
* Resources
* Quizzes *
* Announcements
* Assignments
* Projects
* Grades
* Students *
These group projects are developed over the course of the semester.
The groups are self-selected and consist of between four to five students
to create and develop a program with some specific criteria that will be
posted here. The various milestones (proposal, status report, final
submission) and their due dates are in the Syllabus
page.
NEW! I have started a FAQ for projects, since there
probably are many common questions from people. Feel free to suggest
other questions you may want to see answered here.
Typical A201 projects
We expect a typical A201 project to be finished in about 6 weeks
from the time it is proposed. A typical project will be about 100
lines times the number of team members roughly. Each team should have
at least 4 members. A set of deadlines for the different stages of the
projects is shown below. I am also listing a set of guidelines in
choosing your team and projects.
Guidelines on forming a team
- There should be at least 4 members in a team. All team members
should be from the same lab section. We may allow exceptions to
this in some cases, but unless absolutely necessary, please stay
in your lab section to simplify the project administration.
- If you do not know anybody in your lab that you can team up
with, talk to your AI. He/she will put you in a team that is
most suitable.
- Try to have a good mix of people. As we will describe here, a
lot of importance will be given to documentation as well as
coding, so you will need people who can write well.
Guidelines in selecting a topic
- You can choose any topic that interests you, but of course, you
have to choose something that is doable, and is not overly
simple. We will help you with the topic selection process.
- You should choose a topic that is interesting to you. Possibly
related to your major or something you will have a use for
later.
- Absolutely no reused topic. This needs to be a
project developed from scratch, so you may not choose something
you have done in another course. You run the risk of earning an
F for all the team members if you use a project from another
course.
- Some sample topics that will be acceptable as an A201 project
are listed below. You should try to come up with your own.
- A Java GPA calculator (A complete GPA calculator that will
read in courses, credit hours and grade, and semester
etc., and will generate reports on your GPA.)
- A java photo album (Store images and navigate them (first,
last, next, previous, go to a particular one, etc.)
- Games - you can write simple games using what we will be
learning in class. Picture puzzles, pacman-like maze
games, racing, are some examples of games that you can
think of.
- Each member of the team should come up with an independent
topic, and then brainstorm on each of them and decide one that
will be most suitable.
Team logistics
Each team should have at least the following two positions
identified. Both may be filled by the same person, although it is not
recommended.
- Team leader: This is the person who would organize the team, the
meeting times, divide the task and motivate the team.
- Instructor contact: This is the person who would be responsible
for keeping us informed of your progress. This is the person who
we would contact in case we need to know more about the team's
performance etc.
In addition to the above, you may want to assign someone as the
"Guru" who will be able to teach others about particulars of the
chosen topics. A "documentor" who keeps track of the documentation,
decisions taken during meetings will also be an useful position.
Each team should meet at least once every week starting now until
the project is finished. You may meet before or after the lab time, or
any time over the week as is convenient.
Deliverables
The following are the various milestones in the project, and the
deliverables for each milestone.
- Team formation and project brainstorming: (Due:
March 10, 1999)
Deliverables in this milestone include the proposal
document. This document should include at least the following:
- Names of the team members, and a "nickname" for the
team.
- List of all topics considered (note that everyone has to
come up with a different topic and you should brainstorm
together to chose one out of them). You should specify
which topic you selected. For the rejected topics, you
should also specify why they were rejected.
- For the chosen topic, you will need to brainstorm and
write down every possible feature you can think of that
this program should have. You may not be able to implement
all the features, but you should write them down as
appropriate.
- For each feature listed, you should also estimate how many
lines of code you feel that part of the program will take.
- Initial design and status report: (Due: March
24, 1999) This deliverable was handled off line. No written
material was due for this part.
- Implementation and testing: (Due: April 23,
1999) In this stage you will actually implement the program and
test it. To fulfill the requirements of the project, the
following must be turned in to your AI:
- A folder (real one, not electronic :-) ) with the name of
your project and the names of the team members clearly
written on top.
- A floppy disk containing all your programs, including data
files if any. If your program does not fit in a floppy
disk, contact your AI for an alternative submission
method.
- A users' manual for your program. A user manual consists
mainly of instructions on how a user can run your
program. You should describe in as much detail as possible
how to run your program. We will be using this document to
test out your code, and you may get a really low score if
we cannot figure out how to run your program. The
following are some of the issues you should address:
- What does the program do?
- How does a user invoke the program?
- What options does the user have once the program is
run?
- What do the various screens look like when the
program is run? (On windows, you can do this by
hitting "Print Screen", which takes a snapshot of
the screen in memory which you can then paste to a
document. (you may need to paste this into paint,
cut out only the part that you are interested in,
and paste it in your users' manual
- A programmers' reference manual for your program. This
document should have details on all the classes, their
methods and variables. You can use comments in your code
to write this document. However, if you do this, make sure
your comments follow the javadoc commenting style, so that
the documentation can be automatically generated from the
code. You should address the following issues here:
- What does each of your classes and methods do?
- Which parts of the code were written by which member
of your team? (it may be possible that the same class
or method is written by more than 1 member. It may
also be possible that one of the members did mostly
testing and writing documentation, in which case
his/her name will not be here.
- Are there any known bugs in your program? If so,
where?
- Did you have to do something different from what you
proposed?
- As a precautionary measure, you should print out your code
(double-sided, if possible) and submit that along with the
rest of the items.