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:
- Collaboration with students outside your group is NOT allowed on homework
laboratory exercises.
- You may use language references to determine relevant Scheme or C
syntax and semantics. Because syntax is standardized, we will consider
syntax and semantics to be "general knowledge," and you need not
cite reference sources for these purposes.
- You may consult only the textbook, course web page, and lab assignments
for information regarding algorithms. However, any non-syntax consultations
(including the textbook and language references) require formal citation
within the related program or exercise.
- You always may consult the instructor (and mentor during class)
regarding questions on labs or assignments.
- You may always consult your colleagues regarding questions on interpreting
assignment-related example/starter code or about what an assignment
is asking. However, you may never consult with non-group members
about solutions or implementations.
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:
- In a terminal window, start recording output to a file called transcript
(use the name specified by the assignment) with the command:
-
$ script transcript
- If programming in C, compile your program with gcc,
clang, or make as appropriate.
- 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.
- 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.