CPSC 223 - Intermediate Python Scripting, Fall 2024,
MonWed 3:00-4:15 and 4:30-5:45 PM, Old Main 159

Use Firefox or try other non-Chrome browser for these links. Chrome has problems

Office Hours Mon 11 AM-1 PM, Wed 12-2 PM, Th 4-5 PM, or by appt.
We will distance 6 feet in my office, so plan to attend office hours online.
Office hours Zoom: https://kutztown.zoom.us/j/94322223872
Links for CSC223 Zoom room and student instructions for using Zoom.
The Zoom link for our course is also on the course D2L page Content tab.


During FIRST 2 WEEKS IN DECEMBER my Wednesday office hours move to Tuesday:
Office Hours Mon 11 AM-1 PM, Tuesday Dec. 3, 12-2 PM, Th 4-5 PM, or by appt.
Office Hours Mon 11 AM-1 PM, Tuesday Dec. 10, 12-2 PM, Th 4-5 PM, or by appt.

Our CPSC223 Final Exam slots, Zoom or in-person, are as follows:
3:00 PM class meets Wednesday the 11th 11:00-1:00 to work on take-home final exam.
4:30 PM class meets Wednesday the 11th  2:00-4:00 to work on take-home final exam.
I will go over the solution to Assignment 4 at the start of these sessions.
Attendance is optional. Please turn in the final exam via D2L by the deadline.
 
 

Dr. Dale E. Parson


First day handout (syllabus that is specific to this semester).
Fall 2024 tutoring schedule includes CSC223 coverage.
PLEASE FILL OUT & EMAIL ME THIS FORM THE FIRST WEEK OF CLASS.


You will need to use the acad Linux server in this course. You will have to come in
via a VPN starting this fall. Here are the instructions for that. Download the VPN from here.
Run ssh K120023GEMS.kutztown.edu after logging into acad to perform make test and other work.


RESOURCES & HANDOUTS


Our department is adding a Scripting Certificate, a Data Science major, and a Data Science minor in fall 2024.
    Instructions to Change, Add, Remove an UNDERGRADUATE Major, Minor or Certificate Program

Weekly class time materials
Initial Linux environment Setup on our new Linux server  using Python 3.11.
Week 1: Python Resources and Python Basics
   
Read and work along with Sections 1 through 5 of the Python Tutorial in parallel to our class time examination of Python basics.
Week 2 is about functions and function-like constructs in Python.
Week 3 is the sorting example and Assignment 1 overview.

Shell scripting, bash extras, grep and sed Unix utilities.

ASSIGNMENTS

There is a 10% per late late penalty for projects that come in after the due date.     


Assignment 1 unusual radix sort, handout code is posted on 9/6, due by 11:59 PM Thursday September 26 via make turnitin.
    You must run make test on
K120023GEMS.kutztown.edu (a.k.a. arya).
   
You can download & unzip DEMO ~parson/Scripting/CSC223f23SORTassn0.solution.zip similarly to Assn1.

Assignment 2 on generating composite audio-like waveforms atop last year's project, posted on 9/23
    Run make test on the new server. This project is due via make turnitin by the end of Thursday October 17.
   
I will be on vacation Thursday October 10 through the 15th, no classes or office hours.

Assignment 3, code is due by end of Friday November 15 via make turnitin.

Assignment 4
code is due by end of Friday December 6 via make turnitin.

Assignment 5 is a take-home set of questions & answers about Assignments 1-4.
    It is due by the end of Wednesday december 11 via D2L.
    See November 25 and December 2 review slides, Zoom videos, and code if you have questions.
    I made a short add on running python or ipython from the command line to the Assn5 web page on 12/4.
 
 

ZOOM VIDEO ARCHIVE. Use Firefox or try other non-Chrome browser for these links. Chrome has problems.
    
August 26 - Introduction to the course.
August 28 First 40 minutes are a walk-through of setting up your Linux account, and then Python basic & aggregate data types.
    A student's excellent summary of using our Linux server written recently.
September 4 Python data types, "for" and "while" loops, "if-elif-else" constructs, Boolean expressions, function "def"initions.
    The sorting example code we are going over is available to copy and unzip:
    mkdir Scripting    # Do this from your login directory
    cd ./Scripting
    cp ~parson/Scripting/CSC223f23SORTassn0.solution.zip CSC223f23SORTassn0.solution.zip
    unzip CSC223f23SORTassn0.solution.zip
    cd ./CSC223f23SORTassn0
September 9 Examined genData and selection sort functions in
CSC223f23SORTassn0, then Assignment 1 to STUDENT 4.c.
    Wednesday September 11 we will finish Assignment 1 explanation then have a work session.
September 11 Went over Assignment 1 requirements, starting with how to use bitwise operators (<<, >>, &, |) and related.
    Monday 9/16 will be entirely a work session. Please come prepared to work.
September 16 Short 0verview of Assignment 1 Pitfalls, setting up nano editing TAB parameters, then a work session.
September 18 Went over Fall 2023 Assignment 2 as a starting point for your extension.
    You will be generating signals graphed and being analyzed in my CSC558 Assignment 2.
    (^^^ That is not your assignment. We need to look at those figures.)
    We went over ~parson/Scripting/CSC223f23WAVEassn2.solution.zip from last year.
September 23 Finished Fall 2023 Assignment 2 and started going over your Fall 2024 Assignment 2 that builds on last year's.
    Wednesday 9/25 I will finish going over your Assignment 2 & most of the class will be a work session. Come prepared.
September 25 A little on Assignment 1, then finish intro of Assignment 2, then a work session on Assignment 2.
September 30 went over countHours.py in ~parson/Scripting/filterDemo.zip
October 2 went over CSC223f24Partial.py in ~parson/Scripting/CSC223f24Partial.zip.
October 7 reviewed Python closures & added generators with demos of both.
    Near the end of the 3 PM recording are some generator examples that
we didn't get to
        in 4:30 because we added some more closure examples onto the 4:30 Zoom video.
    Here are IPython listings for the main closure and generator examples we went over.
October 9 A PULL, single-path dataflow architecture using Python generators.
    Code examined is in DataflowGeneratorsOnePath.py from this zip:
    See ~parson/Scripting/CSCx23Fall2023DemoDataflow.demo2024.zip for example code.
    Recording starts out with two Assignment 2 bugs to avoid.
October 16 closures, generators, coroutines, PULL & PUSH dataflows from
CSCx23Fall2023DemoDataflow.demo2024.zip.
October 21 Assignment 2 solution, exception handling try: except: (known as catch), raise (known as throw), examples.
    References for Built-in Exceptions and Errors and Exceptions.
October 23 Assignment 3 handout, Monday October 28 will be a work session, come prepared.
October 28 was a work session with some one-to-one debugging, no video recording.
October 30 Went over my code portions of Assignment 3, Python operations for built-in container types.
November 4 Went over pearsonr and spearmanr correlation coefficients, mean absolute error and
    mean squared error in measuring similarity / differences in two data sets.
    The end of the recording includes a section from the 4:30 class on data compression.
November 6 Review of generators & coroutines + threads in
    ~parson/Scripting/CSCx23Fall2023DemoDataflow.fall2024.zip
November 11 Assignment 4 handout up to statistical mode & quantiles.
    Mostly done going over handout, Wednesday the 13th will be a work session.
November 13 Finished Assn4 statistical mode and quantiles explanation, mostly unrecorded work session.
    Monday the 18th we will meet here at 3 PM instead of class for extra credit sign-in.
November 18 here is the Zoom video of Grant Fickes' presentation (abstract here).
    You may have to log into Zoom with your KU credentials if that link gives a permission problem.
    Students who signed one of the two sign-in sheets will receive 10 bonus points on Assignment 4.
November 20 Assn3 solution, then start going over aspects of Assn4 for take-home exam  Assn5 & prep slides.
    This Zoom video is longer than usual, covering the 3 PM class in the first 75 minutes, then the 4:30 class.
    It covers two full class sections. It is there for review of the final take-home exam.
November 25 This is your full final exam review session including slides and Zoom video.
December 2 Overview of applying pearsonr, spearmanr, mean_absolute_error, and
    root_mean_squared_error to machine learning (ML). The new, ML material will NOT be on the
    final, take-home exam, but this material is largely to explain those 4 error measures.
    Here is the Python code from ~parson/Scripting/CPSC223_PostFinal_ML.py that we went over.
December 4 A short recording with additional info on the Final Exam Project 5. I made a short add to that web page.