Assignment Submission
CSC 261 Artificial Intelligence Fall 2011

Overview

This course features several lab assignments, as listed on the assignments page.

Submitting Programs

In turning in any programs for the course, please follow these directions:

  1. The first seven or more lines of any Scheme file should be comments containing your name, your mailbox number, the class section, an identification of assignment being solved, and a description of the contents of the file. For example
     
    ;;
    ;; File
    ;;   search.scm
    ;;
    ;; Author
    ;;   Jerod Weinman
    ;;   Box - Noyce Science Division Office
    ;;   CSC261.01
    ;;
    ;; Summary
    ;;   Provides a collection of routines finding solutions to search space problem
    ;;
    ;; Provides
    ;;   (search start-state problem enqueue heuristic)
    ;;   (breadth-first-search start-state problem)
    ;;   (depth-first-search start-state problem)
    ;;   (uniform-cost-search start-state problem)
        
  2. A comment is required for every definition of a Scheme method, stating the purpose of the program unit in English. Complete 6-P documentation is not necessary for every method (unless specified otherwise), but it is strongly encouraged, especially on major routines. Documenting before you write a procedure can help you plan and clarify the requirements of your implementation.
  3. Obtain a nicely formatted PDF listing of your source code using the enscript(1) command:

    enscript -Escheme -2 -r --color -p - source.scm ... | ps2pdf - prettysource.pdf
    where prettysource.pdf is the name of the file in which you want the formatted source code stored (enscript(1) generates a PostScript file, which you will pipe to ps2pdf(1) for conversion to PDF.) If your work involves several Scheme files, list the primary program first, then list any supplementary files. Multiple source files can be placed in one call to enscript(1). You may also use a wildcard such as *.scm. However, be sure this does not include any starter files, which should NOT be submitted.
  4. As appropriate, create a transcript of your program's output runs using the script(1) command:

    1. In a terminal window, start recording output to a file called transcript with the command:

      script transcript
    2. Run your program with appropriate test cases to check its correctness (it is usually best if you have written one Scheme file to take care of most of this behavior). For instance:

      mzscheme -l lang/plt-pretty-big-text.ss -f driver.scm
      runs driver.scm with the "Pretty Big" version of PLT Scheme.
    3. When your run is complete, stop the script session by typing Ctrl-D.
    4. Convert the recorded text file to a nice, printable PDFfile using enscript(1):

      enscript -2 -r -p - transcript | ps2pdf - transcript.pdf
      where transcript is the name of the recording file you created above, and the ".pdf" file is the printable version enscript(1) creates.
  5. Concatenate and print your program listing, transcript, etc, i.e.,

    pdfconcat -o submission.pdf prettysource.pdf transcript.pdf
  6. Create an archive of your source files and PDF for electronic submission. For example,

    tar cf submission.tar submission.pdf source.scm ...
    where submission.tar is the name of the archive file you want your files stored in. You may list as many source files on line as you wish, or even use a wildcard (*.scm) Please be sure you do not include any intermediate PDF files, etc.
  7. One group member should submit an electronic version of the archive (submission.tar from above) online via PioneerWeb by the due date.

Notes on Grading

Requirements

Since every programming task should yield readable and carefully tested code, the grading of all programs for this course will begin with the following algorithm (expressed in Scheme format):

    (if (or (not (commented? code))
            (not (visibly-tested? code)))
        0
        (grade code))
  

When a program is submitted according to the format specified above, it should be understood that the transcript reflects a complete session of program running. With this understanding, editing of any script file is strictly forbidden and will be considered a violation of academic honesty, which, by College policy, must be turned over to the Committee on Academic Standing for action.

Style

Because code maintainability is an important part of development, your labs will be graded in part on style, as well as correctness. After all, if I cannot understand your code (or it takes me too long to), I cannot give it a grade regarding its correctness.

Some style matters I care about:

Failure to incorporate these style considerations will lower your grade.

Jerod Weinman
Created 19 June 2008
Revised 20 August 2009
Revised 12 August 2011

Adapted from Assignments for Computer Science 213, Henry Walker; and CSC213, Fall 2006 : Laboratory exercises, Janet Davis.

With thanks to Henry Walker, Janet Davis, and Marge Coahran.