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.
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.
Da Vinci's cam hammer was covered briefly here. This object was the "object of the day" during the Creative Automata class at UT Dallas (Jan 22, 2014). At the start of each class, students are shown an object from real life in a photograph or perhaps from an illustration. In this case, the object is a picture of a kit model that I made and later stained. The physical model was handed out during class for handling and observation. The driving question is "What information do you see?" This question elicited a wide number of expected and completely unexpected responses, all of which were welcome since this exploration is how we communicate and learn about computing. The first comment was that there was a conditional branch on the snail cam. You can see the cam driving the follower (the rigid linkage that connects to the hammer on the right side). When the follower makes contact with this discontinuity in the cam, the rising hammer falls, causing a change in state (another type of information flow---of control). Someone said that there was a stack (a type of data structure similar to a stack of plates), but when we went looking for the stack, it was not clear that one existed. The support structures for the cam shaft are inverted ternary trees of height one. Seeing information--in an ancient machine. However, the technology goes much further back than Da Vinci in what were called trip hammers written about by the Chinese in 40BC in the Ji Jiu Pian dictionary. So, foundations for computing were were alive and kicking early on with hammers.
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.
Let's talk about the relation of data to automata. Data represents a type of information, and we may have heard that information can be encoded in bits (base 2 numbers). An automaton is either driven by control or data bits depending on the type computing--information processing--that interests us. Data is the proverbial information fluid or material that flows. If the flow is not transformed in any way, think of this as reflection. Reflection is something familiar to us when we look the mirror or when we shine light onto a mirror. The surface of the mirror reflects, and relays, the information without operating on it. In automata theory, we define that which is passed along by defining "the identity function." The identify function takes as input, some data, and just passes that same data long to another place. Just like a mirror passes along incoming light. So data are important for automata--without this concept, the machines would sit idle, the gears rusting.
When I was a kid in Pennsylvania, we lived for many years right next to a railroad track, which ran behind my back yard. The trains on that particular track were infrequent, but we'd go down to the tracks and then wave and shout at the engineer in the caboose. He'd toot his horn. Trains, rails, and rail yards, where trains are stored and come together, are information flows--that is how a computer scientist sees them: information moving around, being processed, being controlled. That is how we see everything--admittedly somewhat of an unusual way of seeing. There are numerous information controls and structures such queues when train cars move through stations, and stacks when a train reaches a terminus at the rail yard, and the locomotive may need to be attached to the other end. A "stack" is a mental concept. Stacks implemented in written software are ways of reifying the stack concept using typography--seeing it with the naked eye. Trains at rail yards are another way of seeing stacks. The train's behavior is not a visualization of a stack. It is a stack. As much as anything else is one. Then, there are the track switches, merging, selection, sorting - just about everything you need to make a data flow computer. If we can observe trains as information then we can use this as a metaphor to recreate data flow in the image of trains. The trains, or slight simplifications of them, become models for computation--creative automata.
Creative Automata. The two words that make up this blog's name and the research lab at the University of Texas at Dallas. I tend to name things that have the potential to be confusing, and ambiguous. The idea is that the ambiguity and tensions that exist in names can give rise to reflection on how words can shape our thoughts. So, as for the word "creative," this word was chosen to emphasize the importance of the process of creation on representation. If I represent computer code, data, or a mathematical formula with hexagonal columns of basalt as elements, it is because I choose to do so as part of my creative output -- not because I believe that this representational mapping might become a universal "visualization" for the masses, or for expedited communication. Think of this as a puzzle, a form of entertainment. There is much to be learned from the creative act in learning. As for the second word "automata," the goal is to take the best features from two connotations of this word: 1) make it so that any machine in the systems-sense can be viewed as an automaton (a view from the theory of automata), and 2) make it so that automata can be both imaginary and physical (a view from mixing the two-millennia old history of automata with the modern mathematical theory). Automata should be a broadly conceived notion.
What is it? Looks like a hair comb and a strange cylinder with small bumps. This is a 3D printed music box. I've been thinking quite a lot lately about 3D printing ever since I opened up my lab to show posters and research last Thursday, and then realized that everyone was, instead, taking a bee-line to our 2 Makerbot 3D printers. "Is this the room where the 3d printers are?" Sure! Why not? It seems that there is a new 3D printer company on KickStarter every day. So, clearly, this represents a technology that is only going to get better and cheaper. Lots of things can be fabricated with a 3D printer, including the music box. Our interest is a bit beyond music, though, to the point where we are looking at objects like the music box and thinking about how we can use these quick-print objects for math and computing education. There are many possibilities -- people are drawn towards the tangible, the touchable, and that which can be forged immediately from plastic. I am reminded of a toy when I was young, where we had a kit for making plastic insects. What ever happened to it?
The word "computer" has evolved over time to refer to a device that uses electronics to achieve computation. Prior to the second world war, most computing devices were analog, but also the word "computer" was defined as a human who performed calculation, often with the aid of machinery. The Computer History Museum in Mountain View, California has an excellent summary of the era of human computing. A classic example of human computing is the production of books of mathematical tables containing values of functions such as sine and cosine. Less obvious, but no less intriguing, are computations that occur regularly whenever we get together and collaborate. For example, two people working with each other in the kitchen to make dinner is a computation resulting in a meal. The collection of human collaborators and their material flows is a type of automaton.
Athanasius Kircher was a 17th century German jesuit scholar who produced many publications on machinery. One of them, Musurgia Universalis, was written in 1650 and described ways of creating automatic music. The machine shown above, a water organ, is from Book 9 of that work. Water and air are introduced at the right side into a vessel termed a camera aeolis. The rate of water flow introduces a displacement of air which exits into the vertical pipes comprising the musical organ. The control of which notes are produced, and when, is achieved through barrel rotation. The water not only displaces air for the organ, but also drives the barrel. The barrel has protrusions that interact with the keys as the levers interact with the protrusions. There is a separate mechanism shown in the upper left of the illustration.
You can make anything out of paper. This flying pig is an example of making a crank-based automaton from paper. You cut out the pieces and glue them together to create a machine. No 3D printing required. There are also gears that can be made from paper - it is recommended to get a thick stock of paper (cards, cardboard) otherwise, the mechanism may not have enough rigid parts to operate. For electronics, one can use cheap inkjet printers to create circuits. To make circuits by printing them requires special ink containing silver nanoparticles. I didn't see a discussion of how one would make a switch (e.g., transistor) but research on thin-film transistors has been ongoing, so it should eventually be possible for the average consumer. Then, we can mix our own ink, or buy it ready-made with reusable print cartridges.
Most of our critical thinking can be attributed to logical argument. An old and well-established logical rule is the syllogism: (1) All humans are mortal, (2) All Greeks are humans, (1) and (2) conclude via syllogism that (3) All Greeks are mortal. This form (AAA), with A indicating "All," is referred to as Barbara, a mnemonic. In the 1883 text Studies in Logic (John Hopkins University) edited by C.S Peirce, Allan Marquand designed a machine to produce syllogisms with the design illustrated in the above diagram. Marquand's paper was entitled "A Machine for Producing Syllogistic Variations." The design is interesting and appears to serve as a mechanical aid to combinatorics. The hand crank is attached to d. There are "sectors" for each of the d,e, and f wheels causing friction against a, b, and c. Variations are achieved by wheels d, e, and f having diameters of powers of 2: 1, 2, and 4 inches respectively. Mechanical counters are similar except that finger protrusions are used on identically sized wheels to create combinations.