3 ms·
Have you programmed in scratch for any significant amount of time? I have, so have my kids, and as a CS prof (at a small non-engineering college) I encourage my
by kevhito 10y ago
Have you programmed in scratch for any significant amount of time? I have, so have my kids, and as a CS prof (at a small non-engineering college) I encourage my students to do so too. Before age 10, almost entirely on their own, my kids discovered ideas like abstraction (writing custom blocks), recursion, data representation (e.g. encoding/decoding pairs, structs and lists into arbitrary-precision integers), asynchronous vs. synchronous functions, performance tuning, 3d perspective graphics, and race conditions. At bedtime it's not unusual for them to ask about, say, what happens if you do recursion without a base case, or wonder whether you could simulate the scratch language within scratch itself.
All of these things are fundamental CS concepts, and they seem to grasp these at a much deeper level than I did at that age, and better than most of my college students. Yes, they also do some python, html/css, a little java, a bit of javascript. And those all have their place, and they like making websites. But the scratch infrastructure is fantastic. Good learning curve. Just enough language power to do amazing things (threads, fork, async notifications, custom blocks, cloud variables for multiplayer online). Instant publishing. Great community. Fantastic programmers (hi Griffpatch!) putting out incredibly clever programs to admire.
So all this is to say that it is unfair to dismiss scratch as "a cat walks towards a barn".
- unabst 10y agoI was trying to be careful not to do that, and you'll see that I didn't. So long as we're not in conflict it's okay, and certainly Scratch is more than cats and barns. But my point remains that cats and barns could be interpreted as "fun because they're kids" since no CS prof in their right mind would teach students that way at, say, MIT. Maybe robots. The problem isn't with teachers who teach the magic of computers with cats and barns. It's with the teachers who confuse the fun with cats and barns and underplay the real magic, which then leads the students to be confused and unimpressed as well. Whenever I saw educational games as a child I'd immediately sense the "adults intent to entertain" through boring characters and ugly art. Now, that isn't to discredit their effort, but when you're a kid obsessed with Super Mario Brothers, it's tough competition. Needless to say, educational NES/Famicon games did not fair well on the market. Everyone loved Mario.
- kevhito 10y agoYes, perhaps I was being a bit unfair. However, bad teachers will always be with us, and won't start teaching the magic of computers just because you give them a c64 or basic. They'll just make kids write endless employee pay calculator programs and other drudgery. I do agree with your general sentiment about the transparency of "intent to entertain". But I really don't see it with scratch. There's a silly cat on the front page, and comic-book logos. But 5 minutes after first being introduced to that, kids are already looking at Griffpatch's latest multi-player cloud-based platformer, or the cool 3d render program, or the interactive fractal, or the simulated ice-cream shop factory, then 5 minutes later they are staring at code trying to figure out how they did it so they can make their own. Really. On the frontpage right now, the top-featured studio (i.e. a collective hacking club) is called "Lindenmayer Systems!" [1], showing their latest L-system fractal fern generator [2]. I really don't see a lot of "forcefully tailored" entertainment here. Just a site filled with projects made by kids and adults on a huge range of topics, from lipstick, fashion and silly greeting cards, to mathematical and engineering. Incidentally, I'm assuming you know scratch was designed at MIT, and many aspects were deliberately designed to teach advanced concepts. And that it has, in fact, been used in college classrooms (Harvard [2], others I believe). Still, I contend that my kids with no formal CS education have a far better concept of an abstract data type because of scratch sprites, and this has carried over very naturally to other languages (Java objects, smalltalk message passing, etc.). [1]: https://scratch.mit.edu/studios/1677151/ https://scratch.mit.edu/studios/1677151/ [2]: https://scratch.mit.edu/projects/1318150/#editor https://scratch.mit.edu/projects/1318150/#editor [3]: http://paradox1x.org/2011/11/introducing-programming-in-college-with-scratch/ http://paradox1x.org/2011/11/introducing-programming-in-coll...
- unabst 10y agoYes, made at MIT for kids, not students. Building Scratch was the assignment, and it was probably a lot of fun. I in no way wish to discredit the efforts of those who use and maintain Scratch. The only meaningful point I might add would be that kids love to compete with adults. They want the real thing. Of course, most can't handle the real thing, so we give them what we think they can handle. Except, for the smart kids, the bar is always too low because it has to be adjusted for the averages. So they feel like they're being treated like kids, and that their intelligence is being undermined, and they may even feel discriminated against. Basically, they don't think of themselves as kids. We the adults think of them as kids. Not that they aren't kids of course, but we should never limit their intelligence based on what we think they can handle. It's a shame modern video games are so complex and cinematic. To Scratch's credit, here is mario: https://scratch.mit.edu/projects/31583772/#editor https://scratch.mit.edu/projects/31583772/#editor and: https://scratch.mit.edu/projects/71455048/ https://scratch.mit.edu/projects/71455048/
- imakesnowflakes 10y ago>they seem to grasp these at a much deeper level than I did at that age.. What real difference will it make in the future? I think none. Some one who understanding recursion when they were 10 will not end up much better programmer than someone who was exposed to it at 20, and have sufficient experience in using the concept. Same with other CS concepts. The idea of making kids learn this sounds great, because it looks great when kids do stuff with computers. But it is not really giving them and advantage in the future.
- piokuc 10y agoWhy do you think so? It's a common knowledge early start gives one an advantage in many disciplines: music, ballet, chess. Why are you so sure programming is so different?
- imakesnowflakes 10y agoI think those things are different. How many people in the world can create music like Beethoven or Mozart? How many people would have been able to beat Deep Blue in chess at that time? I can imagine there would be music that could only be rendered on a piano or violin, by only a hand full of people in the whole world. In a similar manner, do you know a program that could only have been written by an 'expert' programmer, or only a hand full of expert programmers in the whole world? I don't think so. The essence of what I am saying is that, programming is not a hard enough thing to waste those precious early years on.
- piokuc 10y agoYes, I can think of programs that can only be designed and implemented by top 1% of programmers. Regarding "programming is not a [...] thing to waste those precious early years on.", well, this is not something I'd like to argue about, just want to say that learning programming by a kid doesn't have to be (and, of course, shouldn't be) a 8h or more daily activity, like for a professional adult programmer. I think an hour per week of learning programming can be a valuable exercise in logical thinking, creativity and problem solving. It can easily be a lot of fun, too.