Computer Science Department
University of California, Los Angeles
Joseph R. Shinnerl
Winter 2005
CS 31 PROGRAMMING PROJECT REQUIREMENTS
Design: Program design must use the modern programming methods discussed in lecture: modular programming, structured programming, and, as appropriate, object-oriented programming.
Coding: Coding must be clear, simple, efficient, and straightforward. Good style is essential. All code must be carefully commented to explain the purpose of each segment of code. Small redundancies and other inefficiencies are permissible only if they do not substantially detract from the readability and run-time performance of the program. Gross inefficiencies will be penalized, as will efficient but excessively cryptic solutions.
Testing: All code must be thoroughly tested using supplementary test data in addition to any test data provided with the problem specification. Perform validity checking on the input: prevent the user from crashing your program and display error messages for each invalid input value that you catch. For the first few assignments of CS31, you may assume the input is of the correct type, but you must check that it falls in the correct range.
Report Requirements: For each project, you will submit your C++ source code (one or more specified files) as part of a complete report. The English (non-C++) part of the report may be formatted in your choice of plain text (.txt) (ASCII), HTML (.html), MS Word (.doc) , Adobe PDF (.pdf), or postscript (.ps). MS Word documents must NOT contain macros. Standard graphics formats like JPEG (.jpg) and GIF (.gif) are also acceptable for flow charts and other diagrams; be careful that the size of any such graphics file is not too large (roughly, over 100K bytes). Source code (C++) must always be formatted in plain text. Reports are submitted online at a special web site described separately. All programming project reports require the following items,