btree module contained in the
implementation of binary trees
presented in class.
Here is my solution.
It is expected that you do reasonable testing on your program and that you describe these tests in your submission.
When you test your program, your first priority is to test the behaviour of your code when the input is correct. Ideally, you should take into consideration all the possible inputs. This is usually impossible, but at least I want to see from you a genuine effort in this direction.
In order to test the program on correct input, you should identify to the best of your ability classes of input, i.e., categories of input for which your program should behave differently. Once these classes are identified, you could pick one (or more) sample inputs from each class and feed them to the program.
Pay attention to boundary cases, these are often overlooked in the programming process.
Of course, the reaction of your program to errorneous input should be considered as well, but that should be your secondary goal during testing. Unless otherwise stated in the handout, just a notice of unexpected results for incorrect input will do (whereas testing correct input may require debugging). One notable exception is array overflow, which should be as much as possible avoided.
I am not asking you to do a perfect testing suite, I just ask for a honest effort on the matter. I also ask for a brief explanation of why is your test suite complete, just to make sure that you knew what you were doing.
Poor test suites or poor explanations will be penalized, especially when your program exhibits an errorneous behaviour that would have been caught by a reasonable set of tests.
Your program must build using reasonably new versions of GNU make
and GCC, and with the flags -ansi and -pedantic
(this ensures that you use standard C++). Anything that does not
compile under this condition will be marked as a non-working
program.
A working program does not automatically qualify you for full marks. Bad, obfuscated programming can subtract as much as 50% of your mark. Bad or missing documentation (sensible comments in the code are part of a good documentation) can also incur a penalty as large as 40%.
Pay special attention to how you test your program. Incorrect implementations (aka bugs) identified as such may or may not subtract marks, depending on the extent of the problem. Bugs that would have been caught by a complete test suite but have not been identified by you will subtract marks no matter their extent.
Be aware that identical or nearly identical submissions by two (or more) teams will receive (all of them) an automatic mark of 0 tokens. Further action according to the departmental and university guidlines for academic dishonesty may be pursued.
Each submission must contain the following:
:-))
shall be considered academic dishonesty and will result in an
automatic mark of 0 tokens for the given assignment and possibly
further action according to the relevant departmental and
university guidlines.
make at the shell prompt in the root directory of your
submission.
Your makefile must contain a macrodefinition of CFLAGS and
every compilation process must use this macrodefinition.
Any document must be submitted in an open (non-proprietary)
format. In particular, Microsoft Word or Wordperfect files are
not acceptable. The preferred format is plain text,
but others are fine, including but not limited to HTML,
Postscript, and TEX (LATEX included). Good ol' hardcopies are
also accepted. :-) Anything submitted as hardcopy should
contain on top of the first page the name of all the
collaborators.
submit csc218 dir
where dir is the directory you want to submit. You can specify it by either a relative or an absolute path. Also note the capitalization of ``csc218,'' which must be respected.
submit program
does not say otherwise.
Longer answer: Late submissions will incur a penalty of 20% per
day. Under no circumstance will a submission be accepted after
solutions have been made public. Solutions may be posted as soon
as three days after the assignment due date. If the submit
program says that submissions are disabled, then your work will
not be accepted.
~/csc497/assignment1, and that the current
working directory is ~/csc497. You should then type one of
the following commands:
submit csc218 ~/csc497/assignment1
submit csc218 assignment1
submit csc218 ./assignment1
Type man submit for more details.