General Information on Programming Projects
© 1997, Howard E. Motteler, Modified 1998, Gary L. Burt
Documentation and Coding Style
Projects should begin with your name, SSN, and the project number (e.g., "Project 2") in a comment at the start of the file. This should be followed by a short description of how you solved the assigned problem, including a mention of how well your program works, as best you are able to determine. Any further requirements for documentation will be specified in the project handout.
Functions and procedures should be accompanied with at least a brief description of what they do, and of what their parameters are. Long, complex, or subtle procedures will generally need more careful documentation. Aside from the required documentation, you can choose one of the two coding styles and be consistent with it. The emacs editor has editing modes for justifying and formatting code, for several languages, which can be helpful in this regard, and examples of reasonable coding styles will be provided for each language used.
Due Dates
Due dates are typically days that class meets, and projects are always due by midnight of a due date. There are no extensions, and no incompletes, except as required by university policy. Projects can be turned in late, but will be penalized 10% for each day they are late.
Test Data
If you are provided sample test data, it is not guaranteed to be comprehensive, in the sense of being able to uncover every possible programming error. A major part of any real programming project is designing effective tests. Your project will be graded on test data that is similar but not necessarily identical to the sample test data. For some projects, you will write functions or procedures to be linked with code that I provide. In this case, you must use the procedure or function names specified in the project handout, as other names will not link with the test routines.
Submitting Programs
<TBD>
Grading
Working correctly counts for at least half of a project's grade; the exact way in which points are assigned for correctness, design, documentation, efficiency, etc., vary with the project and is given in the project handout. Overly long or inefficient solutions may be penalized. Partial credit may be given for solutions that only work on part of the test data. Projects that don't compile get 0 points. You must do the project that is assigned. Doing some other similar or dissimilar project, no matter how clever, may be worth 0 points. You should understand how your projects works, and exam questions will sometimes cover details of project implementation.
Academic Honesty
It's OK to talk about how to solve problems, but the projects are not group projects. Do not submit other people's work as your own. You should keep your code to yourself.; if your project is copied, it may be hard to determine who the real author was.
Any help you receive should be documented in a comment at the beginning of your program. For example, if you found a solution to a Lisp exercise in a text or manual, you should cite the source. Reasonable help will not affect your grade; failure to cite your sources is cheating. (the preceding sentence was borrowed from Jim Mayfield's 331 syllabus, as was the idea of requiring citations.)