Giufà and the chickpea soup - Computer Science Unplugged

Activity
Giufà and the chickpea soup — The
“software lifecycle”
Age group Middle elementary and up.
Abilities assumed No specific abilities required.
Time An hour
Size of group The whole classroom.
Focus
Design.
Reasoning.
Collaboration.
Summary
In this activity children will learn how to face a project in teams, dividing a goal into steps with
sub-goals. They will understand how similar projects can be faced with a similar collaborative
approach, through method’s abstraction and procedure’s generalization. The activity is based on
the “software lifecycle” concept that is a model that explains how software engineers face large
projects.
Technical terms
Software Engineering; Software Lifecycle; Software design; Requirements Analysis; Coding;
Implementation; Testing; Bugs; Verification; Maintenance.
Materials


3 baskets full of ping pong balls (at least 2 per child), 3 of which are marked with an "X";
3 empy baskets
Activity: Giufà and the chickpea soup — The “software lifecycle”--- A.Caruso
Page 1 of 4
What to do
Before start the game, the teacher or a child reads the following story. It may be the case to introduce
the character of Giufà, characteristic of oral stories in the Italian tradition (especially in Sicily and in the
whole Mediterranean area).
Giufà and chickpeas
One day Giufà’s mother, was leaving to go to Mass, said:
- Giufà I'm going out. Wait a bit, then put two chickpeas in a pot, so that when I come back later
they are ready to eat.
After a while, Giufà did what his mother said.
When the mother came home, she saw that the pot of water was boiling on the fire. But, raising
the lid, she was astonished to see no legume in the pot.
- Giufà, hopeless son, - she said – did I tell you to put the chickpeas into the pot?
- I did Mom.
- But what? There’s nothing!
- I didn’t fault mom. In fact I did better than what you said. Instead of two chickpeas in a pot I put
three of them. Then, to check cooking, I tasted one, to see if it was right in salt I tasted another, to
see if it was still hard I tasted the last. For this reason they’re not in the pot.
The mum, without another word, took a wooden spoon and beat his legs.
We ask the children how they think to cook a soup of chickpeas. How do they proceed? What do they
need in the kitchen? Pots or pans? What would they like to find in the soup? What they do not like?
What is good for health, and so it is best to put in it? Call one, two or three children and ask for a list of
ingredients. Then call some others to be cooks and ask them what they should have to know from chefs
and what they could already start to do. Ask to another group to be waiters and if they could start their
job or they must wait that cooks finish. Ask to the whole class who is controlling that there are no errors
during their work.
Then, children are divided in groups:
-
Group1: chefs
Group 2: cooks
Group 3: waiters
Group 4: three children starring “Giufà”.
Line up all baskets , full and empty, at a distance of some meters. As shown in the picture below, let the
children form a line behind each full basket. They, one at a time, must carry balls into the empty baskets.
empy baskets
full baskets
3 Giufà waiting
1
chef’s queue: ingredients
2
cook’s queue: pots
3
waiter’s queue: flatware
Activity: Giufà and the chickpea soup — The “software lifecycle”--- A.Caruso
Page 2 of 4
Chef’s path
Cook’s path
Waiter’s path
Chefs must bring their ingredients to the basket (1), cooks must choose whether to take a ball from their
basket to basket (2) or to take a ball from the basket (1) and put it into their basket, the waiters must
choose whether to take a ball from their basket and put into basket (3) or to take a ball from the basket
(2) and bring it into their own. When chefs finish their balls, they line up behind cooks and help them.
The same will be done in the row of waiters, where cooks will help waiters if they finish their balls.
In the chefs’ basket, we put 3 balls marked with an "X", that represent 3 bugs in the recipe.
The 3 children “Giufà" wait for their turn behind the queues, and are involved one at a time, in this
way: when a chef find a ball with the "X", runs to bring it into the basket (1) and shouts: "chickpea!".
One child “Giufà” runs in the game and tries to take the chickpea, while the cook must be faster than
him to get to the basket and take the chickpea to bring it to his basket. The child “Giufà” can follow the
chickpea in different baskets, but he can’t take it from the basket number (3). The next chickpea will be
followed by the second child “Giufà”, and so the third from the third child.
The aim of the game is to bring to the table the soup (filling basket number 3), with no chickpeas
(bugs), thanks to "tastings" of Giufà.
Variations and extensions
- Why we put “chickpeas” in chef’s basket? Ask children what happens if balls marked with “X” are put
in cook’s basket. Then, ask children what happens if balls marked with “X” are put in the waiter’s
basket. (More late bugs are found, the harder they are to correct.)
- Discuss whether or not cooks and waiters have to wait guidance from chefs to start or if they can
anticipate something, according to their own experiences. There is a group who works less than the
others? Is there a group completely inactive during a part of the activity of another group? Ask children
if they think that there’s someone working harder than others.
What’s it all about?
Considering a not very complex job, as it is the preparation of a soup, you have to know cooking times
of various ingredients, if they should be small pieces of vegetables, if you need to add meat or fish, how
many people will be eating with us, if there are people allergic to some ingredients ... At the end, in
addition to the soup ready in the plate, we will also have enriched our knowledge. The more accurate
the initial study is, the more we will carefully prepare plates, then our soup (which is our finished
product) will be appreciated by guests. But be careful: any error found during the various stages of
preparation can be easily corrected, but it will be a disaster if, as soon as the soup is served, we realize
that the chef had forgotten to put salt in the ingredients list given to the cook for preparation!
We always think that everything works as we expected, the soup is ready and Google works fine. But
we must have clear in mind that all has be done by people, both soup and software programs. Those
people can, sometimes, make errors… If our computers or playstations fail, we might get angry, turn
them off, but sometimes a proper software functioning is vital, as in a nuclear reactor.
Activity: Giufà and the chickpea soup — The “software lifecycle”--- A.Caruso
Page 3 of 4
Have you ever heard this news? Newspaper’s title: "U.S. space probe destroyed by a hyphen ('-') ". “An
american space probe took off from Cape Canaveral, but instead of going to Venus shortly after the
launch it bent to the left and points downwards. NASA was forced to detonate in flight in order to avoid
self-destruction that could have caused damages if felt entirely. The cause: a hyphen accidentally
deleted from a line of code”. It really happened in 1962.
Starting from late 60s, with a period of “software crisis”, a new branch of computer science was born, to
face new problems in writing “good” programs. Often, the former programmer was himself an end-user,
but after 1965, with big systems like IBM 360, computer programmers had difficulties in developing
software with the same approach adopted in earlier programs. They needed a disciplined approach to
software production. It became clear that an engineering approach must have been applied to the
development of big software products. The first reference to the term “Software Engineering “ is in a
NATO Conference in 1968.
Nowadays, it is commonly accepted the application of a strictly controlled and measurable approach to
the design, implementation, verification, and maintenance of software products. Actually, research and
application in Software Engineering improve productivity, increase quality, decrease costs and time to
market. The “software development lifecycle” is a model to break a software development process into
different parts.
Feasibility
Study
Requirements
Analysis
Implementation
Testing
Maintenance
That is the “waterfall representation model”. There are many other visual models to represent the
process.
Further reading
“The generally accepted concepts of Software Engineering as an engineering discipline have been
specified in the Guide to the Software Engineering Body of Knowledge (SWEBOK). The SWEBOK
has become an internationally accepted standard ISO/IEC TR 19759:2005.” (source:
https://en.wikipedia.org/wiki/Software_engineering )
Activity: Giufà and the chickpea soup — The “software lifecycle”--- A.Caruso
Page 4 of 4