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.

  1. Applications:You can recreate some simple applications like notepad, post-it notes, calendar, a simple spreadsheet, etc.
  2. 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.
  3. 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.
  4. 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.
  5. Something you want:Think of some software program that might be useful or fun for you and implement it.
  6. 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.
  7. Projects we (ok, I) could use.
    1. A Web-based application for handling the reviews of applications. The application would preferable be written in PHP and MySql, like the 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).
    2. A Calendar application that is integrated with sourceforge. Each user and each group should have her own calendar, which should work similar to 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).
    3. 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)).
    4. 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