Key terms in the following passage about bees and their "waggle dance" and their connection to problem solving and software engineering. "consideration of alternative actions" Recall in developing an algorithm or "how" (step 2) to solve the "what" (step 1), it is best to develop several plans as to how and then choose which approach seems best. Do not just go with the first thing that pops into your head. step 1 Understand what the problem is. Absorb its language and become familiar with its terms and its data and output. Ask: What is given? What is the data? Ask: What is the goal? What would the output look like? step 2 Develop a top-level plan, a step by step algorithm to solve the problem you a fairly deep understanding of from step 1 efforts. Before going on to step 3, develop another possible approach to solving the problem. Develop at least a 2nd approach. Restate your 1st plan to improve it. Do these two differently stated algorithms suggest a 3rd. CHOOSE the better algorithm. Before going on to step 3 with your chosen plan (algorithm), ask: a. is this plan simple enough to comprehend and work with. ------ b. does this plan capture the whole problem, is this plan adequate, does it solve the problem as stated? -------- Criteria: Is it a simple and an adequate plan? Step 3: Translate the step 2 plan into the programming language of your choice. Code it in Fortran or Pascal or C or LOGO. Step 4: Test and debug your program. It turns out that the more time a programmer or student spends in step 1, the better and more bug free their final product will be. It turns out that the student or programmer that takes the extra time to not just go with the 1st plan that pops into their head, but says: "Okay, that is one possible approach, these 4 steps are one plan as to HOW to solve the problem. Let me continue to 'resist the urge to code' and come up with another possible solution. What is another way to possibly solve the problem???? .... Okay, now let me compare these two ways and CHOOSE the better one or perhaps end up developing a 3rd approach that combines the best from each or what I have learned in the meantime. .... Gee, I'm probably way behind the other students. I haven't even written a single line of code yet and some are already typing in their solution or writing down their answer in C on the exam. Here I am "wasting" my time in step 1 (Understand the problem) and step 2 (Develop an algorithm in pseudocode to solve it) and slowing down to develop several possible approaches to HOW and then choosing. .... Oh ya, according to the lessons of Ghostbusters, "Lets not rush things, we don't even know what you have here yet." ... my program might require alot less time in step #4, trying to get rid of bugs and design flaws that were put in because I didn't understand the problem." *********************************************************************** "Oh, I get it. The first thing we think of, the first thing that pops into our head, that will be the form that the destructor, Gozur the Gozerian, the Traveller, comes as." The reason the Ghostbusters must face this type of situation is because the whole lesson of the movie is to CHOOSE not the 1st thing that pops into your head, but to develop and carefully consider alternatives. Then software bugs will have less chance of sneaking into the final product, the program. The Ghostbusters succeed against Mr. Staypuft because of what? 1. they discuss and toss out several different plans of how to take on Mr. Staypuft. 2. they mobilize and base themselves on past knowledge and deeper understanding of the problem. Back in jail they huddled over the blueprints to the building where Louis Tulley and Dana Barrett are living and they figure out much about the problem. 3. they choose the best of two or three plans. 4. Dr. Peter Venkman states: "I love this plan. I'm excited to be a part of it." which symbolizes the fact that they have gone through the phase of "understand" the problem to an adequate degree and based their solution on a good understanding of the "WHAT" of the problem. Venkman also symbolizes the fact that the intuitive, metaphor, flowchart, pseudocode was part of the process of confronting the problem. Without Venkman being "part of it", plans such as extremely technical computer programs with all their mathematical precision and rigor (Spengler and Stantz) and detailed syntax often go awry, right? Recall the earliest scenes of the movie and their unsuccessful attempt to get the library's problem solved. "Get her. That was your whole plan. Get her." Venkman kids and pokes fun at Stantz. Stantz took the first thing that popped into his head. "Get her". He didn't discuss and evalauate it with the other heroes - Venkman and Spengler. It is no coincidence that it is Dan Akroyd's character Dr. Raymond Stantz again at the end of the movie who has "the Staypuft Marshmallow Man" just pop in there, pop into his head. Venkman, Stanz, Spengler working together as a team along with Winston Seddemore (the new Ghostbuster) and discussing and interacting and deploying their tested unlicensed nuclear accelerators and their intuitive and technical and vast background of study ---- is the Ectocontainment system, is the structured programming and problem solving process, stepwise refinement, resisting the urge to code, etc. Bees, as Otto von Frisch discovered, communicate direction, distance, and desirability of a food source to other members of a hive by the direction, length, and vigor of each burst in a "waggle dance". Martin Lindauer extended Frisch's observations to cases where a swarm from an overpopulated colony seeks out a new site. A worker from the swarm flies out in search of suitable cavities and returns when it has found and meticulously explored one. It then performs a waggle dance, on the surface of the swarm, describing the location and the suitability of its discovery. Meanwhile, other workers tell of other locations. Promising sites are visited and carefully examined by other members of the swarm, who return to tell the tale. A worker telling of one site is unaffected by another bee sending the same message but can be "converted" by a sufficiently emphatic and repeated display describing a different location. The debate rages for several days, with repeated visits to a dwindling number of candidate sites, until near unanimity is reached. The entire swarm then flies to take up residence in the winning cavity. When all the bees are doing the same dance, the choice is made. Waggle dances compete and bees explore different alternatives and start doing a new dance. There is alot riding on making a good choice. That is where the colony of bees is going to live for a long time. 1. What is the problem. Understand it thoroughly. 2. How to solve the problem. Develop the how, the algorithm, the design, the step by step approach. Whatever design or plan you decide upon in step 2 of the problem solving process, you are going to live there in that design for many hours or weeks or months to come! Don't be like the bee colony that sent out one worker bee to find a new home to live in and when that bee came back with whatever new location that had been stumbled across first, the colony relocated to that new home to live in. Be like the waggle dancing bees when you problem solve and program. Find several solutions to the problem. Explore each and choose carefully. Come up with several names for a variable and choose the best one, the one that best captures the meaning and your deep understanding of the problem. Then software will be more useful to others, more reliable, more understandable. You will spend very few hours in the frustrating debugging process cause you will get the syntax and the algorithm and the problem understood and conquered in step 1 and step 2 and step 3 and can laugh at those programmers who gave in to Walter Peck and shut down the protection grid and the Ectocontainment system and didn't spend time in Understanding the problem and Developing a pseudocode algorithm and so on..... so now are spending many hours, many weeks, many months, debugging and trying to get their code to work. Waggle dance. Get up on the dance floor and dance. Let the debate rage for a few minutes over which design to choose.