CSC 223 - Python for Scientific Programming & Data Manipulation, Fall 2023, TuTh 4:30-5:45 PM, Old Main 159.

# Due Date: No later than 9 AM on Friday December 15 via make turnitin.
#   This assignment is OPTIONAL and I will count it only for
#   students who have turned in assignments 1 through 4.
#   For students submitting 1 through 5, your final grade will be
#   the larger of the average of (assn1 thru assn4) and the average
#   of (assn1 thru assn5). You may skip doing assn5, and I will
#   NOT accept assn5 for anyone who has not turned in (assn1 thru assn4).
# Must be in by the above deadline in order to count because of KU grading deadlines, else 0%.

 
Perform the following steps on acad or mcgonagall 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/CSC223f23PushDataflowAssn5.problem.zip  CSC223f23PushDataflowAssn5.problem.zip
unzip  CSC223f23PushDataflowAssn5.problem.zip    # unzips your working copy of the project directory
cd  ./CSC223f23PushDataflowAssn5                            # your project working directory

Perform all test execution on mcgonagall 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.

CSC223f23DataflowAssn5.py  #
your work goes here, generating & aggregating statistical distributions in a PUSH dataflow
makefile                             # the Linux make utility uses this script to direct testing & data viz graphing actions
makelib                              # my library for the makefile

CSC223f23DataflowAssn5.ref    # the expected output for diffing against output CSC223f23DataflowAssn5.csv
DataflowGeneratorsDAG.py    # Earlier example code for a PUSH dataflow pipeline, not part of the assignment.

Here are the graded STUDENT requirements from
CSC223f23DataflowAssn5.py:
# STUDENT 1: 5% Write makeNormal(Loc, scale, size, seed)
# STUDENT 2: 5% Write makeExponential(scale, size, seed)
# STUDENT 3: 5% Write generator generateDistribution() with these parameters
# STUDENT 4: 27% Write *coroutine* generateStatisticalAnalysis that iterates
# STUDENT 5: 27% Write *coroutine* saveStatisticalAnalysisCSV that tests
# STUDENT 6: 31% call .__next__() on each of coroutines stage2 and

We will go over this in class.
In our final exam period,
Tuesday, Dec. 12, 2023 2-4 p.m., I will go over my solution for Assignment 4,
which must be in before then. We will then have Q&A work time for students selecting Assignment 5.
    Late assignments cost 10% per day as usual. Use make turnitin to turn it in as before.

Here is the topology of Assignment 5's dataflow, identical to Assignment 4 (no forks), but using PUSH dataflow.

CSC223f23DataflowAssn5.png