Computer Science Fundamentals (CS153 2004S)

Format for Lab Write-Ups

At times during this semester, I will ask you to write up your laboratory exercises. This document provides some basic guidelines for laboratory writeups.

Contents:

File Types and Names

The writeup should be typed and saved as a .scm file. For example, you might save laboratory writeup one as smith.writeup1.scm. Please make sure that you include a group member's name as part of the file name so that the graders and I can distinguish them.

Please use plain ASCII text files for your work. In DrScheme, you should use the Save as Text option.

Starting the File

The writeup should begin with Scheme comments that give

All of that information should be preceded by three semicolons.

For example,

;;; Sarah Schemer '01, box 01-01
;;; Steven Schemer '04, box 00-08
;;; CSC153-01, Spring 2003, Samuel A. Rebelsky
;;; Laboratory Writeup 1: Types
;;; Monday, 27 January 2003
;;; File name: schemers.writeup.01.ss
;;; Available in MathLAN as 
;;;   /home/schemers/cs151/schemers.writeup.01.ss
;;; Available on the Web as 
;;;   http://www.cs.grinnell.edu/~schemers/cs151/schemers.writeup.01.ss
;;; Assistance from:
;;;   Sam Rebelsky, our beloved but disheveled professor
;;;     (Problems 1, 3, and 5)
;;;   Reese Stoltzfus, our astounding class assistant
;;;     (Problems 1 and 2)
;;;   Harvey and Hermione Hacker, our somewhat confused classmates
;;;     (Problem 2)
;;;   Some student at MIT who posted the answer to problem 4.
;;;     The URL is ...

You can often create your .scm file by starting with the log from a session (or from your definitions window), which you've saved as a text file. We will load the .scm file and execute it, comparing output as we go.

Sample Output

You should include sample output for any test expressions in your program. That sample output and any comments you have should be preceded by semicolons. For example, if you were testing the list procedure, you might write:

(display "Testing list with no parameters")
(list)
; ()
; Hmm ... no parameters gives the empty list.

(display "Testing list with null as a parameter")
(list null)
; (())
; No, that's not the same thing.  Why not?  Perhaps I
; need to check lengths.

(length (list))
; 0
; Okay, nothing is in that list, so the length is 0.

(length (list null))
; 1
; Hmmm ...that's not the same as the empty list.  Ah!  I remember,
; Sam said you can have lists in lists.  So this must be the list
; of the empty list, which means that there's one element.

Note that you do not need to include the observations in most cases, although I do think they help you remember why you were doing the tests and what confused you (or what they showed you).

Note also that I have not included the Scheme prompts (>) in my file. You should not include the prompts, either.

Documenting Procedures

Whenever you write your own procedures, you should make sure to document them with the 6P's:

The preconditions represent requirements you have in order for your procedure to work. The postconditions represent guarantees about the result (and the state of the Scheme system after you're done). For more information, see the reading on preconditions and postconditions.

You can see the Glimmer Scheme Web for a number of examples of this kind of documentation. You can also find an example in the reading on comments.

Turning it in

Email your lab to me. I prefer that you cut and paste it in to an email message. If you have difficulty with cut and paste, an attachment will suffice.

 

History

Monday, 4 September 2000 [Samuel A. Rebelsky]

Tuesday, 5 September 2000 [Samuel A. Rebelsky]

Tuesday, 12 September 2000 [Samuel A. Rebelsky]

Sunday, 18 February 2001 [Samuel A. Rebelsky]

Tuesday, 10 September 2002 [Samuel A. Rebelsky]

Friday, 13 September 2002 [Samuel A. Rebelsky]

Wednesday, 22 Janaury 2003 [Samuel A. Rebelsky

Thursday, 22 January 2004 [Samuel A. Rebelsky]

 

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Fri May 7 09:44:05 2004.
The source to the document was last modified on Thu Jan 22 22:09:10 2004.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS153/2004S/Handouts/writeups.html.

You may wish to validate this document's HTML ; Valid CSS! ; Check with Bobby

Samuel A. Rebelsky, rebelsky@grinnell.edu