CSC 220.010CPVL - Object Oriented Multimedia Programming, Fall 2023, TuTh 12-1:15 PM, Old Main 158.
CSC 220.020CPVL - Object Oriented Multimedia Programming, Fall 2023, TuTh 1:30-2:45 PM, Old Main 158.

My Thursday December 14 office hour moves to 2:30-3:30 PM so I can attend a thesis presentation.

Our final exam time slot will be a work session.
    Noon class Tuesday, Dec. 12, 2023 11 a.m.-1 p.m. 1:30 class Thursday, Dec. 14, 2023 11 a.m.-1 p.m.
    They will be work sessions on final projects. You are welcome to attend both via Zoom or in person.
    My office hours are the regular ones that week.
 

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

Amber is the CSC220 undergrad tutor on this schedule.

Office Hours Monday 3-5 PM, Wed. 3-5 (Zoom only), Thurs. 9:50-10:50 or by appt. All available via Zoom.
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 CSC220 Zoom room and student instructions for using Zoom.
The Zoom link for our course is on the course D2L page Content tab.

 

Dr. Dale E. Parson


First day handout (syllabus that is specific to this semester).
PLEASE FILL OUT & EMAIL ME THIS FORM THE FIRST WEEK OF CLASS.


RESOURCES & HANDOUTS


On campus PCs with the S:\ drive mounted, double-click S:\ComputerScience\processing-4.3\processing.
    I recommend creating your sketch folder on a thumb drive. We will go over during week 1.

CSC120 Recap Demos for month 1 of CSC220, Fall 2023
    PushTranslateRotateScalePop example written 9/4/2023.

Link to the Fall 2022 course.
Why Love Generative Art? is extremely well written, comprehensive, and worth reading.


Shiffman's textbook's website including Examples and Exercises that will familiarize you with Processing.
Software setup instructions:
    1. On your OneDrive, create a new folder called Processing. Or you can bring a thumb drive for your work.
        OneDrive should be available anywhere on campus and does not auto-delete files. We need to test this.
        Do not store files on your PC desktop. They will be gone after you log out.
    2. Use the Windows Explorer to create folder OneDrive\Processing.
    3. Every time you start Processing, go to Preferences and change the Sketchbook location to OneDrive\Processing.
        You must create folder OneDrive\Processing the first time you want to use it.
        To run Processing, find Processing under S:\ComputerScience on your PC.
    5. All of your practice and assignment sketches must reside under OneDrive\Processing.
    6. If you Download & Install Processing on your home machine, use the current version Processing 4.3.
        I don't usually upgrade the version mid-semester, in the interest of stability, unless I need a specific bug fix.

The official Processing website has many examples and library documentation.
Here is the Library Reference. Keep this handy at all times!
The Reas & Fry book, Second Edition.
We will occasionally import classes from the Java class library, which comes with all standard Java installations.


MY HANDOUTS

We'll use my solution to spring 2018 csc120cpvl assignment 3 as an intro to interfaces & classes.
Review of interface inheritance & implementation inheritance.
Spring 2014 Java slides on exceptions
Spring 2014 Java slides on generics

My spring 2022 sabbatical leave report with many photos & links to my videos.

ASSIGNMENTS

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


Assignment 1 is due by end of Thursday September 28 (was the 26th) via D2L.
    Here is the starting code. Make the changes specified in the handout to a copy of that.
    Do not change parts not documented in the handout. That may break handout code that your code needs.

Assignment 2 is due by end of Thursday October 19 via D2L.
Here is the starting code and here is my TriTexture.jpg needed by my handout texturing code.
PLEASE READ THIS OCTOBER 24 NOTE and watch the video.
Class material on 3D:

    CSC220FA2022DemoSome3D is a demo of these mechanisms. Here is an outline explanation.
    Here is my texture image IceCrystals.jpg used for texturing ("wallpapering") shapes in this demo code.
    NEW: Here is a simple 3D demo sketch and also a helper sketch for designing your PShape.
    Here is documentation on loading SVG vector files for the Illustrator-savvy (not required).


Assignment 3 is due by end of Thursday November 9 via D2L.
    Read the October 24 doc and listen to the October 24 Zoom recording for changes to STUDENT 3.
    Tuesday October 24 will be a work session. Please come prepared to work.
    Added 10/30 in response to student questions:
    All of the instructions are in the STUDENT tab along with most​ of the work.
    There are instructions in Student for adding a constructor call loop in setup() and
        changing a couple Globey functions. I recommend testing after each STUDENT step.


Prep for Assignment 3.       
    Java class library https://docs.oracle.com/javase/8/docs/api/javax/sound/midi/package-summary.html
        and https://docs.oracle.com/javase/8/docs/api/javax/sound/midi/ShortMessage.html
MIDI Fanatic's Technical Brainwashing Center is the best site for MIDI specifications.
        Follow Technical Docs and Programming -> The MIDI Specification from that page.
ConcentricCirclesIntervals speeded up a predecessor by creating nested circles in a GROUP PShape.
            MIDI tab for ConcentricCirclesIntervals; this is a Processing TAB.
            Use ConcentricCirclesIntervals to figure out your PATCHES and CONTROLLER effects.

My slides on MIDI and PCM (Pulse Code Modulation) Digital Audio.
    SoundWavesToPixels and its MP3 file for demoing digital audio visualization.
Here is a demo handout & solution code from Fall 2021's Assignment 3.
We will do a modified version of Fall 2022's Assignment 3, perhaps with textured and shrinking spheres instead of hay bales.

Assignment 4 on recursive graphics due end of Thursday November 30
via D2L.
    Here is the handout code and Dr. Parson's image file that you must replace.

Prep for Assignment 4.
    Example from a prior semester on a 2D, recursive, plane-filling sketch.
    Example from a prior semester on a 3D, recursive, space-filling sketch.
    Example of a fractal tree with pine needles at the ends of branches.
    Background material on recursion and fractals.

Assignment 5 (mandatory), due by end of Thursday December 14 via D2L.
    Here is the handout sketch code and data. This is the original .zip file that requires an update to Mutators tab:
See 12/05/2023 note in the handout about +t and similar mutator commands.
Hitting '+' comes before 't', not at the same time, similar for other '+'-prefixed commands.
NOTES ADDED IN PROJECT SPEC 12/01/2023 regarding auto-advance versus manual advance on '1' for Mutators.
    Notes apply on to Mutators. Other Transforms remain unchanged, requires updating Mutators tab with this code.
    If you have changed the InvisibleMutator class for the 10 bonus points, be careful not to over-write your work.
    Download this updated Mutators tab & over-write the Mutators tab code in the original handout zip file.
12/7/2023: Image file names in file CSC220Fall2023PaintingAssn5.txt must be spelled exactly
with respect to upper versus lower case. For example If I had spelled:
CrowsNestPuddle.jpg
as
CrowsNestPuddle.JPG
it would not have loaded and I would have a blank image, showing the background, possible blank.
If some or all photos are not showing up, look for this bug in file CSC220Fall2023PaintingAssn5.txt.

    Our final exam time slot will be a work session.
        Noon class Tuesday, Dec. 12, 2023 11 a.m.-1 p.m. 1:30 class Thursday, Dec. 14, 2023 11 a.m.-1 p.m.
        They will be work sessions on final projects. You are welcome to attend both via Zoom or in person.
   
FILTER and MASK examples for Assn5 prep.

Assignment 6 is OPTIONAL for extra credit but you must turn in Assignments 1-5 for it to count.

OPTIONAL Assignment 6 is a basic maze construction program, due by end of Friday December 15.
    It must be in D2L by then to include it in the grade.
    If turned in on time, your final grade will be the larger of the (average of grades 1-6)
    and the (average of grades 1-5). Otherwise, I will just average mandatory assignments 1-5.
    Here is the starting code. Demo video posted with Zoom November 16 class recording.


ZOOM VIDEO ARCHIVE
Use Firefox or try other non-Chrome browser for these links. Chrome has problems
    
Tuesday August 29 class Intro to CSC220 plan and Processing.
Thursday August 31 class went over optional textbook (2nd edition), installing Processing 4.3, & CSC120 Recap Demos through Demo D.
Tuesday September 5 class continued with CSC120 Recap Demos D through F.
Thursday September 7 completed CSC120 Recap Demos. Reading for Tuesday is Assignment 1.
Tuesday the 12th we went over & started Assignment 1. Questions on waving arms & others near the end.
Thursday the 14th work session including Q&A about your avatar's getBoundingBox() & other assn1.
Tuesday the 19th began introduction to 3D via
CSC220FA2022DemoSome3D  with IceCrystals.jpg.
    Assignment 1 due date moved from Sep 26th to Thursday the 28th per office hours move.
    Monday 9/25 office hours moved to Wed the 27th, see above.
Tuesday the 26th Continued going over 3D sketches in preparation for Assignment 2.
Thursday the 28th Student work habit to project grade correlation, then Assignment 2.
October 3 work session had no recorded video.
October 5 went over the makeCustomPShape() and VectorAvatar approach for Assignment 2.
October 12 went over MIDI & PCM audio material at Prep for Assignment 3 above.
October 17 went over sketches under Prep for Assignment 3 above, adding MIDI to 3D.
October 19 went over Assignment 3 handouts. Please download and save the tabs & image file.
    Next Tuesday will be a work session. Please come prepared.
October 24 work session recording on limited available CONTROL_CHANGE values in assn3,
    also instructions on timed shutting-notes-off and playing multiple notes. PLEASE READ THIS.
October 26 went over 2D recursive shape drawing in this sketch. Also brief review of Oct 24 doc.
October 31 went over 3D recursion and also some Assignment 3 Q&A.
November 2 more on recursive graphics including drafting a C-Curve and fixing the bugs in 1:30 class.
    I also answered some questions about STUDENT 3 in Assn3 at the start and again at start of 1:30 class.
November 7 Finished C-curve code and started on Assignment 4 handout.
    In the 1:30 class we got through all of Assn4, recorded on this video start at 1:11:48.
November 9 was an unrecorded work session.
November 14 we mostly went over the fall 2019 networked musical instrument for the planetarium.
    I hope to get us in there.
    Also, Tuesday November 28 no class. I will be away for an exhibition including my digital art.
November 16 Went over optional, extra-credit Assignment 6 ONLY if you have turned in Assns 1-5 by the end.
November 21 Went over nesting & rotation of 2D shapes for Assignment 4.
    NestingCSC220Fall2023, NestingCSC220Fall2023PShape, and
        NestingCSC220Fall2023PShapeWithRotation are the 3 sketches we went over in class.
        You'll need your own .jpg or .png to loadImage().
    I will be away November 28, see you in class on November 30.
December 5 Went over Mutators tab update to Assignment 5 and Assignment 5 Q&A.
    Thursday December 7 we will meet in the KU Planetarium in the Grim Building. No Zoom.
You do not have to hit ‘+’ at the same time you hit a key command like ‘t’.
So in the assignment 5 instructions:

+t<Enter>
means
1.    Hold shift and hit the “+” key.
2.    Release shift and hit the ‘t’ key.
3.    Hit the Enter key when you are ready for this mutator to take effect.
A student had the misconception that it was necessary to hold down ‘+’ while hitting ‘t’. It’s not. I will update the assignment page.

December 12 Final exam session, recorded "how to record & play back keystrokes" for assn5.