What is a computer?

A while ago I taught a group of 1st graders a class about computing. I wanted them to understand the concept of a computer in a simple and tangible way. So I came up with an activity where the kids would be able to build and test a simple computer anywhere: in the classroom, at home or at the playground.

Here is what I told them to do:

“Build a computer that can produce random numbers using anything you have at home.”

They go: “Really? We can use anything we like?”

And I go: “Yes. Anything you like. Except of course your mom’s or your dad’s computer. You can’t use a computer to build a computer. That would be cheating. You are also not allowed to generate the random numbers in your head. The computer must do that.”

And then they go: “What are random numbers?”

It took me a few cycles to recover from such a disarming question. I thought “Wow, the world around us is full of randomness (especially the computing world) yet how does one explain it to a six year-old?”

I said: “It’s numbers that are not in order. They are completely mixed up and you can’t guess which number comes next. Like when you throw a dice. Can you guess which number will come up when you throw a dice? No, right? That’s a random number.”

Solutions as surprising as a random number

The kids surprised me with their creativity. Here are some of their cool “computer” designs:

domarien-prng

Spin the wheel to get the next number. I love the added touch of fake buttons to make this look like a real computer!

Riley_s_random_number_computer__-_nikos_michalakis_gmail_com_-_Gmail

Stir the pot to shake the numbers and open it to pick the next one. Computing in the kitchen!

isabel-prng

Throw the dart-marker at the target and write down the number closest to the mark. I would have never thought of that one!

Surprised yet again

What’s more surprising than the creativity of the children is the lack of creativity of the adults. Having already seen what the kids came up with, I posed the same question when I interviewed a series of college students for a software engineering position. They were about to graduate from one of the top computer science programs in the US.

I asked the candidates:

“Design a computer for generating random numbers using anything found in this interview room.”

9 out of 10 of them gave me the same answer:

“I can do this by flipping a coin.”

And then I thought: “Should I tell them a 6 year-old can do better than that?”

What’s your design?

Does you kid have a cool design? Post a picture to the DrTechniko Facebook Page. I will personally respond to you.

I hope we learned something useful today,

DrTechniko