Standards for Presentation of Classwork

Overview: This document lays out the standards that will be used to evaluate the form and content of submitted homeworks and programming assignments. These standards apply to all work submitted for evaluation, including quizzes, exams, assigned homeworks, and programming assignments.

Let me begin by saying that these submission standards are not designed to make your life harder, or to impose some sort of police-state, hard-nose controls on your "natural creativity". Rather, the point is to teach you to present your hard work as...well...as a presentation. That is, in such a way that a reader/evaluator is effortlessly guided through a sequence of clearly organized materials in such a way that he or she can not fail to appreciate your true brilliance.

Unless specifically requested, I do not accept emailed submissions! You are responsible for printing, collating, and packaging up your own work. No exceptions!

Overall Presentation:

Submitting Problem sets:

Occassionally, I will assign problem sets from the end of a book chapter, or handed out in class. Once again, the key to formatting this work is legibility. To wit:

Submitting Source Code:

Most programming problems will require you to submit (either electronically or in hard copy) your source code for evaluation. Your overall goal here is two-fold: First and most important, you want to make it easy for a reader to discern the algorithm implemented by your code. This process of understanding must occur at multiple levels: the reader should be able to immediately grasp your overall approach to the problem (e.g. how you broke it up or modeled it in general); from this should flow an understanding of how the various subcomponents interact to produce the desired functionality; and finally, it should be clear how various subcomponents satisfy their purpose. Second, it should be easy to see how/where the code in the source file generates the output (see next section) presented for the program; ultimately a grader will want to be convinced that the source code presented really does produce the output you've submitted.

What does this all mean? One thing: plenty of clear, concise comments. Here are some guidelines to help you put this maxim into practice:

Note that these commenting guidelines apply to BOTH printed and electronically submitted source files. And it is worth emphasizing again that the whole point of these comments is to make it easy for a reader/grader to instantly grasp how your code works. This will ensure that you get maximum credit and -- in cases where the code does NOT quite work -- will help you get as much partial credit as possible.

Submitting Program Output:

For most people, the program output is the LAST thing they think about. Usually, they print off a snapshot of the output on their way to class, and just attach it to the back of their packet. This is ironic because, in evaluating the work, the FIRST thing the grader looks at is the output. Thus, you should spend a few minutes making sure your output is readable and easy to understand -- grab a pen and a highlighter and add a few annotations to what the printer just spit out. Some guidelines:

Summary

Again, the point of all this is to make it immediately obvious to the reader/grader what's going on. Those of you who have graded assignments for other courses know how frustrating and difficult things get when all you have is a rat's nest of partially unreadable, poorly commented papers. Make things easy on the grader, and (s)he will find it easy to give you maximum credit.