How to submit your homework assignments (or appeal an assignment mark)

All written assignments must be put in my mailbox (in the CS mail room - CSB727) before the time the assignment is due.

All programming assignments should be submitted to me via my TURN_IN script:

For each programming assignment, your submission *must* include the following files:

Generally, source code accounts for about 55%; your test file, writeup, and coding style account for about 45% of the total mark of an assignment. Below are specific requirements for your files.

Writeup

Please include the following in your writeup:

Also, if you're running out of time and cannot implement something, describe in more detail how you would have done it - you may get credit for this, too.

Code Style

Comment your code thoroughly.

You should follow the usual good programming style, giving the functions and variables meaningful names and avoiding obscure programming constructs.

Test File

The test file is worth about half as many marks as the code. Include test cases for each problem, and make your test file (*_test.lisp) executable in Allegro Common Lisp. Below is the template to use for your test file.
( defun test(problem)
   (cond ((= problem 11)
            (print "problem 1(a)")
           ;;test case description or testing strategy
            (print "lst is (a b c), result is")
            (print (my-copy '(a (b c))) )
           ;;more prints for test cases and test case descriptions
            )
            ((= problem 12)
            (print "problem 1(b)")
            ;;test case description or testing strategy
            (print "lst is (a b c), result is")
           (print (my-reverse '(a b c)))
            ;;more prints for test cases and test case descriptions
            )
            ((= problem 2)
            (print "problem 2")
            ;;test case description or testing strategy
            (print "s is x, lst is ((f x) y (((x z) () x))), result is")
            (print (countOccur 'x '((f x) y (((x z) () x)))))
            ;;more prints for test cases and test case descriptions
            )
            ;; Analogously for testing more homework problems.
   )
)

Make sure you discuss your test cases in the test file. You can use the form of a comment for every test case or write a commented paragraph before each function describing your test strategy for the function. If there aren't any comments about the test cases, the test file would become useless because I might not understand what you were trying to test.

I should be able to tell, after reading your testing document, how well you understood the problem.

Make sure to test all boundary cases (e.g., empty list).  If you don't, I will, and your program will probably fail.

Grade Appeal

If you wish to appeal your mark on an assignment, you must do so within five weekdays of receiving your mark by email. No appeals will be accepted after this period. In addition, when presenting your appeal request, you must submit a written statement of why you contest your mark and which questions you'd like me to re-evaluate. Appeals will not be accepted without your written statement.