×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

MIT Media Lab Making Programming Fun For Kids

Zonk posted more than 6 years ago | from the learn-2-play-newb dept.

Programming 318

An anonymous reader passed us a link to an article on the Boston Globe's website, talking up efforts by MIT to make programming a non-threatening part of grade-school education. MIT has developed a new programming language designed to encourage experimentation and play. Called Scratch, the project eschews manuals and high-level concepts in favour of approachability. "Efforts to make computer programming accessible to young people began in the late 1970s with the advent of the personal PC, when another programming language with roots at MIT — Logo — allowed young people to draw shapes by steering a turtle around a screen by typing out commands. But the path to mastering most programming languages has been strewn with obstacles, since students needed to figure out not only the underlying logic but also master a brand new syntax, observe strict rules about semicolons and bracket use, and figure out what was causing error messages even as they learned the program."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

318 comments

Lego Logo (3, Interesting)

RingDev (879105) | more than 6 years ago | (#19130963)

I learned Lego Logo as a grade schooler in summer school. Great fun! Definitely one of the things that influenced my youth leading me into a CompSci future.

-Rick

Whoops, my bad. (1, Insightful)

RingDev (879105) | more than 6 years ago | (#19131043)

I didn't write "First Post!!1!!1!!ELEVEN!! LOLERSKATES" on the first post of the thread. That would explain the Off topic moderation.

-Rick

Re:Lego Logo (1)

H3g3m0n (642800) | more than 6 years ago | (#19131621)

I started on MS-DOS BAT files and Commodore 64 basic :)

Re:Lego Logo (1)

Lumpy (12016) | more than 6 years ago | (#19131785)

you had it easy. Try typing your hex codes into a hex keypad after you converted your Assembly language to machine code in your head or from the books.

I freak out new CS grads today when I convert hex in my head almost instantly.

What?! (3, Funny)

Anonymous Coward | more than 6 years ago | (#19130967)

You mean BASIC isn't fun? It was fun for me... but maybe that's why I'm reading Slashdot now.

Re:What?! (1)

u-bend (1095729) | more than 6 years ago | (#19131075)

Yes, I too thought BASIC (early 80s, Apple IIe, line numbers, GOTO statements) was lots of fun as a kid. But I keep reading here that BASIC was evil and made bad programmers (I didn't end up as a developer myself), so I've always been curious about why it generates such ire, because it is a great way to get kids into computer stuff and logical thinking early. Logo was awesome for that too.

Re:What?! (3, Insightful)

Red Flayer (890720) | more than 6 years ago | (#19131207)

I've not seen this MIT project, but Logo then Pascal is a good introduction to programming for kids. Logo teaches them to think in terms of processes, as well as teaching the importance of syntax. It also gives them a visible product that they can take pride in and appreciate... "Hello world" just isn't as inspiring to kids as seeing a colored square on screen that they made.

Pascal is more like modern programming languages, and while it has its problems, it's simple enough for a preteen to use.

As for your comment that BASIC gets slagged on slashdot -- I think typically it's VisualBasic that gets slammed, for giving people the tools to get a bit of programming done without making sure they have programming concepts down. People who learn to program in VBA learn a lot of bad habits, and if they start doing real development instead of basic scripts, they don't have the background necessary. It's not so much VBA that sucks IMO, it's the fact that so many VBA users learned how to write code without learning how to program.

Re:What?! (1)

pavon (30274) | more than 6 years ago | (#19131591)

I agree. It is a shame that Pascal has been largely discarded in (pre-college) classrooms for more "practical" or "modern" languages like C, Java, Python etc. I have yet to find development environments that are better to learn with than Pascal or QBasic. They don't have all the baggage that you need for high performance (like you get with C or C++) or strictness that helps keep bug count down in huge projects (like you get with C++ or Java), and have easy access to the routines that people learning want to play with (standard IO, drawing graphics, etc).

That is my biggest pet peeve with using modern IDEs to teach programming - that they are so abstracted. Not only do kids not learn as much because the tools do things for them, but often case the tools take longer to learn and use than doing it directly anyway. It's not like Logo or QBasic where you wrote a couple of lines of code and have it immediately draw something for you on the screen.

Re:What?! (1)

DragonWriter (970822) | more than 6 years ago | (#19131977)

It is a shame that Pascal has been largely discarded in (pre-college) classrooms for more "practical" or "modern" languages like C, Java, Python etc.


Eh, Pascal as a language doesn't have a lot to offer, IMO, that isn't provided better in Python, Ruby, etc., if you want accessibility. I will agree that the standard libraries that came with many Pascal implementations have some advantages over the libraries that come with most modern languages in terms of easy graphics and some other things that are useful to learners (though no two were compatible in how they did this.)

I have yet to find development environments that are better to learn with than Pascal or QBasic. They don't have all the baggage that you need for high performance (like you get with C or C++) or strictness that helps keep bug count down in huge projects (like you get with C++ or Java), and have easy access to the routines that people learning want to play with (standard IO, drawing graphics, etc).


Pascal is a stricter language than C++ (or C), and, IIRC, even a bit more strict than Java; it was the archetypical "bondage and discipline" language. Pascal inherently doesn't have easy access to "drawing graphics", but (as with BASIC) many versions were tightly tied to a specific platform and came with libraries that provided quick access to it. That is something many modern languages lack. (Easy access to "standard" IO, even in a fairly general sense, is not, however, something Python, Ruby, etc., lack.)

Re:What?! (5, Insightful)

AKAImBatman (238306) | more than 6 years ago | (#19131803)

Logo teaches them to think in terms of processes, as well as teaching the importance of syntax.

No, Logo teaches them to push a turtle around the screen. It doesn't really convey a sense to young children that they're "programming" a computer. I technically had Logo before I ever had BASIC, and it took me years to realize that it was supposed to be an introduction to programming. Most of us saw it as an introduction to computer graphics.

As for your comment that BASIC gets slagged on slashdot -- I think typically it's VisualBasic that gets slammed, for giving people the tools to get a bit of programming done without making sure they have programming concepts down.

While Visual Basic is a poor tool to teach programming (most "programs" taught are simple GUI constructs with little to no code), the original BASIC regularly gets slammed because of Dijkstra's 1968 article, Go To Statement Considered Harmful [acm.org]. Dijkstra's core argument was that GOTO statements created spaghetti code. While this is unavoidable in assembler, his point was that it does not need to exist in high-level languages.

That paper had a profound effect on languages that followed, resulting in many modern languages doing away with a GOTO keyword altogether. (e.g. Java reserves GOTO, but does not implement it.) Taken by itself, Dijkstra had a point. Unfortunately, he went on to say: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." This started the idea that BASIC is somehow the "wrong" way to teach programming.

The truth of the matter is that the design of BASIC will only limit programmers who are not interested in a long term career (or at least hobby) in computer programming. Most BASIC programmers quickly find the limitations of the GOTO statement on their own, and need little prodding to move to subroutines via GOSUB calls. From there, a programmer quickly learns the limitations of global variables. This makes the introduction to procedural functions much easier.

Basically, it's easy to provide a student with new tools when they feel the need for them. If you simply give them the tools without giving them the background, they will never learn to use the tools correctly. That's why I personally believe that classic BASIC is still an excellent teaching tool. Besides having simple syntax that any child can understand (one instruction goes after the other, see?), the interpreter environment allows children to play around with the instructions without having to write complete programs for each experiment. This invaluable teaching feature is lacking in modern structured programming.

Thus it is my personal belief that we need to STOP reinventing teaching languages, and just go back to what works. All we're doing with these new languages is giving them the CompSci version of "New Math". And all that "New Math" ever accomplished was to generally confuse children, and ensure that they never take up higher maths. Such is the result of providing highly structured coding tools to a child who wants to explore.

You can read more of my thoughts on this subject in this article [intelligentblogger.com].

Re:What?! (2, Interesting)

gkhan1 (886823) | more than 6 years ago | (#19132061)

When I started messing around with BASIC, my older brother simply told me to never use GOTO. "Don't ask why, you won't understand, just don't use it". I rarely did, and I didn't miss it. People can absolutely be taught programming in BASIC (in fact, I'd argue that it is one of the best first languages to learn), just as long as they are cautioned against the monster that is GOTO.

Re:What?! (2, Interesting)

Red Flayer (890720) | more than 6 years ago | (#19132117)

No, Logo teaches them to push a turtle around the screen. It doesn't really convey a sense to young children that they're "programming" a computer.
Well, first, their cognizance of whether they are "programming" isn't as important as the concepts they are learning. Second, if that's all they are learning, then there's a problem with how they are being taught.

If the kids only learn the "enter command, watch turtle move, rinse, repeat" part of Logo, then they are not learning to use Logo at all. Proper instruction in Logo will teach kids about subroutines, about loops, about the importance of syntax, about planning out a somewhat complex program. Note that I should have mentioned that Logo BASIC is what I'm referring to, not just Logo -- I should have made the distinction.

As to why Basic still gets slammed, I think you're incorrect, it has little to do with Dijkstra's 1986 article. We've moved past that, and it's the VB scripters who now get slammed on Slashdot. Just my opinion, from what I've observed over the last several years.

Re:What?! (1)

Anarchysoft (1100393) | more than 6 years ago | (#19131329)

Yes, I too thought BASIC (early 80s, Apple IIe, line numbers, GOTO statements) was lots of fun as a kid. But I keep reading here that BASIC was evil and made bad programmers (I didn't end up as a developer myself), so I've always been curious about why it generates such ire, because it is a great way to get kids into computer stuff and logical thinking early.
I think there are three main reasons. One is arrogance as BASIC was intended as a teaching language so if a person has learned a 'professional' language they can disrespect BASIC and its practitioners for an ego-boost. Ah, for the days of Rainbow magazine and hobbyist pride. Hmm... Second, VisualBasic was quite a departure from Dartmouth style BASIC and created a very large number of 'programmers' who barely saw or understood the code they were creating. People can make advanced, excellent programs with VisualBasic (especially VB.NET,) but the stigma of being the having so many poorly designed forms counting as programming remains. Finally, BASIC is less powerful and flexible than most professional languages. After all, there are only so many numbers you can insert between lines 110 and 120! :)

Re:What?! (0)

Anonymous Coward | more than 6 years ago | (#19131463)

BASIC generates ire as a backlash against its marketing. The language would be long gone from this world had it not been called BASIC, but the name makes people think it's easy or appropriate for beginners or something. In fact, by comparison to modern languages -- even modern languages from 15 years ago -- it's counter-intuitive, difficult, and inflexible. Further, its descendants retain many of the old flaws, but people continue to make excuses for it on the baseless claim that it's easy or simple.

Re:What?! (1)

ChromaticDragon (1034458) | more than 6 years ago | (#19131497)

Well... Basic likely generates ire because people believe much better programming languages and approaches exist.

If a child starts to learn to hang pictures with tape, well and good. As they grow they'll likely progress to thumbtacks, then nails. Soon they'll learn about screws, anchors, levels, stud-finders, etc. You don't consider it strange that a child hangs their artwork with tape. You find it bizarre when your adult friend attempts to use tape to hang their new Rembrandt. Ire arises when they ask you for help.

Now having said that, you raise a very interesting idea I hadn't considered lately of introducing children to programming with Basic. I imagine you may have to dig back to a "simple" Basic for the benefits, but it may be a good idea to start with simple instructions and logic and then progress to procedural and then object-oriented programming. I seem to remember reading arguments made by those who believe it best to start learning object-oriented first. I am not certain I ever fully agreed with that idea.

Bad Habits (1)

TapeCutter (624760) | more than 6 years ago | (#19131851)

"I've always been curious about why it [BASIC] generates such ire"

As some one who also taught himself applesoft BASIC (but did go into computer science) I think it was a great way to start. The reason BASIC was/is so reviled by developers is because the language itself encorages programmers to write spaggetti code (from what I remeber applesoft BASIC did not even have a GOSUB), it teaches you "bad habits" that can be carried over into structured languages.

I don't know about you, but I found once an applesoft BASIC program got to about 2000 lines it was an unreadable mess, especially if you stopped working on it for a while. It's much easier to write readable code with modern versions of BASCIC (such as VB), but the language has been extended so far it looks nothing like what you typed into your IIe.

After a couple of decades in C/C++ development, I sometimes open an unfamiliar source file only to find the comments inside claim that I wrote it. If you could look at some of your files from the 80's, it would be crystal clear what was wrong with applesoft BASIC.

Re:What?! (1)

AVee (557523) | more than 6 years ago | (#19131791)

"You mean BASIC isn't fun? It was fun for me... but maybe that's why I'm reading Slashdot now."

Indeed!

"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
-- Edsger Wybe Dijkstra [utexas.edu]

Now that quote is from 1975, and here we are, trying to create a new and better beginners allpurpose symbolic instruction code.

Like Hegel told...
Oh well, nevermind.

Hell (4, Insightful)

buswolley (591500) | more than 6 years ago | (#19130997)

Yeah make it non-threatening so that they won't even have an inkling of the Hell that is computer science.

Re:Hell (3, Interesting)

smitty_one_each (243267) | more than 6 years ago | (#19131317)

What's intrinsically hellish about computer science?
The problems I see with it are related to the entropy of the human soul. Gets especially painful when the entropy aggregates into organizational behavior.
I, for one, find reading Knuth a delightful escape from Perry Ferrel's observation: "...and the news is just another show / with sex and violence..."

Re:Hell (1)

iocat (572367) | more than 6 years ago | (#19131385)

I know you're being sarcastic, but let's face it -- programming is not super easy, and not for everyone. Why try and trick people by making a stupid, slow, bloated, high level language they're never going to be able to use to create compelling games (#1 thing kids want to make with computers), and that doesn't teach them how computers actually work. Why not, you know, have them actually learn how computers work, so later they know what the fsck the code they are writing is doing.

You're going to raise a much better generation of programmers if you give all the kids Game Boy Colors, emulators, lots of sample code, and books on Z80 assembly. Assembly is as easy, if not easier, to learn than high level languages, especially with a simple 8-bit assembler. You know EXACTLY what the CPU is doing at all times, and you end up being a much better programmer later. By enabling kids to make real games, you provide motivation, not just dumbed-down, high-level crap.

I still like logo (1)

cyphercell (843398) | more than 6 years ago | (#19131003)

Drag and drop seems nice, but it is a significant abstraction from real programming. My kids have both learned a bit about programming from logo, and they are 4 and 5.

Re:I still like logo (2, Interesting)

DragonWriter (970822) | more than 6 years ago | (#19131271)

Drag and drop seems nice, but it is a significant abstraction from real programming.


It doesn't have to be all that distant from raw code. Another MIT project (StarLogo TNG [mit.edu]) uses drag and drop that has a pretty much 1:1 relationship to raw code, but is presumably less intimidating and certainly less dependent on typing and memorizing syntax rules, since the blocks both visually indicate syntax and won't link-up in improper ways. Scratch seems similar, though this is the first time I've looked at it and I haven't played around with it.

Really, I don't see how "drag and drop" is inherently any further from "real programming" than using a modern IDE with automatic code completion, automatic closing of blocks, code generation, GUI builders, etc., is.

Re:I still like logo (1)

syphax (189065) | more than 6 years ago | (#19131465)


I like Logo too. I've been thinking about getting my kids started on it (my oldest 2 are 5). How'd you get them started, explain angles, etc.?

Re:I still like logo (1)

cyphercell (843398) | more than 6 years ago | (#19131733)

They haven't actually written any code. They pick the numbers, learn the words necessary and help me write the program, give me directions to write the letter "L" or whatever. When the program runs in slow motion (I use kde's logo kturtle) it highlights the code and they see what happens. It's actually a lot of fun and quite easy for them to understand, it's like simon says.

Re:I still like logo (1)

Falladir (1026636) | more than 6 years ago | (#19131615)

I think a good language for kids would be Autohotkey. (unfortunately, it's Windows-only as far as I know) While many projects just consist of a script, they can use loops and variables and other elements of real programming languages. Best of all, they can see it in action and they have a good understanding of what its capabilities are: it can do what they do with the mouse and keyboard (and more, but that's no big deal).

Now if only they could make programmers (4, Funny)

antifoidulus (807088) | more than 6 years ago | (#19131007)

not frightening to children....or women for that matter :P

Re:Now if only they could make programmers (1)

NouvelleChimie (1101141) | more than 6 years ago | (#19131167)

Indeed. I read that and was thinking "maybe I will finally understand what my boyfriend is rambling on about all the time" Code is sexy though. Just wish I knew how to do it.

Real Women Aren't Afraid to Program (0, Offtopic)

queenb**ch (446380) | more than 6 years ago | (#19131265)

We can give birth so learning a computer programming language is nothing by comparison....

2 cents,

Queen B.

Re:Real Women Aren't Afraid to Program (2, Funny)

kalidasa (577403) | more than 6 years ago | (#19131327)

He's not talking about making "programming" less frightening to women, but "computer programmers" less frightening to women (i.e., pimply-faced male coders who cannot, for the life of them, get a date with the opposite sex). Of course, he either assumes that all programmers are male, or that gay female programmers are equally impaired in the search for a prospective partner.

Re:Real Women Aren't Afraid to Program (1)

Lazerf4rt (969888) | more than 6 years ago | (#19131509)

One way programmers can become less frightening to women is by not explaining obvious jokes.

Been there? (0)

Anonymous Coward | more than 6 years ago | (#19131027)

The big question is, how well can I use it to draw a turtle? LOGO anyone? ...anyone?

Not Possible (2, Interesting)

viewtouch (1479) | more than 6 years ago | (#19131057)

I made a call to Michael Tiemann, author of the GNU C++ compiler, a few years ago to encourage him to create a programming extension to his work with gnu C++ by adding graphical symbols to C++ which would allow people, especially children, to program in C++ by manipulating graphical symbols the way that C++ programmers now manipulate text to create software.

He said it was impossible.

All that means, really, is that it won't be Michael Tiemann who authors or participates in this inevitable breakthrough.

It is a bad idea. (4, Insightful)

pavon (30274) | more than 6 years ago | (#19131325)

C++ is a very complex language, and whether it is represented by text or graphics you will have the same difficult concepts to learn. Most of those concepts exist either for performance reasons, or as an aid in creating very large programs (they trade-off more up-front learning and work for less problems later on). Neither of these are desirable for a graphical learning language, nor is it desirable to build off of a compiled language. If you did create a graphical representation of C++ it would be an overly complicated mess that was no easier to program in than textual C++.

You are better off creating a your own language (like this or LabView or Squeak or the newer graphical Lego Logo) than to try and retrofit C++, or worse to call on someone whose strengths are in low-level machine language generation and optimization to do it for you.

The universe, and the future, are big places to go (1)

viewtouch (1479) | more than 6 years ago | (#19131629)

To play a computer game these days is to create a solution to a problem solely by means of learning to manipulate graphical symbols at a sufficient level of sophistication. Game software is written almost entirely by manipulation of graphical symbols. Yes, it is true, of course, that the graphical symbols are created with C++ an other text languages but the graphical languages built with text languages are the first steps to this and the results - any game you care to buy - are impressive in every way, by any standard.

What will happen is that the graphical symbols will eventually reach the hardware through fewer and fewer levels of text-based abstraction, until someday, in the not-too-distant future, the hardware will directly manifest the graphical symbols that people interact with at the level of the interface. It's the most efficient way to do it - and, ultimately, the simplest, once the task of how to do it is, itself, finally comprehended.

Re:It is a bad idea. (1)

iknownuttin (1099999) | more than 6 years ago | (#19131643)

If you did create a graphical representation of C++ it would be an overly complicated mess that was no easier to program in than textual C++.

That's true if you are making something that will attempt to produce production level code. But, I think what the OP was getting at is maybe a simplified version. For example, a graphical representation of output, let's say, a sprite of a screen or printer. Another for input: keyboard, file: disk drive ...basically Apple'esque icons. And by dragging and dropping them you can create a program. Add functionality by "inheriting" other icons.

It's to produce "Hello World", Fibonacci, and other types of programs.

Actually, someone once told me that NExT computer systems has something like that - I don't know.

Yes, more or less. (2, Informative)

viewtouch (1479) | more than 6 years ago | (#19131975)

In the late 70's I began thinking about and, by 1986, created a way for people in restaurants to work more efficiently by manipulating graphical symbols on touchscreens. By doing this they could walk far fewer steps, stop having to create guest checks by hand, record all the transactions, largely get their work done without having to talk so much to other employees, and could put your food & beverages on your table much more quickly, and with far fewer errors. Restaurant and bar employees finally had a tool, a graphical language, that helped them do their work more efficiently. You may have seen this system, or one of the many systems copied from it. For the past 12 years it has been possible for people who buy this system to program it solely by the direct manipulation of graphical symbols - using a graphical language to create an even more sophisticated, more specialized graphical language.

Virtually anyone could benefit from having such a system, engineered by the use of graphical symbols to be of specific use to anyone in their specific situation, especially now that the graphical symbols and the language itself consists of network transparent graphical symbols. Graphical programming is all around us, actually, and it will become so predominant that people will soon find it hard to comprehend that it was not always so.

Re:Not Possible (0)

Anonymous Coward | more than 6 years ago | (#19131579)

You can't really blame him, though. C++ is unlikely to be the language in which such a breakthrough will be made first, including as it does nearly the entirety of C with all that entails of closeness to hardware. Programming through graphical symbols is an extremely high level technique in that the code you put together by hand is very far removed from the CPU instructions actually executed. Coupling such a technique with a fairly low-level language doesn't really make sense: you don't get comfortable low-level access, and if you are to gain a comfortable high-level environment it has to be built from scratch on top of the low-level interface anyway.

I'd guess that the first language to be programmable entirely through graphical means will be especially developed for that purpose.

Re:Not Possible (1)

joss (1346) | more than 6 years ago | (#19131683)

> to program in C++ by manipulating graphical symbols

What does that mean ? In what sense would they be programming ?
Did your proposal have any concrete ideas which you ommitted
[Let alone programming in C++, which to most people means writing C++]

This visual programming crap crops up from time to time because so many people are brainwashed by that crap about a picture being worth a 1000 words. Draw me a picture of "misguided". They are stuck on the "pictures are better than words" meme. Sure, until you learn to read.

Programming is done with languages because programming is communication. It's communication between programmer and computer.

I can believe in this stuff as a decent way to introduce people to programming, like picture books introduce people to language but I don't see it moving beyond that.

Whats the point? (5, Insightful)

Timesprout (579035) | more than 6 years ago | (#19131083)

Are there courses designed to make neurosurgery less intimidating to kids or genetic research less complicated or elite forces soldering less dangerous or stressful? It always concerns me when I see a bunch of geeks trying to stick programming down the throats of kids rather than focus on teaching them the real skills they need at that age.

Re:Whats the point? (2, Insightful)

viewtouch (1479) | more than 6 years ago | (#19131285)

There are machines and methodologies designed to make neurosurgery less intimidating to neurosurgeons. There are courses designed to teach neurosurgeons how to use machines and methodologies less intimidating to neurosurgeons.

The kids will develop machines and methodologies to make neurosurgery less intimidating to themselves. They won't care for or have any respect for all the fears, excuses and mental obstacles that the old people have. They'll do it for themselves.

Re:Whats the point? (1)

Timesprout (579035) | more than 6 years ago | (#19131703)

There are machines and methodologies designed to make neurosurgery less intimidating to neurosurgeons. There are courses designed to teach neurosurgeons how to use machines and methodologies less intimidating to neurosurgeons.
Hello, what part of grade school level education did you miss here? Of course there is training for qualified neurosurgeons, just like there is training available for most qualified professions in their chosen arenas. I am willing to guess there are not too many school kids attending these courses, nor are they likely to be made part of the grade school curriculum.

The kids will develop machines and methodologies to make neurosurgery less intimidating to themselves. They won't care for or have any respect for all the fears, excuses and mental obstacles that the old people have. They'll do it for themselves.
Well if this is the case for a career vastly more involved and complicated than software development why is there a need to teach grade school kids coding? Can they not just do it for themselves? Or does your point not apply to lesser professions?

Re:Whats the point? (0)

Anonymous Coward | more than 6 years ago | (#19131321)

"It always concerns me when I see a bunch of geeks trying to stick programming down the throats of kids rather than focus on teaching them the real skills they need at that age."

Real skills they need at that age? like what! I'm sorry I can't go out and ride bikes with you, i'm busy with sandcastles 101.

The entire point of this project is to introduce programming concepts to children and make it fun. If they don't like it they become everyone else, otherwise they can start fostering a life long life for CompSci.

It takes a lifetime if not longer to figure out what people want to do. I don't understand why you would have your panties/man-thongs in a bunch over teaching kids things.

Re:Whats the point? (0)

Anonymous Coward | more than 6 years ago | (#19131349)

Are there courses designed to make...elite forces soldering less dangerous or stressful?

I know that touching the tip of the iron against your flesh or flicking bits of hit tin onto yourself can be pretty painful, but I've never considered it really dangerous. Perhaps that's because I'm not performing elite soldering though?

Re:Whats the point? (1)

DragonWriter (970822) | more than 6 years ago | (#19131423)

Are there courses designed to make neurosurgery less intimidating to kids or genetic research less complicated or elite forces soldering less dangerous or stressful?


No and yes, respectively. Actually, the military spends lots and lots of money to make soldiering, of every kind, less dangerous.

So what?

It always concerns me when I see a bunch of geeks trying to stick programming down the throats of kids rather than focus on teaching them the real skills they need at that age.


Stripped of the things like memorizing complex syntax rules, etc.—which is exactly what things like this try to minimize—programming is a mechanism for teaching generalized problem-solving and analytical skills, as well as a tool to provide applied lessons in other fields. It is not an alternative to teaching "real skills they need at that age", but a means of doing so.

Re:Whats the point? (1)

GrievousMistake (880829) | more than 6 years ago | (#19131475)

Making a computer solve arbitrary tasks for you could potentially become an essential skill in the future. How many people do you know that will regularly spend an hour doing some routine task like renaming files, adding or removing a newline at the start of each line, etc. Programming languages are becoming high enough level that it is at least conceivable to have basic programming skills be part of common education.
It's worth at least researching, in a 'what if' sci-fi scenario kind of way.

Re:Whats the point? (1)

GrievousMistake (880829) | more than 6 years ago | (#19131633)

Replying to myself here, but compare the value of having kids go, "Oh, this seems like a mesial temporal lobe epileptical attack" when they saw someone have a seizure, versus having them follow the tought "Man, my computer could do this," with "So I'll make it do it for me!"

Re:Whats the point? (4, Insightful)

Reality Master 101 (179095) | more than 6 years ago | (#19131557)

Thank you! EXACTLY what I was going to post. Screw programming! Certainly kids who are interested in that should be encouraged, but it's a VERY small minority that have a true interest. There are far more important skills that we should be encouraging.

Such as? How about true art training? Studies (which I don't have a link to) have shown that kids that are taught to draw realistically tend to do better in ALL subjects, probably because of the quiet concentration that it requires. Kids as young as 4 or 5 can be taught to do realistic art, but even a lot of art schools don't do beginning classes until 8 or 9, and the closest typical schools get is just letting the kids slap paint on paper without any instruction at all. Only gifted people learn to play piano by banging keys, and only gifted people learn to draw by scribbling. Yet anyone can learn piano through instruction, and anyone can draw realistically through instruction as well.

Sorry for the pseudo-rant on art classes, but I've been looking for art instruction for my young children, and it's very difficult to find. I finally found great book [amazon.com] and I'm doing it myself. :) Note the picture on the cover that was done by a non-gifted five year old, BTW.

Re:Whats the point? (1)

shystershep (643874) | more than 6 years ago | (#19132023)

How many grade schoolers will have day-to-day contact with neurosurgery or genetic research or soldiering? On the other hand, almost everyone probably has at least some contact with a computer every day.

And in any case, this isn't about "sticking programming down their throats" so much as it is about teaching problem solving and providing an outlet for creativity. It is about as close to real programming as a nature walk is to neurosurgery or genetic research.

Re:Whats the point? (1)

shystershep (643874) | more than 6 years ago | (#19132055)

That should read "every one" in the second sentence, not "everyone" (although that would make sense as well I suppose, just isn't the point I was making).

Re:Whats the point? (1)

qray (805206) | more than 6 years ago | (#19132107)

Back when I was in highschool (early 1980's) they were introducing BASIC. While, for the most part, kids were able to complete the course, they walked away with little in the way of real skills. Means skills they could use later in their professional life. Sure there were a few of us who excelled and went on into the software industry. But for most it's probably less used than the Spanish or French they learned.

The teacher of that class and myself discussed this and came to the conclusion that the language really wasn't what schools should be focusing on. What would have been more beneficial is using computer programming as an example of general problem solving. The ability to look at a problem break it down and decide how to solve it. And most would have been better served by teaching them how to use a word processor, spreadsheet, and database if you were going for practical computer skills.

Problem solving skills were really lacking in most of the students. This was evident when hitting balancing trig equations and anything else that didn't have a formula based solution that you could remember to solve the problem.

I think a relatively simple language would server such a purpose. It doesn't have to be all that practical either.

I started off with BASIC before I took that class. I had already realized it's limitations and short cummings and had moved on to Pascal by the time I took that class.
--
Q

On the other hand (0)

Anonymous Coward | more than 6 years ago | (#19131085)

"An anonymous reader passed us a link to an article on the Boston Globe's website, talking up efforts by MIT to make programming a non-threatening part of grade-school education. "'

This can be taken one of two ways. One it allows new recruits in a field that's hurting right now. Or it allows those not "doing it for the love" to meddle in a field that the old guard wouldn't like.

HyperCard (0)

Anonymous Coward | more than 6 years ago | (#19131109)

This stuff looks vaguely like the stuff I made with HyperCard when I was 10. Except this is a visual programming language, it's in colour, and has as style and feel well beyond the rap of the HyperCard erra (... scratchcratchratchatchatch)

Fun???? Fun...?????!?! (0)

Anonymous Coward | more than 6 years ago | (#19131117)

When I was a kid, programming "in a non-threatening way" was sitting infront of a TRS-80 hammering in about 12 pages of BASIC (which took roughly an hour or two) to get a terrible flying saucer to go hover up and then back down.... Yey! ..ugh..

I remember that. (1)

Pojodojo (930080) | more than 6 years ago | (#19131133)

I totally remember doing something like that with a program in Middle school. It had a turtle as an icon.

Not that I think it's a bad idea (4, Insightful)

zappepcs (820751) | more than 6 years ago | (#19131135)

but this is programming in the same way that updating your blog is creating a web site. Pedantic, I know, but important in view of how people feel about H1-Bs and lack of scientific/engineering graduates in the US. It will be interesting to see how much this acts as a gateway to more people taking up programing as a hobby or vocation.

Just think... (5, Funny)

spungo (729241) | more than 6 years ago | (#19131143)

Just think of all the Microsoft patents these kids can now infringe!

Re:Just think... (0)

Anonymous Coward | more than 6 years ago | (#19131627)

Smart parents will buy their kids a M$ license up front. I guess poor kids will get a free lesson in how the justice system works.

Kid Programming tool - RoboRally! (3, Interesting)

Dareth (47614) | more than 6 years ago | (#19131151)

Best way for kids to learn how to program is a simple game.

ROBORALLY! [wizards.com]

You "program" your robot with cards from your hand placed in a certain order. A turn proceeds and the cards are executed. If all goes well, you hit waypoints, and blast a few other robots to dust on the way.

Re:Kid Programming tool - RoboRally! (1)

WillAdams (45638) | more than 6 years ago | (#19131441)

Agreed. I was finally able to pick up a copy of this when Avalon Hill did the new edition for Wizards of the Coast and my kids have a lot of fun playing it.

William

Robot Odyssey! (1)

trveler (214816) | more than 6 years ago | (#19131835)

I learned programming, and loved it, playing a game on the Apple ][ called Robot Odyssey.

You program robots to help you solve puzzles by wiring digital logic components into circuits that control how the robot behaves. It's hardware programming, but the skills transfer nicely to software.

Man, that invisible-maze puzzle had me stuck for months.

There's a Java-based clone [droidquest.com] available. Be warned - it's addictive!

Clearly (5, Funny)

Dr. Smoove (1099425) | more than 6 years ago | (#19131159)

Logo and scratch aren't really relevant for kids to learn at a young age. This is what C and assembly are for.

Reminds me of Alice (2, Interesting)

EnglishTim (9662) | more than 6 years ago | (#19131163)

Reminds me a bit of the 'Alice' project from CMU - they seem to have a similar visual programming metaphor:

http://alice.org/ [alice.org]

Re:Reminds me of Alice (1)

Deagol (323173) | more than 6 years ago | (#19131605)

Alice is pretty decent for a gentle intro to programming concepts. More useful, IMHO, than the Turtle Logo I learned on at that age. My home schooled kids (8 & 11) use it daily as part of their work. After a while, I'm going to introduce them to a more "real" programming system with Phrogram [phrogram.com].

If anyone's interested in Alice, there's an archive of Alice summer camp projects here [calvin.edu].

Re:Reminds me of Alice (0)

Anonymous Coward | more than 6 years ago | (#19131871)

It is somewhat similar to Alice but with a couple of differences. Alice is 3D and Scratch is 2D. It is difficult to include your own images or sound files in Alice but very easy in Scratch. Scratch is also more light weight in the sense that it doesn't require the same hardware/memory/graphics that Alice does. That means that it runs better and faster on older computers that a lot of elementary schools have.
Also there are already several (3-4) textbooks available for Alice while Scratch has fewer teaching resources. I can see pros and cons to both.

Programming is fun to begin with! (4, Insightful)

Anarchysoft (1100393) | more than 6 years ago | (#19131203)

Being able to create nearly anything you want on a computer, thinking through puzzles, showing your creations to your friends, the peership of programmers, learning an endless stream of new things -- programming is tons of fun! I started programming when I was 5 years old thanks to an Apple IIe home computer and have never stopped since. When I first saw the BASIC and LOGO programming at elementary school, my impression was that they weren't do it in the 'fun' way at all: we were supposed to just copy down what they did and no there was no real opportunity for exploration. Having taught programming a few times since, it all kind of weaves together: learning programming is more of a journey of aided discovery than memorizing route information. I think there is a contrast between that and most teaching. It sounds like Scratch is more about the exploration, which is great. And, you know there are gazillions of CS students who would love programming to be more fun as well!

Re:Programming is fun to begin with! (0)

Anonymous Coward | more than 6 years ago | (#19131565)

The problem is that 2 hours of messing with LOGO would give you, say, two rows of identical houses you could call a city -- spend a week on it and you could even put moving sprites in it.

This looked a lot like to a videogame you'd buy a cartridge for, or spend money on in an arcade: you could see yourself doing "real" things.

Not anymore. How do you justify spending time on that versus, say, playing monster rancher or pokemon pearl?

Re:Programming is fun to begin with! (1)

Anarchysoft (1100393) | more than 6 years ago | (#19131707)

Heheheh.. this is true. Although, kids really love it even when its primitive as long as its created by them. It's like when kids make a storybook. Yes, it's far less polished than what they can buy and have seen before, but they fact that they made it themselves really makes them proud. And, it's amazing how resourceful kids' creativity is.

from scratch... (1, Funny)

Anonymous Coward | more than 6 years ago | (#19131223)

Hmmm, http://scratch.mit.edu/ [mit.edu] is now slashdotted.
I guess they have to build their webserver from scratch now!

BBC Scratch Article with Video (1, Funny)

Blue Stone (582566) | more than 6 years ago | (#19131233)

Re:BBC Scratch Article with Video (1)

megastructure (1014587) | more than 6 years ago | (#19131729)

Note the end of this article - it mentions Hackety Hack [hacketyhack.net]. This is a highly-recommended development platform, geared towards the younger programmers and beginners. It teaches Ruby and strives to be community-oriented and easy to use (lots of built-in functionality).

--

Eli

hmm (1)

mewsenews (251487) | more than 6 years ago | (#19131239)

what happened to logo?

Logo (1)

DragonWriter (970822) | more than 6 years ago | (#19131745)

what happened to logo?
The MIT Teacher Education Program is doing something along the same lines with a version of Logo: StarLogo TNG [mit.edu]; they've also released educational material centered around the older (2D, no "graphical programming") version of StarLogo [mit.edu] which is now an open source project.

Oh great (1, Funny)

glwtta (532858) | more than 6 years ago | (#19131273)

Now all they need to do is ship this on the OLPC, to make sure all US programming jobs are obliterated 10 years from now.

Looks a lot like... (2, Interesting)

6Yankee (597075) | more than 6 years ago | (#19131307)

...the original programming "language" for Lego Mindstorms. That one got me so frustrated with its limitations that I got stuck into NQC ("Not Quite C"), a "real language" for Mindstorms, as soon as I possibly could.

Some will never push the boundaries of Scratch, never discover its limitations. But for those who do, those limitations could well be exactly what drives them to try "real programming" - maybe using Javascript and CSS to push things around on a page. Who knows where they'll go from there?

Re:Looks a lot like... (1)

sobachatina (635055) | more than 6 years ago | (#19131523)

I volunteer at an elementary school teaching 10 year olds how to program using Lego Mindstorms. I agree that it has limitations that can be frustrating for adults. The NXT is very much better in that regard.

My kids never hit those limitations. I can teach logic, decision making, and most importantly the ability to divide a complex task into its primitive components.

They can, by the end of the school year, write programs that can respond to their environment such as to make a car navigate a maze. By our standards the programs are not complicated but I think for a 10 year old it is fantastic.

Using the graphical language lets me teach them how to think through a program and then represent it correctly. I think if I tried the same thing with any text based language we would quickly get bogged down in syntax and I would fail to teach them how to think like programmers.

No Linux port? (1)

darkeye (199616) | more than 6 years ago | (#19131315)

eh :(

Re:No Linux port? (1)

Basho (23847) | more than 6 years ago | (#19131901)

Yeah, I thought that was weird too. Once our old Windows XP machine dies I'm moving to Linux at home for sure, and hope my 5 year old will expect OSes to be open and as free from DRM as possible. Not so that she can think stealing content is the right thing to do, but to help her understand that there is a whole world of content that ISN'T designed to just sell more content; that there are a set of authors that WANT to share parts of their work for free.

While I think attempts like Scratch are a good idea, this just shows that there is still a lot of work to be done to move forward...

bit like squeak (2, Informative)

dominux (731134) | more than 6 years ago | (#19131323)

which my kids use. Squeak is based on smalltalk and is a gentle introduction to object oriented programming concepts

BASIC started it all (1)

jshriverWVU (810740) | more than 6 years ago | (#19131357)

I was a late bloomer, didnt start programming till my Senior year in highschool. We had an old 386 IBM with basic rom, later using quickbasic in dos 6.22, in the library. I use to go in there during lunch and play around. I always found it fun writing a little program that displayed random sized circles in random colors at random locations. "SCREEN 1" was my friend, and people seemed to find it cool. My BBS was king, man those were the days.

Python as a starter language (2, Interesting)

dudeX (78272) | more than 6 years ago | (#19131401)

I think these researchers should use Python and form a child friendly language derivative. It has clean syntax, and makes it easy to express a lot of hard concepts. Plus it has a live interpreter, which is like Logo. This way, they can learn programming in a easy environment and when they build confidence to do something more complex, they will have an excellent language to start from.

I've read about the Alice program, but I think it's a bit buggy, and a little too much stuff to learn.

Re:Python as a starter language (3, Interesting)

Anarchysoft (1100393) | more than 6 years ago | (#19131527)

I think these researchers should use Python and form a child friendly language derivative. It has clean syntax, and makes it easy to express a lot of hard concepts. Plus it has a live interpreter, which is like Logo. This way, they can learn programming in a easy environment and when they build confidence to do something more complex, they will have an excellent language to start from.
I've used Python to teach elementary kids and, while it was mostly great, it really lacked a good graphical/audio system. We tried turtle and Pygame, but neither of them were even as easy and fun as the old setpixel, drawrect procedural style of BASIC, pascal, etc. I wish Python had a nice simple drawing module that can with the standard build (and Tk doesn't count imo.) Did I miss it? :)

Re:Python as a starter language (0)

Anonymous Coward | more than 6 years ago | (#19132069)

Agreed. I learnt programming from QBasic, and while Python is on the whole a better language, the things I miss are the simplicity of doing graphics and sound (PC speaker style), instant topic help by pressing f1, and the debugger. I don't think it would be at all that hard to make a wrapper around PyGame, though, and one pretty quickly moved up to blitting sprites and such, which is a lot simpler in PyGame.

Re:Python as a starter language (1)

dudeX (78272) | more than 6 years ago | (#19132121)

I said that researchers should create a derivative of Python for children, since Python in its native form is a bit complicated for young children who don't know the basics.
Though I am glad to hear that children were able to be productive with Python despite its shortcomings in the graphics/audio component.

Personally, I learned some programming when I had an Atari 800xl and my brother showed me some BASIC. Later we got magazines like Compute! and started entering BASIC and assembly programs on my Apple IIc. Only when I entered college did I learn formal programming; I didn't understand BASIC fully (things like arrays and PEEK/POKE were over my head when I was young, and I was much more interested in games than trying to learn all the details.)

As an aside, I too am an Anarchist. :) A

Hackety Hack (4, Informative)

megastructure (1014587) | more than 6 years ago | (#19131417)

Similar to Scratch,

why the lucky stiff [whytheluckystiff.net] has started an amazing project called Hackety Hack [hacketyhack.net], in an attempt to solve the Little Coder's Predicament [whytheluckystiff.net]. It's a development platform designed for the younger coders and beginners, with an emphasis on sharing, community, ease-of-use (lots of built-in functionality), and cute cartoon characters. Currently it teaches Ruby in a series of fun lessons, but _why has stated that it might teach other languages in the future. A slick help interface comes bundled, as well as a Ruby cheat-sheet.

Come and join in the public beta testing. The forum is active and the people are nice. And don't forget to share your exciting hacks with the rest of us!

--

Eli

scratch? (0)

Anonymous Coward | more than 6 years ago | (#19131517)

isn't that what linux is writen in?

Logo? Meh. (4, Interesting)

SuperBanana (662181) | more than 6 years ago | (#19131583)

Efforts to make computer programming accessible to young people began in the late 1970s with the advent of the personal PC, when another programming language with roots at MIT -- Logo -- allowed young people to draw shapes by steering a turtle around a screen by typing out commands.

From what I remember of Logo, few people in the class "got" it. Everyone in CS harps on and on about how great logo is, but most of my classmates in grade-school just laughed when the "turtle" did stupid things, and asked the teacher for help (ie, to fix it for them.)

To say teaching Logo "teaches programming" is akin to saying that having your kid watch you inflate your tires is "teaching car repair."

Tomorrow on Sesame Street (3, Funny)

Dancindan84 (1056246) | more than 6 years ago | (#19131663)

Grover, "Hey kids! The word of the day is... Recursion! Brought to you by the color #CCCCFF"

Re:Tomorrow on Sesame Street (1)

Dancindan84 (1056246) | more than 6 years ago | (#19131811)

I guess a more generation applicable example would be:

Bob the builder, "Hey Muck, today let's build conditional statements! Kids, be sure to put on your error handling hats and boots in case something goes wrong. Safety first!"

Disclaimer: I know the character names because I have young nephews...

And to think... (0)

Anonymous Coward | more than 6 years ago | (#19131731)

...I was expecting everyone to have their own "script kiddie" joke.

dilbert already teaches kids about programming (0)

Anonymous Coward | more than 6 years ago | (#19131829)

and how to avoid working with a pointy-haired-boss

ob.. (0)

Anonymous Coward | more than 6 years ago | (#19131863)

I, for one, welcome our new youthful overlords.

Not exactly new... (1)

cmonkey_1973 (844398) | more than 6 years ago | (#19132047)

Drape, the Drawing Programming Environment, developed by Marc Overmars used to be a free, drag-and-drop logo derivative that was really rather good and for which I developed and successfully taught a 3 lesson block for 1st and 2nd year high school kids (11 - 12 year olds).

Unfortunately its no longer officially available as its being punted for £200 by an educational software company and in no way can you find a copy of the old, completely identical, free version by simply Googling it...

Used for terrorists! (1)

Nukenbar (215420) | more than 6 years ago | (#19132057)

I remember using Logo in grade school. For our final project, I remember designing two custom cursors to look like a spaceship. The spaceship took off, and then flew around for a bit. Then the front cursor turned into an exploding fireball, with the back half of the spaceship tumbling back down to the ground, and blowing up. I'm pretty sure I got an A.

I wounder what teachers would do if they saw something like this today...
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...