Modeling in Processing Daily Schedule Term 4
Course home page
See also Daily Schedule Term 5
Week 1 — Learning Processing, Chapter 1 — Pixels, Gray-Scale, RGB Color
- Thursday, Jan. 13 — The Canvas, Pixels, Bitmaps, and Numbering from 0 — 8-Bit Gray-Scale, 24-Bit Color — Hex Colors — The
size()
, background()
, stroke()
, and point()
Functions — Semicolons, White-Space (indentation and spacing), Comments — 0th Assignment (due Sunday, Jan. 16, 9pm): Bitmap
Week 2 — Learning Processing, Chapters 2 to 5 — More Drawing Functions — Animation — Interactivity — Variables, Conditionals
- Monday, Jan. 17 — Turn in 0th Assignment — Before Monday’s class: Read and digest Chapter 2 of Learning Processing — Type in the Zoog example to learn about
fill()
, rect()
, ellipse()
, line()
— Embellish Zoog (suggestions: add ears and use transparency) — You can define functions! — Animation with the very special functions setup()
and `draw() — Defining functions vs. calling functions — Interactivity
- Thursday, Jan. 20 — Before Thursday’s Class: Read and digest Chapter 4 of Learning Processing (on Variables and Types, and also including the
random()
and translate()
functions) — The most common and important types: int, float, and boolean (the others are char, byte, short, long, and double) — Unicode characters — String is not a primitive type in Java) — variable scope (very important!) — Assignment (weird, not like the equals sign in math) — Arithmetic Operators: +, -, *, /, % — Compound arithmetic and assignment operators, +=, -=, *=, /=, %=, — Unary increment and decrement Operators (and the post-increment and post-decrement operators): –, ++ — Into Chapter 5! — Relational operators: <, >, <=, >=, ==, != — If, else, else if — 1st assignment (due Sunday, Jan. 20, 9pm): Plaid
Week 3 — Learning Processing, Chapters 6 to 9 — Newton’s Laws, Loops, Introduction to Objects
- Monday, Jan. 24 — Review Solutions to the 1st Assignment — Donut-shaped (toroidal) boundary conditions — Reflecting velocity as a way of dealing with boundaries — Review speed and velocity (from algebra-based physics) — Introduce Newton’s equations of motion — Example from Section 5-7 (ball in steady motion reflecting at boundary)
- Thursday, Jan. 27 — Preparation for Thursday: read and type in the bouncing ball example in Section 5-8 AND read all of Chapters 6 and 7 (that’s loops and functions, which would be too much new material, except you have already seen a lot of the function ideas that Shiffman describes in Chapter 7) — In class on Thursday, Jan. 27, I will introduce Chapter 8 (objects) — In-Class Exercise: Convert the Bouncing Ball example to use objects
- Assignment due Monday, Jan. 31: do the 2nd Assignment Solar System AND you read Chapter 9 of Learning Processing (Arrays)
Week 4 — Inheritance, Encapsulation, Polymorphism, Classes, Instances, Garbage Collection — Arrays, — Randomness, Noise, Imports, Pixel Arrays, Vectors
- Monday, Jan. 31 — Theory of Objects: Inheritance, Encapsulation, Polymorphism — Terminology of Objects: Classes, Instances, Instance Variables (aka Fields or Members), Methods (aka Member Functions), Garbage Collection — Introduction to Java Arrays — In-Class Exercise: Convert your Solar System assignment to use arrays — Carmen’s wild and wonderful version of the solar system assignment re-written to use arrays
From here on, all chapter references will refer to The Nature of Code, rather than Learning Processing.
- Thursday, Feb. 3 — Preparation for Thursday: read the Introductory Chapter of The Nature of Code — Random Number Generation, Gaussian Distributions, Perlin Noise 1D, Perlin Noise 2D — Discussion of why randomness is often realistic (due to statistical mechanics in physical science and demographics in social science) — Imports in Java — Representing a 2D pixel array in a 1-dimensional Java array — Start Vectors (Chapter 1) — Newton’s Laws with Vectors
- Assignment due Monday, Feb. 7: do the 3rd Assignment, an interactive, Newtonian Black Hole AND you read through Section 1.8 (p. 54) of The Nature of Code
Week 5 — Forces, Mass, Newton’s Laws of Motion, Friction, Air and Fluid Resistance, Air Resistance — Realistic Gravity
- Monday, Feb. 7 — Diving further into Forces (Chapter 2 of The Nature of Code) — Center of Mass — Newton’s Third Law and 2-Body Systems — Two-Particle Oscillator code that we developed at the end of class
- Preparation for Thursday — You read through Section 2.5 — I will cover Sections 2.6 to 2.10 in class
- Thursday, Feb. 10 — Class Variables and Class Methods (aka “static variables” and “static functions”) (Section 1.9 of The Nature of Code) (illustrated with a JDFeedWagon class) — Gravity on Earth with the Mover class (Section 2.6) — Friction with the Mover class (Section 2.7) — Fluid Resistance with the Mover class (Section 2.8) — Many Movers with Mutual Gravity (Sections 2.9 and 2.10)
Week 6 — Springs, Runge-Kutta, Pendulums, Bobs Hanging by Springs
- Preparation for Monday, Feb. 14 — Do Assignment 4 AND read Sections 3.1 to 3.4 (you should do Exercise 3.3 at the end of Section 3.4 to test your understanding and just as general practice)
- Monday, Feb. 14 — Sections 3.5 and 3.6 covered in class — That should leave time to also get to the bottom of why some aspects of our simulations have been unrealistic (accumulated error) and show you how 2nd Order Runge-Kutta decreases accumulated error (how much is answered in Equations (A17), (A20), and (A24) of this paper)
- Preparation for Thursday — Read Sections 3.7, 3.8, and 3.9 AND as your final assignment (Assignment 5) do Exercise 3.8 (make your acceleration be some function of the angle) and Exercise 3.12 (just string two pendulums with different periods and lengths together — your result will look something like the figure at the top of this page, but it will not swing very realistically)
- Thursday, Feb. 17 — In class we completed Chapter 3 (bobs swinging on springs) — Single Bob on Spring —
Double Bobs on Springs
Week 7 — Term 4 Exam and Shakespeare Festival