6.13. Design Requirements

Follow the design given in the assignment. [DESIGN: 1-100 points]

Your program must follow the design explained in the assignment. Failure to do that can lead to an arbitrary number of lost points. If the assignment says you must have a function called length with one parameter, write a function called length with one parameter, and make it do what the assignment says it must do.

Make the program do the right thing. [FUNCTIONAL-REQUIREMENTS: 1-100 points]

Your program must do what the assignment says it must do. Don't make it do something else.

Organize your program in a sensible way. [ORGANIZATION: 1-8 points]

[ORGANIZATION] means your program is organized incorrectly. For example, you might have put a function in the wrong module.

Organize your program in a sensible way. [LONG-FUNCTION: 1-20 points]

Limit a single function definition to 30 lines, not counting comments or blank lines. Do not violate other requirements in order to squash a long function definition down. Break the function up into smaller pieces, and document each piece.

Read from the source required in the assignment. [INPUT-SOURCE: 1-5 points]

[INPUT-SOURCE] means your program reads input from the wrong place.

Write to the destination required in the assignment. [OUTPUT-DESTINATION: 1-5 points]

[OUTPUT-DESTINATION] means your program writes output to the wrong place.

Do not use the Standard Template Library. [STANDARD-TEMPLATE-LIBRARY: 1-15 points]

This course is concerned not just with how to use data structures, but with how to create them. Only use library types that are explicitly approved in the assignment. Types that must be implemented as part of an assignment must be implemented by you.

Do not bypass the interface to a module [VIOLATE-INTERFACE: 10-25 points]

Only use features of a module that are part of its interface. Do not use private features that are not described in its interface. This is particularly important when a module implements an abstract data type.