This is the start of my life in programming. 10th Grade. Downingtown High School in Pennsylvania. My father told me of an after-school class being taught by two teachers from a local college-- West Chester State College as it was known at the time (1970). In my first class, I was provided with a blue/green IBM plastic programming template. I think the first assignment was to write a program that read a count (N) of numbers, averaged these numbers, and then output the average of the numbers. We had a card punch machine in the school, and our card decks were shipped to the College for processing. Later, we received our green-striped paper output. It was a long process. Although some may see programming as a sort of automation, I was creating a new "machine" with each program. Imagine being told that you could create a machine, but that you'd need to "write" a machine rather than build one. This is the essence of programming. Even today, a program is a mental model of an ethereal machine--stuff that moves around, is stored, and manipulated. Writing doesn't really do the "machine" justice. It is really all visual, a mental model, and I used writing because that is all that was available. Today, coders and modelers do the same thing -- they create imaginary machines that are not quite real--all existing in the head, but real enough to reason about unless too many weeks have passed, and the formerly crisp memory of the machine begins to decay. The goal of programming and modeling is not to automate a task but to understand one. What better way of understanding something than to design a machine to recreate that thing? Want to know how to bake an apple pie? Write a program. Create an apple pie machine. As the old saying goes, if you cannot write a program (or make a machine) then you don't understand the task sufficiently.
Much of what we do in the Creative Automata (CA) Lab is oriented around multiple representations of a single abstract mathematical concept--such as integration in calculus or sorting in computer science. How can we personalize approaches for learning something like integration? Is it possible to leverage our multiple cultures to engage and motivate the learner? The lab just submitted our video entry to the National Academy of Engineering (NAE) Grand Challenges for Engineering Video Contest called E4U2. Sharon Hewitt from the CA Lab designed and produced this video. The video segments include representations of a virtual analog computer based on the sand-like flow in PowderToy, as well as several personalized models of the Lotka Volterra model. Instead of making models for other people, consider that you can learn about modeling by making these wonders for yourself. In this arts-based approach, you will also interest other people in modeling.
This is a circuit created by a Creative Automata Lab research assistant David Vega. The circuit is a physical incarnation of the Fibonacci difference equation f(m) = f(m-1) + f(m-2), where "m" equals the current month in decimal. We begin the Fibonacci sequence by iteratively solving, beginning with f(0)=f(1)=1. These values jump start the difference equation: f(2) = f(1) + f(0), f(3) = f(2) + f(1), and so forth. The sequence ends up as 1,1,2,3,5,8,13,21,34 until we decide to stop. These numbers are termed Fibonacci numbers. There are all kinds of interesting real-world patterns related to these numbers, including the spiral pattern found within a nautilus shell. This equation represents an idealized model of rabbit population growth. The equation was re-represented as a visual Max/MSP patch, and then translated into an equivalent electronic circuit using Teensy 3.1 microcontroller boards. The boards, populating the breadboard above, are connected using serial communications, and there is "software clock" that regulates the data flow. In Max/MSP this clock is programmed as a [metro] (short for metronome) object. This circuit will be transformed yet again into a tangible artwork where the Teensy boards are housed in 3d printed rabbit objects. I'll post another entry when we get to that stage. You've probably heard of "embedded systems," so this is a case where the embedding is meant to draw in the participant in a way not really possible with the textual difference equation.
What is "art science" anyway? An artistic approach to doing, or representing, science? Let's say that the science is biology or astronomy. An artistic approach might be to create new media, or highly creative, representations of dividing cells or nebula. But I'd like to go beyond the surface, beyond being "skin deep." Most science is formalized in mathematical structure. Even formerly descriptive sciences such as biology are increasingly mathematical (e.g., systems biology, bioengineering). Can the mathematics, or the computing behind these formal structures, be constructed and sensed in an artistic way while preserving the core internal mathematical relationships? Can the abstract ideas of accumulation, difference, or iteration be felt, be heard, be seen? In an artistic way--with multiple representations, sensing the mental abstraction in personal ways? A bunch of us got together in 2002 in the beautiful hills of southwestern Germany with this in mind and created a one page Aesthetic Computing manifesto. [Credit for image: Metal Skin by Rómulo Royo, 2008].
During Engineering Week at the end of February, the Creative Automata Lab hosted an onslaught of visitors of all ages. We showed several projects representing the Lotka-Volterra predator-prey relationship, a mechanical integrator using simulated sand, and the use of force feedback in embodied interactions with the distributive law of algebra. A video was produced from the projects, and students are interviewed for their perspectives. The video can be seen by using this link or by clicking on the photo of the ATEC Building shown above.
Isn't addition like this: 1 + 2 = 3 ? If your technology is a typewriter, it is. This is certainly true for this blog since my human-machine interface is quite limited. And that is an interesting aspect of modeling: all models are tied to the technologies used to design and create them. So, if you have a marble quarry, then all of your models will look like stone. And if you use a typewriter or, equivalently, the modern keyboard, then your models will look like Arial, Helvetica, Times Roman, or whatever font family you happen to employ. For Szücs (Similitude and Modeling, 1980), the above mechanical components are models of addition. It is a way of thinking about mathematics using the technologies required to make gears and pulleys. There is nothing magical about typography in mathematics--it is just cheap and therefore useful for communication and standardization. Something that is not immediately apparent, but important, is that the models of addition contain the parameter of time. The addition using standard notation for simple addition is S(t) = a(t) + b(t).
Our Creative Automata Lab had its open house during the Engineering Week celebrations on Saturday, February 22nd (yesterday between 10am and 2pm CST in Dallas). The turnout was phenomenal. I have to thank the organizers of the week-long event and to all of my students who created amazing demonstrations for everyone. What are the summary points? People like to touch things, play with them, and understand fairly complex mathematical and computing phenomena by experiencing them firsthand; hearing, seeing, and interacting. Writing on the whiteboard doesn't cut it any more. The two 3D printers (Maker Bots) in the lab were exciting for visitors not so much because 3d printing is a new phenomenon, but because these printers have visible moving parts. You can see what is happening because the printers are designed to show their internal components, a bit like the Centre Georges Pompidou in Paris. We'll be sorting out lessons-learned from the event for some time to come. Next up will be blog posts on our exhibits and the video that was compiled based on student thoughts and the lab mission.
Physics sandbox programs such as PowderToy create an entertaining environment for playing with mechanics. Sometimes, the physics is a bit surreal, as with MineCraft, but that is fine as long as the rules are uniform, repeatable, and easy to understand. I worked on a design with Scott Easum here in our lab, and he produced a nice sand integrator inside of Powdertoy using a digital counter thats someone else had developed within the Powdertoy community. The learning theory is simple: if a student likes PowderToy, then deliver content such as calculus to that student through PowderToy. The goal of this machine is to measure the area of the circle. Note the digital counter with some very small multi-colored pixels beneath it. These pixels form a structure that represents a digital circuit required to make the counter work. The count begins once the sand starts pouring into the circle. The circle's area can then be measured mechanically using a feedback mechanism so that when the container is full, the overflow sand triggers the digital display to stop counting. The final count is read off to yield the area (an adjustment coefficient is required to obtain the area in common metric units). The operating principle is similar to the hourglass. Unlike the hourglass, though, we can quickly create any geometry we like in PowderToy and use our sand calculus machine to determine the area of an arbitrary shape.
For my Fall 2013 simulation class, I decided to try something a bit different than the usual verbal onslaught of modeling methodology with mathematics and scattered applications. We used a type of learning that is most commonly known as object-based learning, and frequently practiced in museums such as the one in University College London (UCL). An object is chosen as the focal point of collaborative discovery. So, we chose al Jazari's 13th century water clock which goes by "Castle Clock" because of its original physical location. Al Jazari was one of history's great masters of mechanical invention. The clock is an astronomical computer, like all time pieces. This turned out to be a fun and useful learning experiment but it had its challenges as well. The issue is that the academy (which is to say most places of formal learning) is splintered into multiple disciplines. So, while the students in the class had a roller coaster ride through history, culture, systems dynamics, computer science, physics, language, and mathematics, this approach runs counter to how we normally teach students, and how students and faculty get credit for their work. My gut feeling is that as the academy evolves, this mode of learning will become more common and the credit and disciplinary issues will evolve with it. At UTD, we are making inroads here and things look quite positive.
I took this picture in my kitchen a few weeks ago when it was frigid outside and two hot chocolates seemed a necessity for survival. The photograph shows two coffee cups on a granite counter top. You can see the reflection of the lights off of the granite. The light patterns (i.e., caustics) that are visible inside of each cup are a result of the light interacting with the inside of the cups. Each cup has two cardioids because there are two overhead lights. Models that involve ray tracing, or approximating light with lines, produce some really interesting patterns. The collection of two light sources and cups forms an analog computer, essentially, for gaining insight on these and related "envelopes" of multiple lines crossing. The sum of places where these crossings, or intersections, occur forms the cardioid patterns. For those readers interested in sound, some microphones use cardioid patterns as a means for defining what angles are picked up by the mic.
From an automata, or machine, perspective the cups form a model of the mathematical cardioid concept, with the system input being light, and the output being the pattern you see with your eyes. You may object to my use of model here by my mentioning that the cups are models of a mathematical concept, and you would be right to object since this philosophy is a bit controversial; a subject of one of the upcoming posts. Thinking of mathematics as the ultimate target places the activity of modeling at the core of cognition.
Computational Thinking. Everyone must code. The most recent Communications of the ACM (CACM, Feb. 2014) has an article where the author covers the issues of learning computing. Should everyone code? Not everyone needs to code as we soon find out, but we do recognize that writing a computer program does help us think in terms of algorithms, mathematical structures for a new generation. We can use one of the excellent programming languages employed for teaching how to code such as Scratch or Java. Does this provide insight into computer science? Yes, it is a direction that most of us take in the field when instructing students. But here is another suggestion: Everyone must model. Consider the Bunsen burner. The chemistry lab is for learning how to use lab instruments, and Bunsen burners are valuable instruments since they rapidly heat the contents inside of Erlenmeyer flasks. Computers are equipment, just like Bunsen burners. Look closely at the Bunsen burner in the illustration: what information is there and what is it doing? A modeler looks at the burner and sees two streams of information merging. And an imaginary discrete event: lighting a match..so three inputs. One of the streams is modulated (e.g., the air control) using a range delimited by a minimum and maximum mechanical setting. This should be the essence of computational thinking: learning how to model information, not writing code inside of a text editor.
Our lab's first model products will be a set of prototypes of the Lotka-Volterra (LV) model of predator-prey competition. If lions (predators) chase gazelles (prey), then there are mathematical relationships that can be expressed to capture the overall population change resulting from this effect. The LV model was proposed in 1910 according to the Wikipedia article as a "theory of autocatalytic chemical reactions," and then extended in 1920 for organic systems. In the model, we find the fairly general terms present that make the dynamics interesting--growth (birth), decay (death), and interaction effects modeled as a multiplicative effect of the population variables. You'll find these same terms in many other mathematical models. Returning to the lab, we chose this model out of thin air based on some sketches I made on the office whiteboard seen above. Unfortunately, there are some errors in the design, but it was some sort of beginning. Despite the confusing juxtaposition of figures, we observe a transition from equation to block model, and then to an analog model based on water flow. The idea for the spherical floats at the surface of the water will be familiar to all those who have had to correct leaky toilets containing older ball-cock supply valves. The redesigns and creative prototypes of LV will be unleashed in future issues of the blog over the next month.