4 ms·
Having animals and colorful bricks is okay, so long as we're not in conflict with what is actually fun about what is being taught here... Programming is fun be
by unabst 10y ago
Having animals and colorful bricks is okay, so long as we're not in conflict with what is actually fun about what is being taught here...
Programming is fun because we can control the machine, and make it do things... magically, at our whim, with the right combination of instructions.
So compared to that, having a cat walk towards a barn seems like a completely irrelevant layer of entertainment forcefully tailored to the taste of the students, who at best are distracted from the real fun, or at worst presumed to be incapable of understanding why programming itself might be fun.
For all practical purposes HTML is a great place to start. Immediate output, can share it online, and it's easy. And easy to expand upon with CSS and Javascript and everything else. Also Processing is great for an art cs class. Not to mention both web development and computer graphics being two highly relevant skills in today's job market (thought that is thinking a bit ahead considering the ages here, but better relevant than sorry).
- kevhito 10y agoHave 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...
- evv555 10y ago>So compared to that, having a cat walk towards a barn seems like a completely irrelevant layer of entertainment forcefully tailored to the taste of the students, who at best are distracted from the real fun, or at worst presumed to be incapable of understanding why programming itself might be fun. The turtle/cat is a concrete place holder for abstractions like state and variables. Being able to to grasp algebraic variables and other high level abstractions is correlated with Piaget's formal operational stage of cognitive development which most children only begin entering in middle school. You probably could teach a 9 year old programming without these training wheels in the same sense that you could probably teach them algebra.
- thomaskcr 10y agoScratch is more programming than HTML/CSS by far. It has control structures, functions, etc. Aside from the most obvious projects (games), we've used the Kinect for input and directly interfaced with hardware. We've solved a ton of Euler Project problems in scratch and created physics simulations. I'd be hard pressed to find something you can't do in scratch with enough creativity. For kids, the biggest limiting factor is typing speed. With most languages, as soon as they can think faster than they can type, you hit a second roadblock of frustration where they are thinking too far ahead of what they're doing. Scratch really just abstracts boilerplate for things like showing a sprite and moving it into draggable blocks. The transition from Scratch to Python has historically been pretty easy since most of the kids understand the abstract concepts really well after 1-4 years of Scratch.
- fsloth 10y ago"Having animals and colorful bricks is okay, so long as we're not in conflict with what is actually fun about w that is being taught here..." The concept of 'fun' is highly personal. Surely you are not suggesting there is only one way to enjoy using a computer :) "Programming is fun because we can control the machine, and make it do things... magically, at our whim, with the right combination of instructions." I think you are creating a value statement that is not universally true. My son enjoys programming because he can draw himself a character and the program the character to respond to key presses. The machine between him and the program is irrelevant to him.
- unabst 10y ago"draw himself a character and the program the character to respond to key presses." Except, don't you see that that's him controlling the machine and making it do things magically at his whim with the right combination of instructions? The statement I made may not be universal, but you provided an example, not a counterexample, which infers you may not have well understood the full scope of said statement. And most certainly cats and barns is a stab at universal-as-possible fun. We may not be identical, but nor are we that different.