One of the main goals of the Avian Computing Project is to reduce the length of time it takes to develop parallel computer programs. In this post, we’ll look at how the use of nature-based models can help us achieve our goal.
By changing our programming model to natural items, such as people or animals, we immediately improve our ability to visualize the actions. For example, it is fairly easy to visualize “George gave a ring to Janet.” We might visualize a pleasant young man standing beside a river, his heart pounding in his chest when he kneels in front of Janet and proposes to her. Or we might imagine an elderly couple that has been married for 50 years, and George reaffirming his love for his lifelong companion.
Compare that to, “Instantiate an ring object and associate it with object G and then have G send a message to object J containing the ring object.” What does an instantiation look like? When asked to visualize this sequence, probably what we’d imagine is some lines of code, or at best, imagine some indistinct boxes that represent the G object and the J object with lines and arrows indicating the motion of the message with the ring object. It’s all very abstract and sanitary, devoid of emotional and associative content.
One reason that using nature-based models improves our visualization is that humans have been successfully visualizing natural elements for (tens or hundreds of) thousands of years, figuring out how to knock fruit out of a tree, or imagining how to climb that tree, or building a ladder to simplify climbing into the tree. Historically, the success of the human species has depended upon our ability to imagine a way of manipulating the natural world to achieve a desired outcome, such as getting enough food to survive for another day or two. “Natural selection” has favored those who can visualize the natural world; we have inherited this ability from our successful ancestors. The ones who lacked this ability to visualize died off.
And once we can visualize something as a natural element, we have a rich vocabulary available to us to describe actions on those natural elements and relationships between them. A bird in a tree or a tiger on a pillow, for instance. It is easy to imagine these items and to imagine their behaviors, such as a bird flying to a branch on a different tree or a tiger searching for food by moving thru the jungle.
By mapping our computer models into a model based on natural elements, we instantly gain improved visualization and a rich vocabulary to describe their actions.
Plus, natural elements improve our ability to remember them in the correct sequence and associate them correctly with other elements. The current “Memory Champ” in the US visualizes numbers as different natural elements, such as “9” is a pillow and “3” is a tiger, so to visualize 39, he imagines a tiger on a pillow. To memorize a series of numbers, he “places” combinations of images (tiger on a pillow) on the furniture in his house. To recall the numbers, he just walks around his mental house and looks what’s on his furniture. To memorize the names of people, he identifies a characteristic of each person and associates their name with that characteristic. This technique is almost universally recommended by experts in learning the names of people we meet.
Unconvinced? People have demonstrated that they can recall visual “passwords” for far longer periods of time than text passwords. In numerous tests, they found that a person can remember a visual password, even if they haven’t used it in 6 months. For comparison, most people can remember a text password for about a week or two without having used it. Hence the most frequent method of password cracking: finding the scrap of paper that has the passwords written on them.
Researchers have also found that when they show a sequence of pictures to their test subjects for just a second or so, their test subjects can generally recognize most of the pictures that they’ve seen before.
Our brains are hard-wired for visual images and dedicate a significant portion of the cerebral cortex to processing those visual images. To make program development faster and more efficient, we need to make better use of the strengths of the human, such as our ability to visualize.