CSC 220.010CPVL - Object Oriented Multimedia Programming, Fall 2020, TuTh 12-1:20 PM.
CSC 220.020CPVL - Object Oriented Multimedia Programming, Fall 2020, TuTh 1:30-2:50 PM.
This semester's classes are entirely via the Zoom link below. Zoom student docs are here.

MEAN vs. MEDIAN grading plan for final grades.
The FINAL EXAM SCHEDULE via the regular Zoom class link is:
12:00 class meets Thursday, December 10, 2020, 8:00 a.m. – 10:00 a.m.
1:30 class meets Tuesday, December, 8, 2020, 8:00 a.m. – 10:00 a.m.
These will be work sessions on Assignment 5 for students working on assn5. You may attend either or both.

If you get a password prompt to view recordings, go here https://kutztown.zoom.us/ and Sign In using KU login.

Normal Office Hours 11/30-12/3: Monday 1-2, Tuesday 3:30-4:30, Wednesday 12-2, Thursday 3:30-4:30 or by appt.
Final week office hours 12/7-12/10: Monday 1-3, Tuesday & Thursday 11-12:30
See your course page for final exam work-session schedule.

Dr. Dale E. Parson


First day handout (syllabus that is specific to this semester).
TuTh 12-1:20 or 1:30-2:50 PM, Zoom classes & recordings, http://faculty.kutztown.edu/parson
Class-time Zoom link for CSC220: See D2L Course CSC220 -> Content -> Overview for the link.
IF you don’t want to be recorded or are a minor, use PRIVATE ZOOM CHAT to me for questions.
The course is 100% via Zoom at class time. I will record & post class videos, but want you there at class time. Thanks.
Please fill out & email Dr. Parson this permission to record slip. I will use it to take attendance in week 1.

KU Campus Mask policy: Resident students must wear a mask anytime they are outside of their personal room and within a building or with anyone else but their roommate. Commuter students must wear a mask anytime they are on campus within a building or with anyone. The course is 100% via Zoom at class time. I will record & post class videos, but want you there at class time.

PA: The Secretary's Order requires individuals to wear a face covering, in both indoor public places and in the outdoors when they are not able to consistently maintain social distancing from individuals who are not members of their household, such as on a busy sidewalk, waiting in line to enter a place, or near others at any place people are congregating. Whether inside in a public place or outside, and when wearing a face covering or not, everyone should socially distance at least 6 feet apart from others who are not part of your household.

Dr. Dale E. Parson, parson@kutztown.edu, Office hours: https://kutztown.zoom.us/j/94322223872
Office Hours Monday 1-2, Tuesday 3:30-4:30, Wednesday 12-2, Thursday 3:30-4:30 or by appt.



RESOURCES & HANDOUTS


CSC120 Recap Demos for month 1 of CSC220, Fall 2020

Link to the Fall 2018 course.
Why Love Generative Art? is extremely well written, comprehensive, and worth reading.
SunflowersFall2020 demo code for blendMode and filter requires field.jpg, Sunflower.png, and sunWglasses.png.
CSC220F20PixelBrush demonstrates using screen shots as paintbrushes.


Shiffman's textbook's website including Examples and Exercises that will familiarize you with Processing.
Software setup instructions:
    1. On your Windows U:\ drive, create a new folder called Processing.
        U:\ is available anywhere on campus and does not auto-delete files.
        Do not store files on your PC desktop. They will be gone after you log out.
    2. Use the Windows Explorer to create folder U:\Processing.
    3. Every time you start Processing, go to Preferences and change the Sketchbook location to U:\Processing.
        You must create folder U:\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 U:\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.


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.
My slides on MIDI and PCM (Pulse Code Modulation) Digital Audio.

MY HANDOUTS

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


ASSIGNMENTS (Link to Grad Assistant tutoring info. At least 2 of the 4 GAs have used Processing.)
    Updated (9/15) tutor schedule with CSC220 tutoring included.
There is a 10% per late late penalty for projects that come in after the due date.

Assignment 1 is posted here, and is due by 11:59 PM on Thursday September 24 via D2L. We will have an in-class work session.
    There is an outline web page here.
    Assignment 1 handout doc was updated in red after class on 9/10. The handout code did not change.

    Assignment 2 is due by 11:59 PM on Thursday October 15 via D2L.
        Starting code CSC220F20Assn2_3D for starting your 3D programming.
        TriTexture.jpg for my textured PShape. If you go for the bonus points for texturing, you must supply your own image file.
        CSC220F19Demo3DSphereBox shows how to position & stretch 3D shapes using translate() and scale().
        CSC220F19DemoPShapeassn2 is my 10/1 simplified sketch for developing your custom makeCustomPShape() for assignment 2.
            Build and test your makeCustomPShape() function in this sketch, the copy & paste it into assignment 2's sketch.
        CSC220F20Simple3Da is a stripped-down version of Assignment 2 that demonstrates 3D concepts.
        CSC220F19DemoPShapeCylinder is a simple demo sketch for making a 3D cylinder.

Assignment 3 entails adding MIDI to Assignment 2's 3D sketch. It is due by end of Saturday November 14.
        Here is the handout code that you must PARTIALLY copy, along with code for your new MIDI Tab.
        ConcentricCircles was a previous year's assignment that ran slowly due to plotting many nested circles per draw().
        ConcentricCirclesIntervals speeded that up by creating nested circles in a GROUP PShape, also added MIDI.
            MIDI tab for ConcentricCirclesIntervals; this is a Processing TAB. Bugs fixed and key commands enhanced October 2020.
            Use ConcentricCirclesIntervals to figure out your PATCHES and CONTROLLER effects.
            http://midi.teragonaudio.com/tech/midispec.htm documents the controller effects.

Assignment 4 involves building recursive 3D grids of shapes. It is due by end of Thursday December 3.
    This was a pre-Android, pre-COVID CSC220 project.
    Here is the handout / starting code and my PNG EasterEgg image that you must replace with your own.

Assignment 5 is a very basic maze construction program, due by the end of Thursday December 10.
    Here is the starting code. UPDATED 12/8, top of draw(), to fix a Processing bug found by a student.


ZOOM RECORDING

August 25 12:00 class, Initial overview of the course, demo & Q&A on the graphical COVID@KU simulation in Processing.
August 27 12:00 class, Going over download & install & Preferences config of Processing, demos A to D here.
September 1 12:00 class, Going over demos D to F here.
September 3, 12:00 class, we went over the rationale for 2-week turnaround on projects, went over bounding boxes in detail.
September 8, 2020, we went over the final 2, G and H examples here, and started looking at Assignment 1 in the last ~10 minutes.
September 10, 2020, noon class we went over assn1 handout in great detail, in-class work session on Tuesday the 15th.
    I updated parts of the assn1 handout in red. The handout code did not change.
September 15, 2020, both noon & 1:30 class work sessions. The second half has a lot on rotation and bounding boxes.

September 17, 2020, noon class started working through 3D example sketches listed under Assignment 2 above.
September 22, 2020, noon class continued working through 3D sketches listed under Assignment 2.
September 24, 2020, noon class went over CSC220F19DemoPShapeassn2 as it pertains for the upcoming Assignment 2.
September 29, 2020, noon class went over Assignment 2 requirements, work session on October 1.
October 1, 2020, work session with Q&A recordings from noon & 1:30 classes including showing 3 examples of assn2 from last year.
October 6, 2020, started investigation of MIDI & digital audio, see "MIDI" links above.
October 8, 2020, went over the MIDI parts of ConcentricCircleIntervals above, also other MIDI references.
October 13, 2020, went over enhanced MIDI in ConcentricCircleIntervals, also custom PShape to speed up draw().
October 15, 2020, went over keyPressed() interpreter of numeric commands in ConcentricCircleIntervals, Q&A on Assn2.
October 20, 2020 - Java exceptions, generic container classes, plans for Assignment 3.
October 22, 2020 - interactive examples of blendMode() and filter() applied to graphical display actions.
October 27, 2020 - went over details of this sketch, which we may use in the final exam 1-week mini-project.
October 29, 2020 - Extension in both noon and 1:30 class beyond that of noon of CSC220F20PixelBrush intended for final exam project.
November 3, 2020 - Went over Assignment 3 handout above. Thursday 11/5 will be a work session. No class November 10.
November 10, 2020 - Watch this video leading up to Assignment 4.
November 12, 2020 - Background for upcoming, recursive Assignment 4.
November 17, 2020 - Went fully over Assignment 4 handout specs & code. November 19 will be a work session on it.
November 19, 2020 - Work session on Assignment 4, including some good Q&A. 40 minutes.
December 1, 2020 - Went over Assignment 5 handout, Q&A on Assignment 4.
December 3, 2020 - Work session on mostly Assignment 4 & some Assignment 5, a lot of Q&A.
December 8 Final exam work session - worked through Assignment 5 Q&A.