An AIS project consists of three stages:
- A project team can "claim" a project at any time after the first
class by sending email to the instructor. First come,
first serve. (This is meant to encourage that you think about the
project sooner rather than later...) The people working on a project
are noted underneath each project description.
- Each project team selects a project and submits a URL of a webpage
containing a short description of what is to be accomplished and what
tools and existing efforts are to be used. The proposal should outline
different steps, each producing a functional implementation, as it may
not be possible to accurately predict the required effort. Based on
this document, the team should discuss approach and task assignments
with the instructor. The project description must outline at least one
functional milestone (see below) that can be demonstrated and tested.
- At a designated time during the semester, the project progress is
submitted for grading to the teaching assistant. It will be evaluated
against the project description, with points deducted for failure to
adhere to the guidelines.
- The deliverable to be graded consists of:
- A Detailed project description, written in HTML (see style file for guidance on
formatting and also note some hints on writing style),
including a "man"-page like usage and installation description. The
project description must include justifications for design choices,
sample screen shots for programs with a GUI and/or program output.
- An installable executable packaged as a gzip'ed tar file,
including a Makefile and README file; the
README file must document the installation and indicate any
system dependencies such as required libraries. The tar file must also
contain the HTML report, named report.html. Be sure to use the
exact names, not readme.txt or other variations. The code
should follow the coding style
guidelines.
The program must be easily installable and runnable using the
existing Columbia CS computer configurations. In particular, the use of
JDBC, Oracle databases and the like is not possible. If in doubt, ask
before embarking on the project.
To make it easier to look at the source, please create a link from
your project page to your source directory. I must be able to easily
test the program on a local platform. Thus, either you must provide a
Solaris or Windows NT executable or, where appropriate, set up a demo
web page.
- A 20-minute presentation and demonstration of the software, with no
more than 8 PostScript slides.
As far as possible, projects should be done in these languages or a
combination thereof:
Projects typically consist of two people, but may also be done
individually or in groups of three.
It is the responsibility of the project team to investigate and
document existing efforts in their project area. The Network Bibliography,
the Internet resource
pages and Gamelan might be
useful.
Sharing of code modules between projects and re-use of publicly
available code fragments, modules and applications is highly
encouraged, as long as proper credit is given.
All projects should strive to produce tools and results which are
presentable to outsiders. Code structure and documentation matters,
including for the project grade.
The grade will be computed according to the following criteria:
- functionality and robustness;
- adherence to protocol standards where applicable;
- ability to be used across platforms;
- user interface;
- report outlining usage,
architecture and design decisions;
- coding style and clarity (comments, code organization); see my coding style reference;
- ease of installation;
- presentation of results.
If several groups want to work on the same project, the project is
either enlarged and split or a random number generator decides.
Project topics
If you have an idea for a project which is not listed here, talk to
me.
Checklist
- Code follows coding conventions?
- Report follows conventions? Contains date of
last modification at bottom?
- Every file contains comments describing purpose, modification date
and author?
- Every function commented with purpose and arguments?
- Installable on Solaris and/or Windows NT by unpacking and minimal
configuration? (Include binaries where possible)
- Tar file organized as "program_name/README" etc., so that it can be
immediately unpacked?
- Tar file contains README (by that name)?
- README describes installation, step-by-step?
- Package contains report.html?
- All system dependencies identified and minimized?
- Javadoc documentation generated?
- Report contains screen dumps and precise description of
functionality?
Last updated
by Henning Schulzrinne