
CS Unplugged: Computer Science Without a Computer - ArtWomb
https://csunplugged.org/en/
======
csours
Inspired by this, I led a group of 5th graders and high school students
through a "peanut butter and jelly sandwich robot" exercise.

I had a blast and so did the kids.

We had them list some steps to make a pb&j sandwich, and then I, as the robot
acted the steps out as literally as possible.

When they said "gather materials", I went around the room and picked up
erasers, markers, water bottles; whatever I could find.

When they said "put the knife in the peanut butter" I stabbed the (plastic)
knife through the cardboard seal.

When they said "put the peanut butter on the bread", I put the jar of peanut
butter on a slice of bread.

After all of that we showed a video of an industrial robot applying sealant,
just like we spread the peanut butter and jelly.

At the end we asked how we could have done it better, and one of the kids said
"Get a smarter robot"

I'd highly recommend doing something like this for a STEM day, or just for
fun.

~~~
ygra
I've seen this video a while ago, where a father does this with his kids:
[https://www.youtube.com/watch?v=cDA3_5982h8](https://www.youtube.com/watch?v=cDA3_5982h8)

Lots of frustration about the stupid robot and I guess your school kids
weren't much different.

------
toomanybeersies
Tim Bell, one of the creators of CS Unplugged, was one of my lecturers at the
University of Canterbury, and before that he taught me the fundamentals of
computer science at the NZ Olympiad of Informatics training camp when I was at
high school. It would be fair to say that he's a significant part of the
reason I'm a software developer.

I've never met a man so passionate and interested in the pedagogy of computer
science. I'd say that he's one of the leading figures in pre-tertiary (primary
and secondary school) computer science education in New Zealand. I think that
science pedagogy is a massively underserved field of academia. Everyone wants
to create new theories and breakthroughs, but nobody wants to figure out how
to teach them.

The way that he manages to use practical demonstrations to teach computer
science theories and algorithms is brilliant. It really helps make algorithms
click with a lot of students. It was refreshing to have him as a lecturer as
opposed to some of the lecturers who were clearly did it because they were
required to, not because they wanted to.

~~~
ponchotek
I still picture Tim ripping a phone book in half over and over every time I
think about binary search. I assumed that's how they taught it everywhere else

------
mukuro
I heard that many CS majors in India have never used a computer, some of them
have impressive theoretical knowledge and become successful in real jobs.

~~~
lloydde
“Computer Teacher With No Computers Chalks Up Clever Classroom Plan” is still
blowing my mind months later.
[https://www.npr.org/sections/goatsandsoda/2018/03/01/5895194...](https://www.npr.org/sections/goatsandsoda/2018/03/01/589519475/computer-
teacher-with-no-computers-chalks-up-clever-classroom-plan)

> For Hottish, who spends about 30 minutes making these drawings before every
> class, teaching this way is really no big deal. "Every subject is taught on
> the blackboard here," he says.

~~~
AstralStorm
Reminds me of a certain academic teacher who taught CAD/Cam skills including
layout of AutoCAD UI on the blackboard, drawing pristine lines with a string
and spline.

It was awesome to watch him work, he was much faster on chalkboard than we
were on paper with better tools and could draw spirals and screws in seconds.

Unlike computers, his equipment never chugged or crashed.

------
brianzelip
Recent Changelog podcast featuring Tim Bell and focused on CS Unplugged,
[https://changelog.com/podcast/302](https://changelog.com/podcast/302).

------
dang
Discussed in 2015:
[https://news.ycombinator.com/item?id=10171469](https://news.ycombinator.com/item?id=10171469)

------
nutjob2
Computer science is no more about computers than astronomy is about
telescopes.

\- Dijkstra

~~~
carapace
"Calling it 'computer science' is like calling surgery 'knife science'."

~ also Dijkstra

~~~
erk__
My professor says that it would be like calling astonomy telescope science. In
Danish it is called "Datalogi" the teaching of data because the founder of
danish computer science, Peter Nauer, called it that.

~~~
omaranto
I also like wiskunde for mathematics, I've been told it means something like
the study of certainty.

------
lux
Love seeing things like this. I've been a developer for 20+ years now and my
only formal learning was a high school comp sci class where our teacher Mr.
Smythe made us do all our theory on paper or the chalk board, including tests.
We did have lab time too, but it he wanted us to be able to reason our way
through problems and not rely on the machine for that. I still carry a paper
notebook everywhere and use it constantly. Can't thank him enough.

------
userbinator
I find that the list and ordering of topics is... unusual:

[https://csunplugged.org/en/topics/](https://csunplugged.org/en/topics/)

It starts off with binary numbers (and actually more on the idea of
representation and interpretation of data), which is a perfectly good place to
start; but why is _ECC_ , of all things, the next topic? Then comes "Kidbots",
which is an overview of programming in general, followed by searching
algorithms (fair enough), but sorting networks feels like another big jump in
topic.

One thing I've noticed in a lot of CS curriculum plans is this "detached
binary" phenomenon and the effects thereof; like I said, it's an excellent
place to start, with data representation and all the elegant yet immensely
powerful implications of it. However, like the sequence here, the next topic
is often only vaguely related or something completely different. To use a car
analogy, it would be like spending the first lesson of a mechanic's course on
the chemical properties of petrol with a brief mention that it's used in
engines, and the second on suspension alignment. There's a lack of a coherent
"story" that keeps the students focused and understanding "what's next".

The effect of teaching "detached binary" is that you get people who can count
perfectly well in it, and will tell you they "know" binary, yet can't figure
out e.g. why random 4294967295s (or 542393671s[1]) are appearing in their
program's output.

IMHO the next step after learning about binary and data representation is how
to actually _compute_ with it. Logic gates, adders, latches, flops, sequential
circuits, etc. The observation that one can build counters, automated adding
machines, and then automated _any operation_ machines (using data itself as
instructions) quickly leads to the development of actual computers and what
programming one actually means.

It is unfortunate that this code<>data duality is for many developers only
ever encountered in discussions about security vulnerabilities, but it is
probably one of the most important and powerful features (not bugs) of digital
computing machines, alongside the generic digital representation and
interpretation of data. In my experience, misunderstanding of these two
concepts are a large source of bugs and confusion among both beginning CS
students and long-time HLL developers (Asm'ers are, not surprisingly, far more
comfortable with those concepts.)

[1]
[https://news.ycombinator.com/item?id=13132688](https://news.ycombinator.com/item?id=13132688)
(I urge you to think about this puzzle a bit first ;)

~~~
Karrot_Kream
It's really hard to come up with this "story" for CS because different folks
will have different needs. If you're going into hardware/embedded
systems/firmware then ECC makes total sense. If you're going into academia,
then maybe it's time to introduce the fields/groups portions of number coding.
If you're going into high-level (web) software, then maybe it doesn't make
sense. CS has so many different routes that there isn't one "story" that
appeals to everyone.

------
skate22
Very few of my undergrad CS classes used a computer. Most tests were on paper,
even when we had to write a working program.

It was not unusual to have coding projects that accounted for maybe 10% of the
grade, but it was rarely the focus.

------
paidleaf
Computer science is a mathematical field. I wish we had labeled the academic
discipline Computing Science rather than Computer Science.

