Laboratory Exercises

CSC 261 - Artificial Intelligence - Weinman



Summary:
Information about expectations for laboratory exercises and methods for preparing to submit them.
This course features weekly laboratory exercises, as listed on the course schedule. Some may involve writing and testing programs, some may involve analytical reports, and some may involve a bit of both.
Please follow these guidelines in preparing and submitting your work. Note that the final submission process can take some time; be sure you allow enough time to construct your submission before the deadline.

Contents

1  Collaboration
2  Header
3  References and Honesty Certification
4  Transcript
5  Submission

1  Collaboration

You will begin most lab exercises in class using assigned partners; unless otherwise stated, homework assignments must be completed and submitted with these assigned partners.
Working with a partner will help ensure you can take some advantage of the principle that "Given enough eyeballs, all bugs are shallow."1 Working with an assigned partner will increase the chances of being exposed to different ways of thinking and problem solving as well as help you practice the skills you'll need in the work world, where you typically do not get to choose your coworkers.
Everyone whose name appears on a submitted group lab report has the responsibility to ensure everyone fully understands the submission.
Other discussions must respect the course academic honesty policy. Unless otherwise stated:

2  Header

You might be surprised how often the wrong files are submitted; a standard format makes it easier to identify when this has happened
The very beginning of each and every project file (excluding transcripts) should contain an identification of the assignment and a description of the contents of the file. The Title must exactly match the lab assignment header exactly. For example:
;; Lab: Title
;; CSC 261 
;;
;; File
;;   search.scm
;;
;; Summary
;;   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) 
DO NOT INCLUDE YOUR NAMES unless otherwise directed. Because your submission will be graded anonymously, you must not place your name in any file except the references/honesty file, below. Failure to heed this guideline will result in a one-letter grade deduction penalty.

3  References and Honesty Certification

Each and every submission must include a single file, references.txt, with the following information (sources, help, certification) completed.
References:
  Written/online sources used:
    [include textbook(s), CSC 261 labs or readings;
     use complete citations for Web or other written sources;
     write none if no sources used]
  Help obtained:
    [indicate names of instructor, class mentors
     or peers, consulted according to class policy;
     write none if none of these sources used]
Academic honesty certification:
  Our initials below confirm that the above list of sources
  is complete AND that I/we have not talked to anyone else
  (e.g., CSC 261 students) about the solution to this problem
  Initials:  ABC, DEF

4  Transcript

As appropriate to each assignment, you will need to create a transcript of your program's compilation and output runs using the script(1) command:
  1. In a terminal window, start recording output to a file called transcript (use the name specified by the assignment) with the command:
    script transcript
  2. If programming in C, compile your program with gcc, clang, or make as appropriate.
  3. Run your program with appropriate test cases to verify its correctness. It is usually best if you have written one Scheme file or script 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 Scheme we'll use in DrRacket. Note all output must be enclosed in display or printf commands to be seen in the transcript.
  4. When your runs are complete, stop the script session by typing Ctrl-D or exit.
If your username is present in your command line prompt, you will need to remove it in two steps. First, you will change the command line prompt within the transcript session, and then you will need to delete the first line from the recorded transcript file where your username appears. For example:
weinman@noyce:projects$ script output.txt
Script started, file is output.txt
weinman@noyce:projects$ export PS1="$ "
mzscheme -l lang/plt-pretty-big-text.ss -f driver.scm
...
exit
Script done, file is output.txt
weinman@noyce:projects$ emacs output.txt &
In Emacs, you may delete the first line (when it contains your username), but any other changes will be considered a violation of the Academic Honesty Policy.
IMPORTANT WARNING: Be sure you do not accidentally give the name of your program file (e.g., homework.scm) as the argument to script. If you do, it will overwrite your file and you will have to start over completely.
IMPORTANT REMINDER: Your script-based transcripts are subject to the syllabus academic honesty policy (based on the student handbook):
Any program results or output must be faithfully recorded, not forged. (A thoughtful explanation of unexpected behavior can often be a worthwhile submission and is much better than the alternative.)

5  Submission

One group member should submit your files online to the corresponding assignment on PioneerWeb by the due date. Attach each required file to upload. Type the complete e-mail addresses of all the individuals named on the lab into the Comments box. For example
starjane@grinnell.edu, cooljoe@grinnell.edu
(This will enable graders to provide responses easily.)
Only one submission per project group is required. However, all group members are jointly responsible for ensuring a submission is made. For example, if your partner told you she/he/ze would submit the project but forgets to do so, all group members will incur late penalties. For this reason, I recommend submitting work while you are sitting together.
The assignment drop-box is configured to accept re-submissions. Only the last submission will be downloaded, but if you repeat a submission all required files must be re-uploaded (even if only one changed). The timestamp of the last submission will be used to determine when the assignment was completed (for assessing any late penalties).

Footnotes:

1This principle is dubbed Linus's Law by Eric S. Raymond in The Cathedral and the Bazaar, O'Reilly Media, 1999, p. 30.