CS 110 Fundamentals of Computing
Final Project
Bolker and Rodriguez
Spring 2004

In this final project you get to use all the Java you have learned to design and build a modest application from scratch: a model for part of a university on line course management system, like the UMB WISE system.

A solution.

Here is a the source code for a WISE implementation, as individual files and as a single zip file for easy downloading. The subdirectory numbered contains line numbered versions of the .java files. There's a zip file for these too. The subdirectory tests has class files and testing scripts.

Due dates and deliverables.

At each delivery you should submit only commented code that compiles and runs and has been thoroughly tested, along with a memo.txt that describes your design decisions, what features are present and how you tested them.

There is no precise specification for just what you should turn in at each stage. What's important is that you have almost half the work done by the 4th and almost all of it done by the 11th - your final grade for the project be based on evidence of serious progress along the way. That means you can't get a good grade even if you are able to do all the work in the last two days!

Partial solution.

Here is a partial solution to the WISE project - posted May 5, after the first deliverable. You may use it instead of what you have done yourself so far, read it for what you can learn from it, or ignore it if you are working in a different direction satisfactorily.

Updates

During the development process questions will be raised asking for clarification. Rather than edit this page, I will keep the answers to those questions on the updates page, in reverse chronological order. I will inform you be email each time I update that page.

User interface

To start the system you provide it with three text files on the Java command line, one each describing courses, students and professors. Here is a sample WISE session, made up to illustrate WISE input syntax. The exact specifications may change (slightly) as work progresses.

  > java WISE courses.txt students.txt professors.txt
  Welcome to Ethan Bolker's WISE implementation.
  WISE> type courses       # see list of courses
  WISE> type students      # see list of students
  WISE> type professors    # see list of professors
  WISE> assign courseName professorName 
  WISE> enroll studentName|ID courseName
  WISE> type courses courseName             # class list for this course
  WISE> type students studentName|ID        # schedule for this student
  WISE> type professors professorName       # schedule for this professor
  WISE> courses time                        # open courses at specified time
  WISE> professors time                     # professors free at specified time
  WISE> students studentName|ID time        # times free for specified student
  WISE> exit

Input and output formats

Design/construction strategy

You can only succeed at this assignment if you design/code/test in small steps. Here are some suggestions.

Features not specified.

Real software almost always wants more features. We've seen that in all the applications we've studied this term. It's easy to imagine what a real WISE would look like. Here are some ideas that haven't been included. If what's been asked for so far turns out to be too easy we can add from this list. Or you can do some of it as optional work provided the required part is complete.