Laboratory Exercises

CSC 364 -Computer Networks - Weinman



Summary:
Information about expectations for laboratory exercises and methods for preparing to submit them.

Overview

This course features several programming-based laboratory exercises, as listed on the course schedule.
Unless otherwise stated: Programs (source code, compilation, and output) are to be submitted in the format below.

Submitting laboratory exercises

In turning in any programs for the course, please follow these directions.
  1. The first five or more lines of any program should be comments containing your name, your mailbox number, your lab section, an identification of assignment being solved, and a description of the contents of the file. For example:
    # Jerod Weinman  
    # Box: Science 1232
    # CSC 364 Computer Networks
    # Lab 1: Review of Python
    # review.py: Demonstration of Python basics
  2. A comment is required for every definition of a function, stating the purpose of the program unit in English. While complete 6-P documentation is not required for every method, it embodies many good practices you may wish to consider. 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 -p - -Ec -2 -r --color source.c ...  |  ps2pdf - prettysource.pdf
    for C code or
    enscript -p - -Epython -2 -r --color source.py ...  |  ps2pdf - prettysource.pdf
    for python code, where prettysource.pdf is the name of the file in which you want the formatted source code stored (enscript generates a PostScript file, which you will pipe to ps2pdf(1) for conversion to PDF.) If your work involves several source files, list the primary program first, then list any supplementary files. Multiple source files can be placed in one call to enscript. While you may also use a wildcard, such as *.c, be sure you only include the files requested for the particular assignment.
  4. As appropriate, 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 with the command:
      script transcript
    2. Compile your program with gcc or make as appropriate.
    3. Run your program with appropriate test cases to verify its correctness.
    4. When your runs are complete, stop the script session by typing Ctrl-D.
    5. Convert the recorded text file to a nice, printable PDF file using enscript(1):
      enscript -p - -2 -r 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 (merge) your program source, transcript, and report etc.
    pdfconcat -o submission.pdf prettysource.pdf transcript.pdf
  6. If the assignment a PDF and source files, create an archive of your source files and PDF for electronic submission. For example,
    tar cf submission.tar submission.pdf source.c ...
    where submission.tar is the name of the archive file you want your files stored in. You may list as many source files on the line as you wish, or even use a wildcard (*.c) Please be sure you do not include any intermediate PDF files or urequested source files.
  7. One group member should submit an electronic version of the archive (submission.tar from above, or submission.pdf if no source files are required) online via PioneerWeb by the due date. Be sure you allow enough time to construct your submission before the deadline.

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 C format):
if ( (no_comments)
   || (no_evidence_of_compilation)
   || (no_test_runs) )
return (no_grade);
When a program is submitted according to the format specified above, it should be understood that the transcript reflects a complete session of program listing, compilation (when applicable), and running. That is, you must submit a transcript of what happens when building and running your program, even if it produces a compile error or crashes on running. Programs submitted without a transcript will not be graded.
With this understanding, editing of any script file is strictly forbidden and will result in automatic failure on the assignment. Such editing also may raise questions of academic dishonesty; and, by College policy, any evidence of academic dishonesty 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.

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.