As I teach through many of the concepts in Processing, one observation that has stuck out in my mind is the lack of math
knowledge that my students bring to the table. I have found myself needing to teach just as much math as actual coding and syntax with my students. For example, most middle school students do not know what a Radian is, or even how PI relates to a circle. The problem has been how to communicate the ideas without spending the time and brain power for the high level thinking that, to be honest is not in a middle schooler's wheel house.
An answer to that has been to emulate many of the tools from CS Unplugged. If you don't know what CS Unplugged is you can check out their site at www.csunplugged.org. Their goal is to teach major computer science concepts without actually touching a computer. They use simple visual and physical activity to simulate and communicate how a computer actually works.
I thought that I would take that idea and apply it to Processing and translating code into more visual and tangible exercises to help younger students or students with difficulty understanding certain concepts a way to grasp them.
As stated above, certain math concepts are a stumbling block for certain students and so the first attempt at a Processing Unplugged exercise was used to teach how a transformation matrix works. I built upon my idea of starting students out on graph paper for them to get used to drawing in a coordinate system. I then extended this by photocopying the graph paper I use onto transparencies. Students then use each transparency sheet as its own matrix.
I have them write out the code on a separate piece of paper making sure that they show each matrix layer with a pushMatrix(); and a popMatrix(); Their code for a rectangle would look something like this:
this "code" would tell them to draw a 10x10 rectangle on a transparency starting at 0,0. They would then translate their transparency over 10 squares, and down 10 squares on their base graph paper.
I have been playing around with how many layers I should give kids before their creation gets muddled and hard to use. Students have made some pretty cool stuff. As I work through really getting students to use this concept I will update with new pictures and information.
One questions still looms... how do I get them to scale(); using these materials?