The phonebook project is meant to provide an 'real-life' application.
It also provides a running theme throughout the semester
As we learn new language and library features, and new techniques, we will add some of them to the phonebook to produce
an application of increasing power, flexibility, complexity and sophistication.
The structure of the projects are similar to the labs:
A project page with the specs will be posted together with sample test runs for you to to follow
The sample test run will present file formats, as well as the structure of the prompts and output
I am hoping to be able to implement each of the projects in CodeLab so you can submit your result for testing.
This may not be possible for every one of the projects; alternatively, minor transformations of your code may be necessary.
Each project will detail any such changes
Again, feel free to copy any of my code (especially from Version 0 - the version presented in class as part of lecture 1); and of course
from one version of your project to the next.
Working on the Projects
As with the labs, you should develop your projects using the development environment of your choice (i.e, an IDE such as DrJava, Eclipse, and/or NetBeans;
or an editor, such as vi, and the command line compiler/interpreter).
Once you've got the project 'working', you should submit it to CodeLab for checking and possible approval.
Compiles without compilation errors
Executes to completion (i.e., no crashes, or other runtime error / exceptions)
The answers are correct — you should be determining this by:
'eyeballing' your output (i.e., looking at it and seeing if the answers are correct.
In addition, the specs for each project contains one or more sample test runs which show the prompts,
inputs, and corresponding correct output for an illustrative execution of the project.
The input is in bold — to distinguish it from what your program prints (prompts
and output). When you run your program, you will not be seeing the input in bold.
There's not much point in submitting it to CodeLab before that.
As with the labs, the projects are collaborative in the sense that you should feel free to discuss them with other people in the class.
You should also feel free to look at other's code, but not copy it.
As in the labs, at the end of each project is a small section explaining the purpose or goal of the lab; i.e., what you hopefully will gain
from completing the exercise.
In the case of the project it will usually be the application of a recently presented feature or technique. For example, version 2 will introduce
Submitting the Projects to CodeLab
Once you're satisfied that your program 'works', you should submit it to CodeLab:
Open the course, and find the proper project under the topics Phonebook Projects.
Paste your solution (from Dr Java) into the submission box
What happens if CodeLab complains about you failing test cases:
Not every test case used by CodeLab will be presented on the Lab page.
It may very ell be that your code produces correct output for the test cases you see on the page, but fail other test cases
used by CodeLab
This will be particularly likely if you code toward the test, i.e., you write your solution based on
the test cases you see (as opposed to coding a general solution based on the problem description).
Typically, one of the lab exercises will be marked for 'Approval', which means that even once it passes CodeLab's tests, it will remain
in a pending state until I look at your submission (for style, comments, etc).