CSC 223 - Advanced Scripting for Data Science, Fall 2024, MonWed 3:00-4:15 and 4:30-5:45 PM, Old Main 159.

I will be on vacation Thursday October 10 through the 15th, no classes or office hours.

Assignment 2 Specification, 
code is posted on 9/23, due by 11:59 PM Thursday October 17 via make turnitin.
   
    You must run make test on K120023GEMS.kutztown.edu (a.k.a. arya).

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

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

Perform all test execution on K120023GEMS to avoid any platform-dependent output differences.
The project makefile drives testing via running make test on
K120023GEMS.
Here are the files of interest in this project directory. You can ignore makelib.


CSC223f24WAVEassn2.py                # This is the Python source file you will edit. Make sure NOT to edit the f23 file.
CSC223f23WAVEassn2.py                # Last year's assignment 2 that you will use as a library module.
makefile                                             # This script directs the actions of make clean test and make turnitin.
makelib                                              # This is my library used by makefile.


Students will build on the fall 2023 project that makes some basic reference audio-like waveforms
to create more complicated waveforms by combining multiple copies.

This is last year's project, not yours, although you will call the genSamples(...) function in it.
This is this fall's CPSC558 Data Mining & Predictive Analytics II project 2.
It illustrates and uses the composite waveforms generated by your project 2.
    See Figures 1 through 18.

You can type make student from within the project directory to see your requirements.
You should search for all upper-case STUDENT comments and of course understand the handout code.
Please take notes when I go over this in class.

# STUDENT 1: (1%) Complete documentation at top of CSC223f24WAVEassn2.py.
# STUDENT 2 (15%) Open an output file for writing whose name is in
# STUDENT 3 (4%) Close the files you opened for writing in STUDENT 2.
# STUDENT 4 (15%): Call genSamples from module CSC223f23WAVEassn2.py
# STUDENT 5 (15%): Create duplicate 2 with 2 X original frequency
# STUDENT 6 (15%) Add scaled duplicate1 and duplicate2 samples
# STUDENT 7 (15%) Compute MIN through MEDIAN statistics on timeDataFloats,
# STUDENT 8 (20%): Compute reversals as the number of up-to-down +

You can see all STUDENT details when you edit
CSC223f24WAVEassn2.py.

Type make clean test on machine
K120023GEMS when you are ready to test.
I will go over how to interpret any .dif file that shows the differences between your output
    and the expected .ref reference output.
When you have completed all work and make test works correctly, type make turnitin
    and hit Enter when prompted to turn in the code. We are NOT using the turnin script.
    You will not receive email after make turnitin. If make doesn't report an error, it worked.
    There is a 10% per-day penalty for all late projects in this course.
    Any project turned in during or after the class in which I go over a solution is worth 0%

References

Numpy arrays https://numpy.org/doc/stable/reference/generated/numpy.array.html
Numpy 16-bit integers https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.int16
Numpy ravel https://numpy.org/doc/stable/reference/generated/numpy.ravel.html
Numpy sign https://numpy.org/doc/stable/reference/generated/numpy.sign.html
Numpy abs https://numpy.org/doc/stable/reference/generated/numpy.absolute.html