CS Unplugged: Teaching material for CS using cards, string and crayons

  • Several decades ago, "without a computer" was the norm, because they were expensive, noninteractive, and/or difficult to access. You had to write your entire program before being given a chance to run it, and if there were any errors, you had to wait possibly a very long time before you could run it again.

    Now that computers are ubiquitous and nearly everyone can immediately start writing code, I still think there are many advantages of doing it the "old school" way. Many of the highly-skilled developers I've worked with started learning with no constant access to a computer, so I definitely think this form of teaching is very useful --- without a machine "doing some of the thinking" for you, as it were, it forces you to actually understand the problem more deeply, so that you can tell the machine what to do. Those developers are also the ones who will spend more time whiteboarding or writing with pencil and paper than they do writing or debugging code.

    Also, I thought this image depicted students being handed stacks of 5.25" floppies in their protective envelopes:

    https://storage.googleapis.com/cs-unplugged.appspot.com/stat...

  • We did a deep-dive on CS Unplugged with the program's creator, Tim Bell, on The Changelog last year.

    Link to the transcript, for those curious: https://changelog.com/podcast/302#transcript

  • I learned doing ACSL exercises on paper starting in middle school. We had excercices for things like Boolean algebra, graph theory, base conversion ect. As well as 5 hacker rank style programming questions throughout the semester, in addition to our more regular CS coursework. Teacher made us keep an organized notebook with printouts of all our excercices/tests ect. Thought it was rediculous and old school but wasn't even 5 years before I looked back with gratitude. Learned the fundamentals needed to get me through 2/300 level courses at college. The teacher was amazing and in large part the reason I'm remotely successful today. There were 13 - 20 kids each year that took more then the intro courses. He would always treat us like family, and would do things like have us all meet after school once a year in fancy clothing for a "mock" fancy meal. It was so he could teach us (some autistic) how to be proper at a dinner and which fork is used for what. He taught us how to be skilled programmers and also people. Random middle of nowhere public high school in PA, very grateful. The teacher was deathly terrified of birds tho.

  • I've run these activities with kids (middle and high) and adults (teachers) and they have always been remarkably engaging and surprisingly effective at conveying the concepts each lesson is supposed to teach.

    I would 100% recommend using them if you ever get a chance to construct a CS fundamentals curriculum.

  • Do not use string, index cards, and multiple CS PhD students holding the cards to illustrate how garbage collectors work, particularly if most (all?) of the people in the groups haven't written a garbage collector. Trust me on this.

  • Wow, this is an amazing pursuit. I would love it if kids were introduced a bit earlier to more analytical thinking methods thru ways such as this. Learning about computer science has benefits in changing the way you approach concepts and problems, but kids shouldn't have to wait until middle-high school!

  • Tim is also a great lecturer (I had him as my lecturer many years ago), and one of the authors of Managing Gigabytes, - which for many years was apparently basically required reading at google - which is a great intro to all the normal compression systems, as well as large scale text search

  • And here I was, thinking 'huh, they finally condensed down deep CS topics so that my dumb ass can understand it! Neat!' Imagine my disappointment looking at the ages section.

    Still, a neat idea! Just not for my dumb ass.

  • I have been building a course for my 5 year old using Scratch. She has a ton of fun working on the material with me.

  • This reminds me of dorkbot and runme.org. :)

  • does the United States have any such programs?