CSCE 492: Project Suggestions
These are just some suggestions for possible projects. Remember,
each group will be composed of three or four students (no more, no
less) and you must divide the work evenly, possible assigning
different responsibilities to each team member. I will be looking
for good design, clear documentation, and significant
functionality, in that order! However, it is very important
that you have "something that works", even if it does not
implement all the functionality that you initially dreamed it
would. At Microsoft, and many other software shops, they make sure
to always have something that can be shipped (cf. Debugging
the Development Process). Never lose control of your project!
In terms of programming languages, I recommend you use Java
since its much easier to debug (no memory leaks or lost
pointers) and incorporates and "easy" to use GUI API, plus it
will run on both Linux and NT. However, this is not a dictum and
you are free to use whatever language you want, as long as I
approve your project. Note, however, that if you pick a language
or platform that I am familiar with I will not be able to help
you as much.
Finally, you can choose something that is nowhere in here.
-
Applications:You can recreate some simple applications
like notepad, post-it notes, calendar, a simple spreadsheet,
etc.
-
Games: You can recreate any one of the classic games
such as minesweeper, solitaire, tetris, pinball, pacman,
etc. I would recommend against trying an arcade-style game
unless you have some previous experience with the particular
game engine (3D library) you plan to use as these will take
some time to master.
-
Distributed Applications:A java-based (applet) chat
system. A distributed calendar/meeting scheduler system. Yet
another napster or gnutella or freenet client (probably easier
than you think). A network version of a classic board game
like Battleship, Othello, Backgammon, etc.
-
Web applications:Right now there is a lot of commercial
demand for database-backed websites. Basically, you put a
user-friendly front end to an SQL server and add some
functionality. This is what SourceForge is all about. The most
requested applications are: a shopping cart system, a
recommender system, and an order fulfillment system. The
simplest and most popular way of doing this is by embedding
code into your html files, the code is usually either PHP or ASP. Our sourceforge site
uses PHP with a mysql database backend, pretty simple. You
could set up a similar website and implement whatever
functionality you want. There is a possibility that we can use
some of the machines built last Winter by Prof. Bowle's
students in the computer engineering laboratory. To get
started, read Philip and Alex's
Guide to Web Publishing and SQL for Web
Nerds.
-
Something you want:Think of some software program that
might be useful or fun for you and implement it.
-
Something someone else wants:You probably have had
summer or part time jobs where you have observed people
spending days doing busy work which could be automated. Build
a prototype system for automating that task.
- Projects we (ok, I) could use.
-
A Web-based application for handling the reviews of
applications. The application would preferable be written
in PHP and MySql, like the source.cse.sc.edu website. The
database would keep track of each of the applications, with
fields to test scores, gpa, ssn, etc (a detail list is
available) and a pointer to the student's full application
which is a PDF file. The users will log into the
application an be shown a personalized page. Staff will be
able to add and delete records, as well as assigning them
to be reviewed by any of the faculty. Faculty will be able
to add their reviews. All should be able to view all
records. The personalized pages a very important
and should be customizable to some degree. (Need to draw
ER diagrams for database, try to maintain content and
presentation separate, design should scale to thousands of
applicants and hundreds of users).
-
A Calendar application that is integrated with
sourceforge. Each user and each group should have her own
calendar, which should work similar to calendar.yahoo.com
but without some of the bells-and-whistles. Users should
be able to pick which other calendars they want to show
with theirs (model-view-control pattern).
-
A system for maintaining bibliographies online. Users get
a form which asks the appropriate questions and adds the
paper to a mysql database. There is a search
function. Users can also post comments on each particular
paper and view other's comments. Users can rate papers but
ratings must be done only by registered users. Must
input/output bib entries in Bibtex format. Show top-10
lists of most recent, most downloaded and most commented-on
papers, also weighted top-10 (i.e. give more weight to
ratings from users that have themselves received high
ratings (karma)).
-
A parser and XML DTD that will convert a set of slides
written in XML into an HTML presentation. Each page should
have next and previous page pointers, and and index and
overview pages should be automatically generated. You will
want to use one of the many free XML parsers out
there.
Jose M. Vidal
Last modified: Fri Aug 18 12:04:20 EDT 2000