Software Design (CSC-223 97F)
A significant component of this class is a group project, which you will
work on in assigned teams of size four. You have a great deal of
freedom in what you choose to do, and we'll work together on making sure
that you do a reasonable amount (neither too much nor too little).
Admittedly, my projects are a little bit web-centric, but that's
personal bias. Feel free to do something completely different.
To help you get started on your projects, here are a few possibilities.
Note that these projects may seem somewhat more ambitious than those
proposed for the last session of 223. This is because I expect you to
be able to do more, given the many resources Java gives you for free.
- Virtual Blackboard. As you noted on the first day of class,
although I'd like to use the computer as blackboard, the overhead
monitors are a pain in the neck. It would be nice for me to be able
to bring up a window on the computer at the front of the room, and allow
the workstations in the room (and elsewhere) to view whatever I type (do?)
in that window. We would, of course, want to include security measures
so that not everyone could eavesdrop on my classes.
- HTML parser and maniplator. There are many times it would be
useful to have a parsed version of an HTML document, in a more
manipulable form. Write such a parser, and then develop some tools
that allow users to manipulate existing pages.
- SimFoo. Some artificial life/city/whatever game. I
suppose a particularly humerous one would be SimGrin,
simulating student life at Grinnell college.
- Web Development System. Often, those creating web pages
want to be able to use a template and simply fill in the
blanks. The problem comes when the template changes. Develop a
system in which a designer can specify the fields for a class of document,
and provide templates that use those fields, and the user can
fill in fields, and ask for translation using one or more of the
- Scheduler. Develop a system that allows students to make
appointments with faculty, given a faculty schedule with free slots.
The system should store information in a text file, permit the
faculty member to specify free times (and the purposes of other times,
if so desired), and permit students to make and cancel appointments.
This project is due to John Stone.
- Lab notebook. Even though the author says its a bad idea,
you might consider implementing a full lab notebook with time log
and estimation facilities.
- BlitzMail client. BlitzMail is a very nice, server-based
electronic mail system that supports clients on a number of platforms.
It would be a very interesting and useful project to develop a
Java-based client for BlitzMail. Doing so will require you to understand
the BlitzMail protocol, learn Java-based networking, and build a
useful and usable interface.
Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.
Source text written by Samuel A. Rebelsky.
Source text last modified Fri Sep 26 12:31:55 1997.
This page generated on Fri Sep 26 12:35:28 1997 by SamR's Site Suite.
Contact our webmaster at firstname.lastname@example.org