You are encouraged to use helping procedures.

For programming problems, there is usually more than one right answer,
hence it is important to write a clear solution.
Answers to programming questions will be scored with the following
breakdown of points:
\begin{itemize}
\item
60\% for elegance and clarity
   (whether your program solves the given problem correctly
   in the given subset of the language)


\item
40\% for correctness
    (using relevant techniques to modularize the solution,
    making good use of language features, the creativity of your solution)

\end{itemize}
You should try to eliminate all syntax errors from your programs,
as they affect both the correctness and clarity of your solution;
you may receive no points for programs with major syntax errors.
Checking of external inputs, and other
conventions for dealing with humans are not important (for this class),
unless the problem says so.
