CS-381 -- Final Project
Fall Quarter 1999
Electrical Engineering and Computer Science Department
Dr. Christopher C. Taylor
The purpose of this lab assignment is to develop an integrated software
package for numerically interpolating, integrating, and differentiating
a given set of data.
- You are required to work in teams of two.
- When appropriate, your software system should reuse the code from
previous lab assignments. (Note: You are only permitted to use code that
written by one of the team members.)
- Your program should have the following functionality:
- Read data from a file (use the same file format as
- Resample data using least squares curve fitting
- The resampling rate should be specified in terms of the number
of samples desired in the resulting resampled data set. For example,
if the user specifies 16 samples, the algorithm should produce 16
data pairs uniformly spaced over the range of x values. Please note
that the initial data set need not be uniformly sampled.
- The user should also be able to specify the order (between 1 and 5)
of the polynomial curve that is fit to the data.
- Integrate using:
- Monte Carlo integration with a linear congruential random number
generator of your choosing
- Monte Carlo integration with cstdlib's rand()
- the 1/3 Simpson's rule
- the 3/8 Simpson's rule
- Differentiate using the divided differences method
- Output the data produced by any of the above calculations (You may
find it useful to produce output that is readily imported to a
graphing package like Excel, MATLAB, or the graphics shell many
of you are developing in CS321.)
First Week (due 4:30pm Tuesday, November 3, 1999)
In the first week you should design your software system. The deliverable
for this week should consist of a design report. At a minimum, you should:
- Identify what code is already written (and whose code the team will
- Identify what code needs to be written (and suggest a division of
labor among the team)
- Outline the structure of the code (include header files where
- Develop a plan of attack and estimate the time required to complete
- Discuss strategies for testing the code
- Determine how you will produce graphs of your program output (Note:
these graphs are required to be in one of the following formats:
.pdf, .eps, .png, or .jpg)
During the week 9 lab session, each team will be given another team's
design report to evaluate.
Week two (due 4:00pm Friday, November 5, 1999)
Each team should generate three input data files that can be used to
test their software package. Each team will be required to email the data
files to specified group so that they may use the same files to test there
software package. Each team is required to email these files to the other
team by the deadline above (4pm, November 5) and send me a carbon copy of
Week three (due 4:00pm Monday, November 8, 1999)
We will meet in lab. Each team will be given an input file which they
will use to demostrate the operation of their program.
Your software package should be fully functional, and you should be able to
graph the output in lab using some other software package.
Lab report (due 4:00pm Friday, November 12, 1999)
The lab report should be self-contained. That is, it should be possible
for someone to understand what you did and why without seeing anything other
than your report and any previous reports that you have submitted. Your
report should include:
- Problem Statement
- Procedure -- what approach you used to solve the problem
- Discussion including:
- A summary of your activity log indicating how much time you spent
on each phase of the assignment.
- A narrative describing any specific problems you encountered and how
you solved them.
- A narrative describing your testing procedure including any relevant
- Relevant graphs of the output (at least 3) produced by your program
(see formatting guidelines below).
- Conclusions (what you learned, suggestions of how the lab could be
improved, things you would have done differently, etc.)
- Documented source code (clearly
identifying any changes made since your last submission). Note: you
should include all the source code necessary to compile your project.
As with any report you submit, correct spelling and grammar are
required. In addition, your report should be submitted electronically
following the Electronic Submission
Guidelines. (You may wish to consult the
sample report before submitting your
report.) Be sure to keep copies of all your files, in case something
gets lost. It may be wise to keep a diskette backup as well.
If you have any questions, consult the instructor.
When discussing the results of your testing, you are required to
include graphs. These graphs should be included as separate files
and follow these guidelines:
This page was created by Dr.
Christopher C. Taylor, copyright 1999.