CS 4310 Project Topics
Introduction
One of the challenges of this course is defining
a problem, and it should be an interesting experience for
you. To try to avoid too much focus on either
the data design or user interface issues, you will
not get any extra credit for implementing a database (like
a connection to an Access or Oracle database, vs. implementing
flat files) or a graphical (as opposed to text)
user interface. Also, for the sake of the students
with less experience, I will not accept a project that
supposes extra experience -- I can assure you your fellow
group members will find
learning even a large new library, not to mention
a new language extremely challenging.
Suggestions
Since you will need to define the problem, it will help
if you pick a topic where you know what the final product
should do. If you choose to replicate (part of) an existing
product like MS-Excel, the advantage is that you can check
the product when you are not sure. Similarly, simulating
a non-software product like a
board game or a sport may not be something you feel you can
put in a portfolio
(or you might not want to pay for it), but again,
it becomes easier to figure out what you should be doing.
Furthermore, these topics have natural classes that
you can find without too much trouble, making it easier
to divide the problem into modules.
As for actual suggestions, here are a few to consider. Note that
I would not expect you to produce an equivalent to Powerpoint, for
example. These problems do generally have plenty of features, and
you will have the opportunity of cutting things back to a manageable
size.
-
A turn-based game like The Game of Life, though this particular game was done by
a group recently. Because this is not a "real-time" game, there
are unlikely to be any timing issues that are hard to debug. At the same
time, there are a lot of objects, making it easier to come up with
a reasonable design. Some other examples are Careers, Stratego,
Parcheesi. There are some games your team could try out online at
BrettspielWelt, apparently.
You can see
this page on boardgamegeek.com, though I have to say
I have not tested any of the listed games.
-
A program to help prepare income tax forms such as the 1040.
-
A program to help work on the differences between two files.
There is a simple diff utility on Unix/Linux, but you
could take this in different directions, including towards
a version control program like CVS, SVN or BZR.
-
A drawing program that supports drawing more structured diagrams --
similar to Visio or dia. This does mean you will end up needing
to do more than just drawing lines, rectangles, paths and text,
but need to cover sets of symbols like for UML class diagrams, for example.
Managing attributes for the components of the diagram to for example
attach code to a particular component should be addressed in your
final version.
-
MapQuest/Yahoo Maps-lite. You could try to do things a bit differently
by supporting a more dynamic management of costs of traveling from
one place to another. Graphics not required.
Forbidden Topics
The following topics will not be
accepted, as I have either seen them very recently
or they are overused and therefore just not
interesting to me:
- Video store -- this one is in the hall of fame of
overused topics -- anyone suggesting this topic will
automatically fail the class :p
- For that matter, any type of store that just
performs the basic transactions
- Library -- like the video store idea, this one
has been done to death
- Editor/word processor
- Email client
- HTML editor/notepad
- Dungeon RPG
- Instant messenger
- Graduation checker (sees if you are ready to graduate)
- Solitaire, Blackjack, Poker, Baccarat, and other card games used for
casino or online betting