Laboratory Write-Up and Submission
CSC 295 - Computer Vision - Weinman
- Summary:
- Information about expectations for laboratory exercises
and methods for preparing to submit them.
Overview
This course features weekly laboratory exercises, as listed on the
course schedule.
Unless otherwise stated:
- Collaboration with students outside your group is NOT allowed on laboratory
exercises.
- you may use the Mathworks' Matlab language reference (i.e. documentation)
to determine relevant Matlab syntax and semantics. This will be considered
general knowledge, and you need not
cite reference sources.
- you may consult only our textbooks and Mathworks references for information.
All non-syntax consultations (including the textbook and Matlab references)
require formal citation within the related program or writeup.
- you always may consult the instructor
Laboratory submissions will generally consist of two parts:
- A prose write-up consisting of complete sentences and accompanying
images or figures, with headings as appropriate.
- Matlab script or function .m files used to produce your results.
These are to be written and submitted using the guidelines below.
Laboratory write-ups
In creating a write-up for a lab, please follow the directions within
the lab on what is to be submitted. In particular, your write-up should
consist of:
- Headings to easily separate the various sections of your
write-up.
- A brief introduction to the lab summarizing the technique(s)
or subject(s) being explored and your purpose or objective.
- As appropriate to the lab (its exercises and deliverables), prose
descriptions of your approach to solving the problem at hand.
- Figures (images and/or graphs) inlined at appropriate places
in the text. Your text should refer to the figures where appropriate.
Note also that:
- Every figure must have a caption.1
- Graphs should have axis labels (i.e. using xlabel and ylabel).
- As directed by the lab assignment, a section describing your observations
about the behavior of the algorithm (i.e., stability, uniqueness,
reliability, etc.).
- A brief conclusion summarizing your results and analysis.
- Acknowledgments or citations for the source of any raw image
data (even if they are provided with the lab).
Because most of our labs are tightly focused, the overall text you
may need to write will likely be small, though the reports may seem
longer due to the inclusion of many images.
You are free to use whatever authoring program you wish for your write-ups.
It is relatively easy to include images in LibreOffice documents (it
even supports drag-and-drop on the MathLAN!). You may also wish to
learn LATEX, or LYX a spiffy front-end for the mark-up language
available on the MathLAN via the command lyx (I use it for
all my research and teaching writing).
You must submit your write-up as a PDF file. I will not open
or read any other format (esp. OpenOffice or Word). It is generally
easy to create PDF files from most processors (LibreOffice even has
a button to do it).
Laboratory programs: scripts and functions
In preparing any scripts or programs for the course, please follow
these guidelines.
- The first dozen or so lines of any Matlab file should be comments
containing your name, your mailbox number, the class section, an identification
of assignment being solved. If it is not a function, it should also
contain a brief description of the contents of the file. For example,
-
%
% Author
% Jerod Weinman
% Box - Science Division Office
% CSC295
%
% Lab
% Image Formation
%
% Summary
% Estimates the noise encountered by a CCD from several images
% of a uniform surface.
- In addition to the above, documentation is required for every
definition of a Matlab function, stating in English what that program
unit is supposed to do. Documenting before you write a procedure
can help you plan and clarify the requirements of your implementation.
For example,
-
%
% Author
% Jerod Weinman
% Box - SCIE
% CSC295
%
% Lab
% Image Formation
function N = estimateNoise(X,Y,Z)
% ESTIMATENOISE Estimates the noise in a sequence of three images
%
% N = ESTIMATENOISE(X,Y,Z) where X, Y, and Z are grayscale images
% (all of the same dimensions) and N is a matrix of the same size
% containing the noise estimate -- a standard deviation
% of the values at each pixel in the sequence.
Submitting your work
You will have multiple files to submit (at the least a PDF and a Matlab
file). Therefore, you will need create an archive of them for electronic
submission. For example,
-
$ tar cf lab.tar source.m writeup.pdf ...
where lab.tar is the name of the archive file you
want your files stored in. You may list as many files on line as you
wish, or even use a wildcard (*.m) You may also add an
entire directory to an archive by including the directory name without
a trailing / in the list of
files. If you do this to include the entire directory, please be sure
you do not include any unwarranted image files, etc.
One group member should submit an electronic version of the file archive
(i.e.., lab.tar) online via PioneerWeb by the beginning of
class.
Notes on grading
Requirements
When a lab write-up is submitted according to the format specified
above, it should be understood that the images and figures accurately
reflect the output from the accompanying program. Anything otherwise
may raise questions of academic dishonesty; and, by College policy,
any evidence of academic dishonesty must be turned over to the Academic
Standing Committee for action.
Style
Every programming task should yield readable and tested code. Because
code maintainability is an important part of development, your labs'
code 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:
- Indentation and whitespace that help delineate code blocks.
(Most editors will help you with this.)
- Helpful comments on blocks of code or particularly complicated
expressions
- Functions that are reasonably small. A very good guideline
I try to follow is getting an entire procedure to fit on much less
than one screen; this makes interpreting a function's action more
readable by forcing you to break it down into named steps that can
be seen at once. It also promotes easier debugging and unit testing.
- Code lines that are no wider than 80 characters. This makes
them easier to read both on screen and on paper. (Note: If running
enscript on your program code produces X
lines were wrapped, where X is some number, then your lines
are wider than 80 characters and you should re-format your code with
additional linebreaks.)
Failure to incorporate these style considerations will lower your
grade.
Acknowledgments
Adapted from Assignments
for Computer Science 213, Henry Walker; and CSC213,
Fall 2006 : Laboratory exercises, Janet Davis. Some of the style
considerations were adapted from Marge Coahran's.
Footnotes:
1If you have read any of Tufte's four Graphics Press books and practice
his advice well, you may be exempted from this requirement.