11 ms·
CS Unplugged – Computer Science without a computer
- Schiphol 7y agoThis loos like a nice thing to try and do with my kids while we are confined. Does anybody have any experience with it? Do you know of other comparable (or better) resources to introduce kids to CS?
- _1 7y ago> Does anybody have any experience with it? Not this program specifically, but in high school I was taught Pascal without touching the computer for the first couple of months. All of our programs had to be written by hand. And included traces of the code ... all the values of the variables throughout the lifetime of the program. I was disappointed at the time, but looking back, it was a great way to write code. It was more about the meaning of the code, not fighting compiler errors. Edit: this would have been 1993, when I was in 9th grade.
- airstrike 7y ago> I was disappointed at the time, but looking back, it was a great way to write code. That's exactly how I felt and feel about a similar experience I had learning Scheme
- tnecniv 7y agoI think that depends on your kid. I learned to code when I was 13 and I would have hated the computerless approach. I specifically remember being ~15 and someone pointing this out to me in an IRC room --- I thought that they were being pedantic. Older me now finds the stuff you do without a computer the most fun. One suggestion I might have is, depending on their age, doing combinatorial game theory with them. That sounds really hard and fancy, but it's not (at least at the introductory level). There's a lot of games that are really simple to describe (e.g. counting games, simple board games) and your goal is to figure out the smartest move and / or if the player who starts the game can win.
- teach 7y agoI spent 20 years as a public school teacher and am still active in the Advanced Placement Computer Science teacher community. This is good stuff, and very well-regarded by my colleagues. Depending on the age of your kids, https://automatetheboringstuff.com/ https://automatetheboringstuff.com/ or another of Al's books are quite good to start with and free to read. For younger kids, Code.org's "Hour of Code" stuff uses Scratch, which is a nice block-based visual programming language that's still a real enough language under the hood; I had co-workers who used Scratch to have their AP CS students sorting lists of numbers and other "real" algorithmic tasks. And I'd be remiss if I didn't mention the book I wrote, which is linked in my bio.
- Schiphol 7y agoThanks a lot :) I'll be sure to check your book out.
- carls 7y agoFormer middle- and high-school CS teacher here. I also have used this with my students before. Most of the activities are definitely great and it's generally a well-regarded resource in the CS teaching community. The at home resources are here: https://csunplugged.org/en/at-home/ https://csunplugged.org/en/at-home/
- bmelton 7y agoHow many kids, and what ages are they? My daughter's 10th grade programming teacher (<3 you, Mister Serota) had a pretty brilliant mechanic for teaching functions to kids in his class that he relayed to me, and which I will attempt to relay to you. Effectively, he simply assigned some of the children in class to be 'a function.' Whatever input he gave them, they would have a predetermined routine to execute and give him output. E.g., "Billy, your function adds 2 to whatever input is given. Barbara, your function is to divide everything by 2. Samantha, your function is to determine whether or not dividing something by 2 will leave a remainder (modulo)." Then he would work complex computations through the room with scripts he'd devised, showing the power of chaining functions together. Similarly, if you give Billy the "+2" function, and then give him an input value of "A", well, he might come back with "C" as the output, or he might come back with puzzlement, and you can teach error handling. Similarly, you can assign multiple kids the same functions (and show asynchrony, or hand them different bad values to show the possibility of inconsistent code). TLDR: You "program" the children to be functions, feed them data, and then play around with how to best illustrate the concepts by manipulating the inputs and how you string them together.
- Schiphol 7y agoThat's a fantastic idea. Thanks for taking the time to explain it.
- elldoubleyew 7y agoI remember one of the first realizations I made as an undergrad was that CS != code. I think this book does a good job of removing the two from the beginning, and it would have been useful for me to have instruction like this when I started learning. Later on I realized that most jobs that ask for a CS degree don't actually have you doing any computer science. More often you are glueing together tools or writing a bunch of boring business logic for some specific application at best. At worst you are maintaining an old monolith trying to figure out someones logic from 15 years ago. Having a CS background in most software jobs is useful in the same way having a chemistry background is useful to someone working as a nurse. Sure there will be situations where that knowledge might help you make a connection more quickly, but you're sure as hell not a chemist.
- coldpie 7y agoYeah I wish this distinction was better communicated. I wouldn't have wasted four years and thousands of dollars on a CS degree if I'd known it wouldn't make me a better programmer. Going to college is one of the biggest regrets I have in my life.
- otachack 7y agoIf it's any reassurance, I believe CS degrees do make us better programmers than those without them. At the least, we picked up concepts that "just programmers" would have had to learn on the side. As for the whole school cost, that's a different story, but we landed in a lucrative field where we can pay off the debt, compared to a ton of others that have no hope to without a career pivot.
- coldpie 7y ago> I believe CS degrees do make us better programmers than those without them Maybe, but I can't really think of much that I learned in college that I have ever used since then. Everything a typical programmer does can be learned with just a textbook and/or the Internet. Beyond that, it's just years of practice and continual improvement, which you won't get in school. All the CS classes I took (DFAs, state machines, Turing machines, programming language theory) were a complete waste of time for a programmer, and the actual useful stuff (programming courses, systems architecture, networking) I picked up in my free time in middle/high school. I'm sure it's all great stuff if you want to be a computer scientist, but I didn't and don't. I think the only classes I took in school that I consider useful and that would have been challenging to pick up on my own were the coding theory[1] and intro to crypto classes. That's pretty poor showing for four years and a ton of cash. [1] Not programming, but number theory stuff, basis for cryptography https://en.wikipedia.org/wiki/Coding_theory https://en.wikipedia.org/wiki/Coding_theory
- airstrike 7y agoI'm just a hobbyist programmer, and the only class I ever actually took in CS in university actually taught Scheme/Lisp. Homework and exams were all pencil-on-paper, which I thought was very strange, but at the end of the semester made me feel very comfortable with the quality of the code I was writing
- BossingAround 7y ago> Homework and exams were all pencil-on-paper, which I thought was very strange Sounds like what I've heard of CS education in a lot of developing countries. When students can't commonly afford computers, computer science courses turn to pen and paper.
- kevin_thibedeau 7y agoThat was the norm before everyone had WiFi and wired lecture halls.
- saghm 7y ago> Homework and exams were all pencil-on-paper, which I thought was very strange FWIW, I graduated college in 2016 in the US, and probably around 1/3 of my computer science homework (as well as 100% of the exams) were pencil on paper (or in the case of some homework, typed in either something like Latex or a word processor, but still not writing code).
- non-entity 7y agoAs someone whose been programming for years, but weak on CS, would this have any advantages over following some other CS program thats closer to a traditional program?
- einpoklum 7y agoIt's mostly like that in some/many traditional CS programs anyway. A good number of my Professors really didn't know their way around a computer (that wasn't made up of an infinite paper tape and a read/write head...)
- Koshkin 7y agoComputer Science is no more about computers than astronomy is about telescopes. - A quote (mis)attributed to E.W.Dijkstra.
- gorgoiler 7y agoYes! Love it! It’s fun bringing the computers in to play as well, because I pitch to all my classes that we are in the age of information and the primary usefulness of algorithms is productivity. A whimsical classroom example: programming a robot that can type for you, with an instruction set that consists of capital letters. Q returns to that key. LRDU are left a key, right, down, and up a key, and P means “press the key you are over”. Step one: create robot code to type HELLO. Answer: QRRRRRDPLLLUPRRRRRRDPPUP. Step two: create code to turn a robot code into a string: similate the robot essentially. ...which is about it for the coding, but then we make a robot print instructions for a second robot to print instructions for a third robot to print HELLO. We end up with something super weird looking but tractable because all the components were built from the ground up. Computation is that wonderful meeting place between theory and leverage — the kind of leverage you get when you can do “2+2=4” 3 billion times a second.
- ChrisMarshallNY 7y agoIt's pretty cool. I started with Machine Language. The "text editor" for Machine Language (the original "ML") was an engineering pad.
- technothrasher 7y agoReminds me of my time in school in the early '90s. I was working for the university's Unix Admin group and as the only student in the group, I got sent on all the "broken workstation" house calls. The professors who almost uniformly had no idea how to use their computers were the ones in the computer science department. They weren't stupid people, I had CS classes with many of them and they were brilliant. They just didn't care one bit about using computers. They were 100% into theory.
- toolslive 7y agoThere is this anecdote about C.A.R. Hoare: He never implemented quicksort. He also was never logged into the systems at the university where he resided. [They also wanted to name a building after him (The Hoare-house) but for an unknown reason changed opinion. ;) But that's another story]
- inportb 7y ago> The easy and fun activities in this book, designed for studentren of all ages, introduce you to some of the building blocks of how computers work — without using a computer at all! > The studentren are actively involved in communication, problem solving, creativity, and thinking skills in a meaningful context. It seems as if they wrote "children" and then replaced s/child/student/g in some sections :)
- dang 7y agoA thread from 2019: https://news.ycombinator.com/item?id=20314713 https://news.ycombinator.com/item?id=20314713 2018: https://news.ycombinator.com/item?id=17661707 https://news.ycombinator.com/item?id=17661707 2015: https://news.ycombinator.com/item?id=10171469 https://news.ycombinator.com/item?id=10171469 2008 (not very good, and look at that typo): https://news.ycombinator.com/item?id=158948 https://news.ycombinator.com/item?id=158948
- dang 7y agoThe submitted URL was https://classic.csunplugged.org/books/ https://classic.csunplugged.org/books/, but that doesn't contain much information, so we switched it to the main page. The book is here: https://classic.csunplugged.org/wp-content/uploads/2015/03/CSUnplugged_OS_2015_v3.1.pdf https://classic.csunplugged.org/wp-content/uploads/2015/03/C...
- marktangotango 7y agoHarels Algorithmics is a wonderful book in this same vein: https://www.goodreads.com/book/show/2378136.Algorithmics https://www.goodreads.com/book/show/2378136.Algorithmics
- petschge 7y agoAs the old quip goes: A real computer scientist would not work with anything less portable than a #2 pencil. And at the risk of explaining a joke that applies to both the weight and the applicability of the results to ALL computers.
- odomojuli 7y ago“A man provided with paper, pencil, and rubber, and subject to strict discipline, is in effect a universal machine.” - Alan Turing
- yters 7y agoIf we took computers away from software developers, maybe we'd get much more well thought out solutions. Probably much simpler, too, if they have to write out everything by hand :)
- DeathArrow 7y agoIt seems to me most businesses don't care about quality but about productivity and the time to market. For most LOB apps the only thing that matters is using framework X, applying some flavor of the day principles like SOLID and DDD, using some software patterns, gluing different libraries with some code, copy-pasting from Stack Overflow and writing tests. A productive, well oiled machine which churns out software.
- k__ 7y agoIsn't that the reason why so many students are confused? All of my basic CS courses we're on a whiteboard
- kamfc 7y agoirrelevant but i remember a week ago someone on here said that books nowadays are written with the assumption that you would be in front of a computer to try the examples out. but decades ago, you read books in the evening and then come morning, you get to try out the code at the lab. authors today crammed so much in book than necessary. i wonder if cs unplugged is better than godot gaming for teaching 8-10 year olds how to think and code.
- goodcjw2 7y agoI dunno, sounds like Google interview.
- postit 7y agoBack in my time we didn’t have computers.
- DeathArrow 7y agoGrowing up in a former eastern block country, this bring memories. I went to high school in '90s and was assign in an intensive CS class. At the beginning, most of learning were done using pen and paper, writing pseudocode and also Pascal and C. Me and most of my peers were poor enough to not have a computer home, and the school only had ZX Spectrum clones running Basic. However, the school got some used 386 and 486 next years, so we got to use "the real deal". In my last year, my parents also got enough money to buy me an used 486 SLC - which got intense use since I also had Borland C++ compiler and a C++ for dummies book. I did my final project for CS in Borland C++ on that PC. It was a DOS based MS Paint clone. Before that, I owned a ZX Spectrum clone when I was in secondary school, and while I did some programming, most of it was written on paper first and typed on Spectrum later. I compiled and debugged "in the brain" because I couldn't save programs and if a program halted, I had to reboot the thing wasting all I have written. A guy my father knew hacked a cassette player to help me load programs and games, but sadly it didn't work to save anything. Even now, I sometimes like to draw diagrams, sketch code flow and write bits of pseudocode on paper before I start coding something, if I feel I need to clarify the idea.
- toomanybeersies 7y agoTim Bell, one of the creators of CS Unplugged, was one of the biggest influences on me discovering my love of computer science and learning how to program in high school. I wouldn't be where I am and doing what I do if it wasn't for him. I wasn't originally planning on becoming a software developer as a career, I started studying Mechanical Engineering. However, I failed first year (due to undiagnosed ADHD and a lack of interest). Luckily Tim was a lecturer at my university (University of Canterbury), and let me jump straight into second year computer science. He was definitely one of the best lecturers I had, alongside Richard Lobb. It's not often that you meet an academic who's more interested in teaching than research, but they were, and it showed. Thanks Tim.
- k_sze 7y agoThere is also a blog called "Techless Teaching": https://medium.com/young-coder/techlessteaching/home https://medium.com/young-coder/techlessteaching/home
- andrelgomes 7y ago"I'd like to welcome you to this course on Computer Science. Actually thats a terrible way to start. Computer science is a terrible name for this business. First of all, its not a science. It might be engineering or it might be art. Well actually see that computer so-called science actually has a lot in common with magic. We will see that in this course. So its not a science. Its also not really very much about computers. And its not about computers in the same sense that physics is not really about particle accelerators. And biology is not really about microscopes and petri dishes. And its not about computers in the same sense that geometry is not really about using a surveying instruments."