CIS 120 Homework 6: Technical Writing

Important dates:

Introduction

The goal of this assignment is to give you some experience with a different aspect of programming: explaining the ideas behind programs, at an abstract level, in writing.

Begin by reading the rest of this document carefully.

The Assignment

In the 120 lectures this semester, we spent quite a bit of time going through the details of a linked-list implementation of the SimpleCollection interface. Another strategy we might have followed would have been to make this material a homework assignment, explaining the ideas at a high level and guiding students through a sequence of steps where they would implement all the pieces of the LinkedSimpleCollection and LinkedSimpleIterator classes, including the remove method of iterators. (We'll omit the contains method, to shorten things a little.)

Your task in this homework is to write such an assignment. That is, you will write the text of the homework assignment that we might have given to you if we had chosen to introduce the material this way.

Specifications:

Submission Procedure

As part of this assignment, we're going to make use of a wonderful facility that we have here in the Engineering School: the Technical Writing Fellows of the Technical Communication Program.

Here's how it works:

  1. You'll write and hand in a first draft of your assignment. Make this draft as polished as you can, so that the next phases have something to work with. If the writing fellows have to spend all their time on spelling and grammar or can't understand what you are talking about, they won't be able to help you improve the deeper aspects of your presentation.
    • Your first draft is due on Monday, November 9th.
    • Your document should in Word (.doc) format if at all possible. If you can't do .doc format, PDF is OK. Please do not submit documents in .docx format — .doc is much easier for the writing fellows to deal with. (Note that newer versions of Word use .docx by default; you have to explicitly ask for .doc format when you save the file.)
    • Please leave at least 1" margins so there's space for comments.

  2. Your first draft will be evaluated by one of the technical writing fellows and returned to you with comments on Monday, November 16th.

  3. In light of these comments (and your own re-reading of what you've done), you'll write a final draft.
    • Your final draft is due in class on Wednesday, November 23rd.
    • Submit a hardcopy of your assignment together with the marked-up first draft.
    • There will be no late period for this assignment.

Grading

Your grade will be based on how successful your assignment is at accomplishing its task. We'll evaluate it on multiple levels: Your grade will be based on how well you succeed at all these levels on both drafts of your assignment. In addition, you will be graded on the improvements you make between your first and second drafts.

Extra Credit Variation

If you'd like to make the assignment a little more challenging, you can replace the singly-linked-list implementation that we saw in class with a doubly-linked version where each Node has both a next and a previous pointer. (Obviously, part of your task will be figuring out for yourself how this version should work.)