CSC 220.010CPVL - Object Oriented Multimedia Programming, Fall 2022, TuTh 12-1:20 PM, Old Main 158.
CSC 220.020CPVL - Object Oriented Multimedia Programming, Fall 2022, TuTh 1:30-2:50 PM, Old Main 158.

CAPSTONE PROJECT VIDEO DISPLAYING IN ROHRBACH LIBRARY DURING SPRING 2023

This semester 15 students from fall's CSC220 Creative Graphical Coding class have agreed to display their capstone project video on the monitor outside Rohrbach Library's coffee ship. The approach is an improvisational video instrument coded by the instructor, Dr. Dale Parson of Computer Science & Information Technology, and extended by each student who then conceived, practiced, and performed a novel piece for exhibition using their own photographs. Contributing students are Justus Hamm, Christopher Lipovsky, Rebekah Underwood, Paul Barton, Amber Kulp, Daniel Gorman, Armando Velazquez Santiago, Kylee Hager, Jesse Quier, Madison Schlott, Luis Feliz, Marcello Feliciano, Michael Colandene, Palak Dilawari, and Ryan Livinghouse. The video piece runs until final exam week.

Office Hours Monday 2-4, Wednesday 4-6 (Zoom only), Thursday 10-11 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 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


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

The Graduate Assistant Tutor schedule is here.
    Nathan Zolna and Bohdan Jacklitsch have taken Processing courses with me.
The CSC 120 tutor in Rohrbach Library should be able to help 220 students new to Processing.

Link to the Fall 2021 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 latest version Processing 3.x, currently 3.5.
        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
    Sketches that illustrate java.util containers:
        ShapePaintEcho2021SentientAV.f21.zip and PaintDomeServer2018B_010.f21.zip


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

ASSIGNMENTS

     

Assignment 1 on animating a 2D avatar, due 11:59 PM Thursday September 29 via D2L.
        Due date was previously the 24th.
    Here are instructions for setting up a Processing sketchbook folder on the networked OneDrive.
    Use a thumb drive to save your work if you will be using a Mac or other PC not on the campus network.
    This OneDrive should be reliable, but it is the first time I am using it in a course.

Assignment 2 on displaying 3 dimensions, PShape vector graphics, and PImage raster graphics.
    Due 11:59 PM Thursday October 13 via D2L. There will be 1 lab session.
    Here is the starting point handout code. TriTexture.jpg needed, supply your own if you texture your PShape.
    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).

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.

Assignment 3 is due by 11:59 PM in D2L Assignment 3 on Thursday November 10.
    The STUDENT tab has your instructions & requirements.
    Here is the main code TAB.
    Here is the STUDENT tab with instructions and grading rubrics.
    Here is the Parson TAB with my Avatar.
    Here is the HayField TAB with the bales of hay.
    Here is the MIDI TAB with the MIDI helpers.
    Here is the clover image for the bales. Sketch also uses TriTexture.jpg for the VectorAvatar.
    Here is a link to a YouTube video with the exploding Hay Bales.
    You can ZIP your project directory into a .zip archive (not .7z) or turn in ALL the sketch files.
        I need all the .pde files and any images you add turned in to D2L. Just send me everything.

    You can skip step 4d in the STUDENT tab. There is a bug somewhere related to that.
  	// 4d. Make some kind of color change to HayBale.display() as it explodes.
  	//      This sketch shows: demoBox.setFill(color(0, 255, 0));
  	//  https://faculty.kutztown.edu/parson/fall2022/CSC220FA2022DemoSome3D.txt
  	//      Hit 'T' and 't' to see mixture of the texture and fill.
 
Assignment 4 on creating Recursive Graphical Shapes is due via D2L Assignment 4 by end of November 25.
    Here is the handout code I will demo in class week of 10/24 with image file Hex306090B.png.
    Here is some Q&A about STUDENTIMAGE & STUDENTSHAPE added 11/20.
    In class demo code of a recursive tree with waving pine needles from October 27.
    A 2D recursive "machine" demo from 2020.

Assignment 5 (mandatory), due by end of Thursday December 15 via D2L.
    Here is the handout sketch code and data.
    Final exam sessions are Tu 12/13 8 AM for noon class and Th 12/15 8 AM for 1:30 class.
        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.

OPTIONAL Assignment 6 is a basic maze construction program, due by end of Sunday December 18.
    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 is posted here.


ZOOM VIDEO ARCHIVE

     August 30 First class examining semester plan and introduction to Processing
     September 1 class examined & ran demos A thru D in the review demos.
     September 6 class examined setting up networked OneDrive for saving work,
        then CSC120 recap demo E and new PushTranslateRotateScalePop demo.
     September 8 class finished the CSC120 recap sketches.
        Read & start working on Assignment 1 this weekend to be ready for Tuesday's work session.
    September 13 class went over all of Assignment 1.
        Discussion of Furniture and Paddle starts at 1:05:25 (1 hour:5 minutes:25 seconds)
    September 15 class was an assn1 work session, 8 minutes including a few on rotating your avatar.
    September 20 class went over 3D demo code and pointed out my notes on that.
    September 22 class went over this additional 3D demo and this PShape demo in prep for Assn2.
    September 27 class went over handouts for Assignment 2. Thursday 9/29 will be a work session.
    September 29 noon work session summarize rotation/bounding box/scaling issues.
    October 4 noon went over introductory MIDI material under Assignment 3 above.
    October 6 noon went over last year's assn3 and last year's CSC480 3D matrix, which I will combine into our assn3.
    October 18 noon went over our Assignment 3 handout.
    October 20 both classes is a complete, "Bob Ross" demo solution of every step in Assignment 3.
        You can skip step 4d in the STUDENT tab. There is a bug somewhere related to that.

  	// 4d. Make some kind of color change to HayBale.display() as it explodes.
  	//      This sketch shows: demoBox.setFill(color(0, 255, 0));
  	//  https://faculty.kutztown.edu/parson/fall2022/CSC220FA2022DemoSome3D.txt
  	//      Hit 'T' and 't' to see mixture of the texture and fill
October 25 class improvised recursive CCurve and TreeCurve sketches, latter from the 1:30 class.
CCurveTreeCurve
October 27 class improvised 3D recursive tree, added pine needles moving with wind in 1:30 class (not recorded).
November 1 class more on 2D recursive sketches.
November 3 class parts 3 and 4 of Assn3 detailed answers, then FILTER and MASK examples for Assn5 prep.

FILTER
Filter Demo, Alternating ERODE and DILATE

Mask
Mask Demo with Background and Foreground Images and mask() on latter

November 8 class some Q&A on Assignment 3 at beginning and end. Remainder is new Assignment 4.
November 15 class went over filter() on display & PImages, mask(), and intro to a worker thread.
November 17 class filter(), mask(), blend(), blendMode() prep for Assignment 5.
November 22 class work session with assn4 Q&A about PShape, PImage, drawShape(), and key commands.
November 29 class went over new Assignment 5 requirements.
December 1 class went over optional Assignment 6, then some mandatory Assignment 5 matters.