ASSIGNMENTS
There is a 10% per late late penalty for projects that come
in after the due date.
Assignment 1
Specification, code is due by end of
Friday September 29 via make turnitin
on acad or mcgonagall.
Added 9/18, How
to interpret diff files when make
test reports an error.
Added 9/18 Setting
up putty and notepad++ including notepad++
tab-spacing.
We will discuss the effects
of logarithmic compression of exponential data
relationships regarding Hawk Mountain data.
See Q2
and Q6 results as they relate to Figures 6 & 7
from last fall's CSC458.
See also LinearExpLog10.py
and LinearExpLog10.csv
as a toy example.
We will
discuss this code in acad in relation to logarithmic
data compression.
$ ls -d
~parson/Scripting/CSCx23Fall2023DemoRegression*
/home/kutztown.edu/parson/Scripting/CSCx23Fall2023DemoRegression
/home/kutztown.edu/parson/Scripting/CSCx23Fall2023DemoRegression.zip
Per my email
of 9/22, please comment out this line in assn1's
makefile by inserting a # at the front: # $(PYTHON) diffcsv.py
CSC223f23CSVassn1.csv
$(REFFILES)/CSC223f23CSVassn1.csv
Also, you may
need to change permissions on your account's
public_html directory to make make graphs
accessible to a browser.
chmod -R o+r+X
~/public_html
Depending on
KU IT account settings that may not work. You do not
need to make graphs to pass tests.
Assignment
2 Specification, code is due by end of
Thursday October 19 via make turnitin on
acad or mcgonagall.
Preparation for Assignment 3
Three different techniques for
iterating through CSV tables and deriving per-row
attribute values.
This approach avoids
mapping header names to column numbers for every row of
data processed.
CSC223f23Partial.zip
and CSC223f23Partial are under ~parson/Scripting on acad.
Techniques include
using Python classes/objects, closures, and partial
functions.
Some Pandas Series,
pre-DataFrame, Relational Operation discussions.
Assignment
3 is on deriving data attributes using Python
object classes and closures.
It is due Tuesday November 21 at
11:59 PM via make turnitin.
(Due
date changed from original November 20.)
Assignment 4
is on using Python generators in a PULL dataflow graph
without forks. It is due
Saturday December 9 at 11:59 PM
via make turnitin. DUE
DATE MOVED TO END
OF MONDAY DEC 11
due to a glitch in
access to student
file system. Even if you
cannot see your files on
acad, a student has informed
me that ssh'ing into
mcgonagall works OK.
November 9 overview of Dataflow Graphs for
~parson/Scripting/CSCx23Fall2023DemoDataflow
Added 12/6/2023:
I will not accept late assignments after 9 AM on Tuesday
December 12.
I will go over my
solution in our final exam slot 12/12 for students doing
Assignment 5.
From the first day
handout: "Late penalty is 10% per each day late, up
until I go over the solution.
Any assignment turned in after that is worth 0%." I will
send Assn4 solution out around 9 AM.
Assignment
5 (optional) is a re-coding of Assignment 4
using a PUSH dataflow graph. # 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%.
ZOOM VIDEO ARCHIVE. Use Firefox or try other
non-Chrome browser for these links. Chrome has
problems.
August
29 Class First-day handout, overview of the course,
logging into acad & mcgonagall Linux servers for your
projects. August
31 Class Setting up python and ipython aliases on acad.
Interactive walk through of primitive data types & some
aggregate types
(int, float, str, None, list,
tuple, set, & frozenset types. The mutable
object types are in bold.) Next time dicts
(a.k.a. maps). September
5 Class Completed data types with dictionaries, went over
if-for-while control constructs, functions, and Python's use of
indentation. September
7 Class Completed higher order functions, , e.g., map, reduce,
filter, and related material. September
12 Class Survey sorting algorithms; function genData()
illustrates list operations & types of loops. Start assn1
overview.
Thursday the 14th will will go over
Assignment 1 in detail. Tuesday the 19th will be a work session. September
14 Class Went over Assignment 1 handout. Best order for
work is STUDENT 1, 2, 3, 4, then 5.
Construct generatorA and generatorB objects
identical to code in CSC223f23CSVpre1.py. September
19 Class Work session with Q&A about Assignment 1. No
class Thursday 9/21, see you next Tuesday after 3 days away. September
26 Class Q&A on Assignment 1. First 25ish minutes are
STUDENT 4 & 5. STUDENT 3 also covered later. September
27 1 PM Office Hours Q&A on assn1 Parts 2 & 3 (in
that order) in DETAIL. September
28 Class Student work
habit to project grade correlation, then Assignment 2.
Next Tuesday October 2 will be a work
session. Start ahead of time & attend ready to work. October
3 Work session on Assignment 2 with some recorded Q&A.
The first minute or so is missing the muted voice.
See Addendum at bottom of Assignment 2 handout
about using README.txt & CSC223f23WAVEassn2.csv
instead of make graphs for debugging. October
5 Class went over using Python objects, closures, and
partial function bindings to solve per-row data derivation
problems. The first minute-ish was muted again. October
12 Class went over use of Numpy arrays in Assignment 2
then Pandas
1D Series and Numpy arrays here.
October 17 Class I missed hitting the Record button. :-( But
there IS GOOD NEWS! :-)
I followed this
script exactly, so everything I covered is in this detailed
trace of PRE_DATAFRAMES down to the bottom.
The October 12 class went over the first half
of that doc. The October 19 class will reinforce concepts from
October 17.
Emphasis of Oct. 17 was using csv.reader to
avoid or perform reads of big datasets into memory. I will
review highlights. October
19 Class went over
~parson/Scripting/notpandas/monthly_raptors/aggregateMonthly.py Available
as a zip file here. October
24 Class went over ~parson/Scripting/notpandas/monthly_raptors/loadAndStoreNumpy.py,
started loadAndStorePython.py. October
26 Class loadAndStorePython.py, also
closures/generators/coroutines in ~parson/DataMine/coroutine.py. October
31 Class Python classes, objects, and closures in
preparation for Assignment 3. November
2 Class went over Assignment 3 handout code
& document. November
9 Class went over PULL-dataflow generator code. The 4th
was an unrecorded work session. Dataflow Graphs
for ~parson/Scripting/CSCx23Fall2023DemoDataflow November
14 Class resumed PULL-dataflow then went over
PUSH-dataflow code from Dataflow Graphs. November
16 Class finished PUSH-dataflow and started
Threaded Dataflows in the same directory. November
21 Class Went over Assignment 4 handout, see
above. No class on the 28th, see work session
the 30th. November
30 Class Brief recording of a few
administrative matters, then Q&A for Assn4 work
session. December
5 Class Went over optional Assignment 5
(PUSH) rewrite of mandatory Assignment 4
(PULL) dataflow pipelines. December
12 Final exam session went over Assignment 4
solution as it relates to Assignment 5.