Style Guide

Expectations for proofs

In general, proofs in 421 are not graded nearly as strictly as you are used to in 311. In 311, we need to make sure we know that you know what you're doing. Now that you're in a 400-level course, we believe you know what the starting point of a proof should be, so you'll often be allowed to skip those pieces.

Here are some things we really cared about in 311 that we don't care about in 421.

On the other hand, some things we do still care about:

What does it mean to "describe an algorithm"

If we ask you to "describe" or "design" an algorithm (or use any similar phrase), then you need to do four things.

1. Give us some intuition

Many of our problems have 1-2 core ideas in them. Telling us what you're intending to do (just in 1-2 sentences) makes it much easier for us to understand your code. You're not proving your code correct here, nor describing details. You're just giving 1-2 sentences of what you want to do.

2. Tell us what the computer should do

3. Tell us why it is correct

4. Analyze the running time

Pseudocode

We have some advice and examples in this pdf. See also the the tex file that generated the pdf.

Length

Your goal should be to write a solution that is fully correct, but also fully clear. A solution that spends excessive space on agreed-upon basics may obscure the key ideas. We thus limit the length of your submissions. Unless otherwise noted: