CSC 223 - Python for Scientific Programming & Data Manipulation, Fall 2024, MW 3-4:15 and 4:30-5:45 PM, Old Main 159.

Assignment 4 Specification, code is due by end of Friday December 6 via make turnitin on acad or K120023GEMS.kutztown.edu.

We will go over this in the November 11 class. TAKE NOTES. I am going to demo most of what you need to know in ipython.
November 13 will be a work session, and December 6 is the due date.
    Late assignments cost 10% per day as usual. Use make turnitin to turn it in as before.

Perform the following steps on acad or K120023GEMS after logging into your account via putty or ssh:

cd                                    # places you into your login directory
mkdir Scripting              # all of your csc223 projects go into this directory
cd  ./Scripting                 # makes Scripting your current working directory, it probably already exists
cp  ~parson/Scripting/CSC223f24MeasureWaves4.problem.zip  CSC223f24MeasureWaves4.problem.zip
unzip  CSC223f24MeasureWaves4.problem.zip    # unzips your working copy of the project directory
cd  ./CSC223f24MeasureWaves4                            # your project working directory

Perform all test execution on K120023GEMS to avoid any platform-dependent output differences.
All input and output data files in Assignment 4 are small and reside in your project directory.
Here are the files of interest in this project directory. There are a few you can ignore.

CSC223f24MeasureWaves4.py  #
your work goes here, generating analysis of waveform data in a PULL dataflow
genSamplesf24.py
            # contains a modified genSamples(...) function from Assignment 2 used as a library function
diffcsvWgz.py and arfflib_3_5.py     are used to check CSV files for differences
makefile                             # the Linux make utility uses this script to direct testing & data viz graphing actions
makelib                              # my library for the makefile

__pycache__                     # a subdirectory where Python stores compiled byte codes temporarily

DataflowGeneratorsOnePath.py   # Supplies example code. Read it to understand PULL dataflow. It is not part of this assn4.

Here are the graded STUDENT requirements from
CSC223f24MeasureWaves4.py:
# STUDENT 1 (5%): Complete documentation at top of CSC223f24MeasureWaves4.py.
# STUDENT 2 (11%) Write the following import statements:
# STUDENT 3 (21%) Initialize samples, wavetypes, duplications, etc.
# STUDENT 4 (21%) Pair and yield two genSampled wave 4-tuples as documented:
# STUDENT 5 (21%) assign pcc through quantilesRight as spec'd above.
# STUDENT 6 (21%) construct generators makeWaves, makeStats, and

Most of the waveforms in this assignment are those you generated in Assignment 2
    as illustrated in CSC558's Assignment 2. Below are two new Figures.
uniform_1_1023.png
Figure 1: uniform waveform type with a duplication parameter of 1

sine_3_1023.png

Figure 2: Additive effect of sine wave with duplication of 3 before normalization to the range [-1.0, 1.0]

The scaling down of the duplication 1 initial wave + the scaled copies of
duplication 2 and 3 waveforms cause the dips in the composite waveform
outlined in black. We will go over this on November 11.

Here are some URLs to libraries you will import and use in Assignment 4.

https://docs.python.org/3.11/library/statistics.html
https://docs.python.org/3.11/library/statistics.html#statistics.mean
https://docs.python.org/3.11/library/statistics.html#statistics.pstdev
https://docs.python.org/3.11/library/statistics.html#statistics.median
https://docs.python.org/3.11/library/statistics.html#statistics.quantiles
https://docs.python.org/3.11/library/statistics.html#statistics.mode
https://docs.scipy.org/doc/scipy-1.14.1/reference/generated/scipy.stats.pearsonr.html
https://docs.scipy.org/doc/scipy-1.14.1/reference/generated/scipy.stats.spearmanr.html#scipy.stats.spearmanr