Hacker News new | past | comments | ask | show | jobs | submit login
CS Unplugged: Computer Science Without a Computer (csunplugged.org)
191 points by ArtWomb on Aug 1, 2018 | hide | past | favorite | 43 comments



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.


I've seen this video a while ago, where a father does this with his kids: 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.


We did something like this in 8th grade, 30 years ago: write instructions for tying a shoelace.


[flagged]


I had a serious discussion with my colleague about this, which led to talking about engineering and regulatory constraints -

Marketing Analyst: We need to offer a peanut butter and jelly sandwich product on the market.

Compliance Analyst: We can't sell peanut butter in these markets, we need to use tahini instead.

Automation Engineer: Ok, we were able to make the robot work with mayonnaise and honey, all the other ingredients aren't working. Can we sell a mayonnaise and honey sandwich?


Sounds a bit overkill tbh. Atleast in my school the guys above simply decreed that if someone had an allergy, everyone should be mindful of it (of course, one bully tried but after he got charged for attempted murder on the aftermath nobody else dared).

That counted for allergies other than peanuts too which can be just as severe.


I guess there are people who have sunlight allergies. Wanna ban sunlight in australian schools?


Well, peanut allergy is lethal and can be triggered by even inhalation of peanut dust in more severe cases.

Sensitivity to sunlight is way more manageable (by applying sunscreen and covering the skin) and although kids share food and/or eat them in the same environment I don't think they're carrying UV lights to apply to other kids.


There is plenty of other potentially lethal allergies that can be just as severe, singling out peanuts is overkill as I mentioned in a sibling thread. (Soy, milk, wheat, gluten. Especially wheat allergy can cause reactions just as severe as the stereotypical peanut allergy)

edit: Note that an allergy to sunlight exposure (which is a thing) is not simply treated with sun cream


>Soy, milk, wheat, gluten

Can they trigger reaction by simply having it in the room? I can get an allergic reaction from having peanuts in the same room as I'm in, in the same way as a reaction from pollen or from animals. So wonder if other food based allergy can have the same effect on others


For wheat, sure. Soy less sure, gluten and milk only on consumption.


Neither are they carrying peanut butter to apply to other kids.


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.


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


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.


I have heard this was the same reason behind the vast dominance of Russian programmers in the early days of HFT (cf. Michael Lewis' Flash Boys): CS classrooms in late-80's USSR had maybe one computer between them, so you spent a lot of time getting your programs right on paper before it was your turn to use the machine.


so you spent a lot of time getting your programs right on paper before it was your turn to use the machine.

That was called "welcome to CompSci 101!" in the first CS course I took in the early 80s. Submit your card deck, wait your turn for the operator to load the deck, an hour later you get to find out that you made a typo and it didn't compile.


“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...

> 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.


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.


Wow, I was envisioning discrete math, but he is teaching modern computer skills. I would find this incredibly intimidating. Well, I guess necessity is the mother of invention—he clearly figured out how to get some decent teaching out of it.

Great penmanship, too. Surreal for this field.


being a CS major in India, I can't help but call bullshit.

Knowledge, maybe. But when you put them in front of a computer, they can't write code. (Your mileage may vary though)

I'm in my 2nd year, and it's incredible how these teachers teach computer science without computers. The ironic thing is that they have projectors in classes. They even have laptops. Most of my peers have laptops, I think. And still they teach with a blackboard.

Just yesterday, my shell programming teacher wrote out the output of `ls -l` manually, by hand. She literally had it memorized. And said that we have to memorize it too, because of course, computer science is a written exam :)

I never expected to see this kind of response on HN. Some of these people don't know how to turn on a computer, and keyboard typing is a long stretch. You really don't know what you're dealing with here!

The admission process is fully exam based (physics/chem/math). I wasn't asked once, in the entire admission process whether I had ever used a computer in my life. Most parents don't let their kids use computers because they think it will spoil their childhood. I was fortunate enough to have good access to Internet and computers in my home. I admit that I spent a lot of time playing games, but I totally have a better understanding of how computers work. At least I'll be a cs major who actually knows how to code...


Recent Changelog podcast featuring Tim Bell and focused on CS Unplugged, https://changelog.com/podcast/302.



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

- Dijkstra


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

~ also Dijkstra


In french there is a dedicated word: 'Informatique'. Which is a portmanteau word for automatic information


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.


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


Dataology would have been a great name. I would have loved to be a dataologist.


I am a dataologist, even if my title says software something something. Commercial software development is about getting data from point A to point B more than anything else. There's a little bit of logic, a little bit of munging, but almost all of what could be called an algorithm is done by a library or some other system--probably a database. It's maybe once a year that doing something algorithmic, e.g. reduce a regex to a hand-coded FSM, or write an exponentially decaying counter, is actually the best thing I can do to solve the problem at hand.


I would love for "Computology" to become the preferred term.


Computational Science.


Dijkstra preferred "computing science", didn't he?

Now, calling it "science" at all is problematic if you don't consider mathematics to be a science.


Do mathematicians perform experiments?

Do people who research computation?


Are you discussing the questions of whether computer science is mathematics? Dijkstra considered it to be, and was not a fan of "experimental computer science".


My degree is actually in "Computational Science" (University of Hull, England). However they decided to rename it to the standard "Computer Science" the year after I started.


I've seen that in some UK univs they call it Computing. I think that's a better term. One short word, too.


That term is already taken for people who use computers to do science, e.g. physicists doing computational modelling.


Dijkstra met Mike Fellows (who co-authored the original CS Unplugged with Tim Bell) early in Michael's career, who originally quoted this, but it's often misattributed to Dijkstra as he is slightly more famous!

Tim Bell was on Changelog podcast #302 talking about CS Unplugged and mentioned this at some point.


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.


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

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 (I urge you to think about this puzzle a bit first ;)


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.


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.


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: