During this workshop, participants will take a trip back in time to learn how to use the ancestor of all databases: punch cards! They will collect data, manipulate it, filter it, query it, all with knitting needles! This workshop is meant to help participants understand the basic principles underlying databases.
Preparation time for facilitator
Time needed to complete activity (for learner)
Name of author
Support material needed for training
Resource originally created in
This workshop will focus on the concept of a database. Ask participants to give their definitions before explaining the following. Essentially, a database serves to organise large amounts of data. It is a collection of information stored in order to be easily consultable, manageable and up to date. For example, the participants might have 700 students in their school for example. If their data were not sorted, it would be chaos! One way of organising them is to class them in order to avoid repetition. For example, as school is starting in September, Mr. Martin, the French teacher needs a list of students who chose the language as an option. Thanks to the database, he will be able to get it quickly. Nowadays, we do everything with a computer. But how did we do it before? The ancestor of a database is the humble punch card. Participants will use these to understand the principle of a database in general.
Note to facilitator: Prepare the bristol boards in advance by perforating them all exactly the same way. On the opposite edge of the page, across from the holes, draw a dash. Participants will write the names of the dishes themselves. So that the workshop succeeds, all the punch cards (i.e. the location of the holes and dashes) must be identical. If you want to make the exercise more complex, prepare the filtered files in advance (as elaborated below).
One file each
To understand how a database works, participants will play out situations requiring the collection of simple data. Here is the story: You are organising a dinner with friends. You only know how to make 15 different dishes. But how do you know who you can invite? Not everyone has the same tastes! You will need to analyse and sort your friends’ tastes. For this, each participant will make their own punch card. You will need to have prepared the cards in advance, by making holes on one edge of each (see photo below) and then marking 15 dashes which will indicate where information needs to be written. For the activity to work, each card needs to be identical. Give one blank card (only holes and dashes) to each participant. Each person will need write the following 15 dishes (or others as long as each person writes the same list) at the dashes on their card.
- Beef Stew
- Mushroom omelette
- Spaghetti bolognese
- Carrot and potato soup
- Pasta salad
- Smoked salmon
- Toasted sandwich
- Thai green curry
- Leek risotto
- Chili con carne
Now each participant will need to choose their favourite 5 dishes. For each dish, they will need to cut a strip of paper between the hole and the edge of the page (see the photo below). Now move to the situation: choose 5 participants and ask the group what dish we can cook to suit these people’s preferences. Give them 1 minute to check the cards and give a response. They will quickly see that this is not a convenient task and that is best that the data be sorted.
Using a database
We will now need to use knitting needles to make a database. For example, if we need to know who likes lasagna, place the sheets on top of each other so that the holes line up and then pass the needle through the hole corresponding to lasagna. All the cards of the people who indicated they like lasagna will fall! If a friend likes lasagna, they will have cut a space between the hole and the edge of the card – this is why their card will fall. Otherwise, it will stay hanging on the needle.
Here are some situational questions to pose to test the database. Feel free to propose other ones.
Situation 1 : Who can you invite if you want to make lasagna?
Situation 2 : You have the ingredients to make spaghetti bolognese sauce and a mushroom omelette. You decide at the last minute that would actually be too much work. Who can you invite?
Situation 3 : You really want to invite X (participant of your choice) as you have not seen them in a long time. Who can you not invite in that case, since they will have no dish in common with X?
Situation 4 : You want to make a vegetarian dish. Are there people you need to eliminate by doing this?
Situation 5 : Can you invite X, Y, and Z at the same time (participants of your choice)?
Situation 6 : See if you can find two people who like exactly the same dishes! For this, put a needle in the first hole. This will give us two groups of cards. Those who have marked this dish as one of their preferences and those who haven’t. If one of the categories has only one card, that person shares this preference with on one else. We will not set this aside, take the rest and filter the second dish. Continue with the remainder as long as there is a category with more than one card and until you have tested every dish. This workshop was inspired by this document in French from Marie Duflot-Kremer du Loria (Lorrain research centre on computer science) published under the same license CC BY-SA.