An anonymous reader writes "Chris Wilson reviews Kodu, the new XBox game that he calls 'Logo on Steroids.' The game allows you to build a world and program every object in it with an in-house graphical language, making the game a primitive example of 'reactive state machines' in a 'multi-agent concurrent system.' It sounds like what we call 'application specific integrated circuits' in engineering, where every line of code runs in parallel."
This is actually quite interesting. First time I came across state machines was in Max Payne level editor, which was something fantastic for a creator-minded / "lets try out what this shit can do" person like me. Now I'm mainly a programmer / game developer, but I always love to mess around with things and create fun things quickly just to see what they can do.
Too bad its mainly made for kids, there's not enough such toys for us adults:) However just out of the interest I guess I'll be getting this anyways (yeah, obviously for my kids that will born in ~5 years)
There are plenty of toys for adults, and you don't even need an Xbox for that. Just pick up a FPGA development board, and start coding stuff in VHDL or Verilog or something. Throw in a microcontroller, buy an oscilloscope and logic analyser, and you're good to go!
Too bad its mainly made for kids, there's not enough such toys for us adults:)
Actually there sort of is, it's called Garry's Mod.
If you link it up with a third party mod called "WireMod" you can do all kinds of crazy stuff in the game by wiring things together, besides what you can do outside the game with Lua scripting.
MindRover [cnet.com] came out about ten years ago with a programming model that sounds like this one.
It was really cool. The GUI generated code in an intermediate language ('Ice', C-ish I think), then compiled that to some kind of VM. You were never meant to see those guts though, and it didn't let you hack the intermediate files. It's a shame, it would have gotten a lot more geek cred, even if it shattered the level playing field:\
This, will probably be limited to the GUI parts, being on a console and all.
Omega was based largely on the '70s-'80s classic RobotWar [wikipedia.org]. There weren't even really any BBSs to speak of yet, so people used to snail mail their source code to each other to battle it out. Magazines also ran mail-in tournaments.
My first real encounter with programming was The Games Factory and later multimedia fusion from ClickTeam - it did a darned good job of teaching the concepts of programming, while being easy enough to get something very decent quickly and easily, but being multipurpose enough to be surprisingly useful (Multimedia Fusion along with MooSock and a little creativity was sufficient to crash remote windows machines running a particular firewall software...)
I was later taught a tad of VBS inside access by a frie
this came with a syntax error. My second program was
print "hello"
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer. I say put them in front of a blinking cursor, the apt ones will just get it.
Mine was something similar, but a few years earlier on a borrowed ZX Spectrum, and a few months later a BBC B+.
I don't know about you, but there were less "distractions" in my childhood - for example, only 4 TV channels, and I didn't watch that much. I spent a lot of time reading (books) - including under the bed covers with a torch when I wasn't supposed to be.
Modern kids have a lot distractions available - multi-channel TV (usually available in their rooms), PC or console based games, mobiles, the internet.. if we're going to get them hooked [xkcd.com], we might have to use something that's more obviously visually appealing, and easier to get into with the systems they already have around them. It might seem depressing (especially to those of us who already feel like old-timers before they've reached 35), but sometimes you have to bend to reality a little.
And on the positive side, they have python available to them to progress to. Beats the crap out of any form of BASIC on the elegance and features front..
I don't buy it. You're not much older than me, and I remember there being plenty of distractions around when I was a kid. We had TV, movies on VHS, NES, Sega Master System, and the great big outdoors where you could play MMRL(real life) RPGs like Cops 'n' Robbers and Cowboys 'n' Indians. I didn't pick up programming for a lack of other (presumably better) things to do. I did it because I had a fascination with figuring out how things worked. The thing my dad did that got me going was to buy a computer-
Personally I think parents do a great harm to their children by allowing them to have a TV in their room, or a cell phone just like all the other kids have, or INet Access in their rooms.
I respectfully disagree with you on that last point. I mean, each parent has to make their own decisions, yeah, but at the very least, let them access a whitelist of sites. You know, gnu.org, sourceforge, google's code hosting, their distro's package mirror, etc.
Sure, keep 'em off 4chan, but let them have the opportunity to learn.
Me, I spent most of my early childhood (80's) without access. Had an Apple II, and a few games. 90's came along, I got a PC, with a modem. It wasn't long before I was on every loca
Outdoor distractions are arguably more purposeful, teaching coordination, balance, navigation, all that stuff.
The two things that bother me about the half-generation or so below me (and probably lots of my peers who I just failed to notice, if I'm honest) are (i) the excessively social side to it, the constant need to be in touch, the complete inability to amuse oneself or develop a personal sense of security, and (ii) the completely artificial nature of most of the amusements, that teach absolutely noth
You've got to admit though, the idea of a young kid reading under his duvet whilst wielding a flaming brand is rather more dramatic and visually appealing;-)
Sweet. I started on a TI-82 sometime around then too. My first program was a Russian roulette program where the user had to pick 1-6 and if they picked the wrong number they died. Since I didn't know how to generate a random number, I hard coded the "kill" number in. After I figured out how to generate a random number I didn't look back. I agree, give coders a language/environment they can easily jump into and they will get it.:D
My first program was on a Commodore VIC-20 [wikipedia.org] in 1981, I was 8 years old at the time.
10 PRINT "HELLO "; 20 GOTO 10
What happened when I ran it just blew my mind and brought me 28 years later where I am now. Instead of wanting to be a fireman or a policeman like every other boys, I wanted to work with computers for a living. Great memories.
I think, a simple interactive language like that is still the best way for a child to learn how to program.
A young Linus Torvalds was given a VIC-20 as his first computer.
Its high accessibility to the general public meant that quite a few software developers-to-be cut their teeth on the VIC-20, being introduced to BASIC programming, and in some cases going further to learn assembly or machine language.
Personally, this attitude drives me nuts. Sure, the kids with a real natural love for it will pick it up no matter what interface you put in front of them. But you will hook MORE if you provide them something entertaining to get them interested. There are two major bars to clear: one to initially get interested in the profession and the second is to become a professional. I want the first bar low and the second bar high. There is plenty of time in the middle to filter out those people who lack the necessary
I agree completely. A typical child will get 10 years of music classes and 10 years of art classes as well as a shop class and a home economics class before they graduate high school -- not because people need these things later in life, but to expose them to these subjects hoping some may find interest in one of these areas. Yet when a student takes their first programming class, often its shoveled at them as a dry unpalatable set of instructions to memorize. Only a few of the very most interested end u
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer. I say put them in front of a blinking cursor, the apt ones will just get it.
Logo was my first brush with programming. I still have fond memories. Obviously, no one approach works for everyone and just because one way worked for you, that does not mean another might not work for someone else.
Even if people don't become programmers, just understanding the way computers work is invaluable. Where I work, I'm providing classes on how to do reporting off our CRM system. Do I expect every user to write their own reports? Not really. The hat I was hired in under is report writer and there'
I say put them in front of a blinking cursor, the apt ones will just get it.
Yeah, I take the same view about life in general. I put my kids in the jungle and let them fend for themselves. If my forefathers could survive there, my kids should be able to do the same. Although so far, none of them have come back to me, which is strange because I wrote my address down on a pair of dog tags around their neck.
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer.
I'm convinced that it does. Since I wrote my first line of code in FoxPro (yeah, I know, a weird choice of a first language) at 10, I kept trying to write a "proper" game. I never made it (though I did manage to write a few simple clones of basic arcane games back then), but I've learned so much in the process, and I was genuinely interested in pursuing any knowledge even very remotely related to the subject while I was working at it.
Even if it doesn't help people program, maybe it can help the less technically inclined to get a better idea about how software works. I got interested in programming because of games. When I saw games glitch, and saw programming limits showing through and tried to figure out why they couldn't achieve what they wanted, it gave me insight on how things worked. Through observation, I knew enough about making games that it made learning programming theory easier, and I was quickly able to achieve what I wan
Hmm... now that I think about it, I think you were correct. Which means that my young brain instantenously made not only one programming discovery (syntax), but two (variable substitution). Thanks for reminding me!
And it was all because of that provocative blinking cursor....
yeah, looking at the (current) wikipedia breakdown, I guess 'declarative' would have been the better choice. Though under declarative they only have 'functional' and 'goal-oriented' as members of that class, with the latter not yet having a wikipedia page yet. So I don't think 'functional' is too bad a choice. In fact, when I consider the classes of programmings from the best intuitive definitions of the words, I think 'functional' is better at conveying the meaning to people familiar with traditional im
Seriously, while a toy can help provide familiarity, it's not enough to learn the field well. A more powerful and useful set of tools for an X-Box are at http://www.xbox-linux.org/ [xbox-linux.org]. Enjoy.
If it is all this "programming" done with a controlpad (or joystick), it doesn't look like a real programming tool. Looks more like a level editor to me. Prove me wrong. BTW, the guy who wanted a mouse to program may be interested on this.
Out of curiosity, if I used the Xbox 360 on-screen keyboard to type a novel, would it not be a "real" novel? You know, since I used a gamepad to make it.
I think what he means is that is it more like the warcraft 3 level editor than programming, in which case I think the answer is "yes", although in reality it sounds like it is more like a 3d Klik and Play. For example, I don't forsee the ability to write to a file and read from a file or create complicated data structures as being features.
I really want Kodu just for some prototyping and maybe messing around (5€ is a nice price for that IMO) but it's only available in countries which have the community games available which doesn't include Germany (presumably because of the enforced age ratings that no community games will have so they'd effectively be 18+). I wish MS hadn't thrown it on the community games system and instead gone for plain XBLA.
I don't think these kind of approaches really teach programming. Programming is so much more about the structure of a whole program down to the minute details and everything in between, including the strict syntax.
These game-oriented things are great, but what one learns with them is basically just a certain way how logic how object and AI interaction can work in games. And the logic is input using a finely crafted UI.
You make programming sound like some elitist club that only a few can joined and only if they do it the right way. I would say programming is totally useless with the ability to do any sort of logic processing.
Any tool that allows to execute some arbitrary set of rules on a computing platform based on a series of log process would constitute as programming to me. Syntax is truly just semantics here. "Strict syntax"?? - are you a Python programmer or something? (sorry... some languages are just not s
That finely crafted UI is a strict syntax, it's just designed in such a way that you can't write anything invalid.
Is there really any difference between typing the keyword FORWARD followed by the argument 10 and dragging a FORWARD block and then moving a slider?
Personally I'd say it's analogous to the difference between a menu driven GUI and a command line. Both can accomplish the same things but the GUI might be more discoverable and thus easier to learn whereas the command line lets you get things done mo
It's elementary programming--as TFA states, you define rules for the behavior of objects and the interactions between objects.
While this certainly isn't as nitty-gritty as Logo, it still introduces kids to the ideas of determining conditions, and processes to undergo under those conditions, a very important concept in programming. It also introduces them to an object-oriented environment.
Maybe it doesn't "teach programming to kids," but with any luck it will get them interested and excited enough about this kind of thing to pursue it academically... and maybe even give them a very basic foundation of skills.
adults? (Score:5, Interesting)
This is actually quite interesting. First time I came across state machines was in Max Payne level editor, which was something fantastic for a creator-minded / "lets try out what this shit can do" person like me. Now I'm mainly a programmer / game developer, but I always love to mess around with things and create fun things quickly just to see what they can do.
Too bad its mainly made for kids, there's not enough such toys for us adults :) However just out of the interest I guess I'll be getting this anyways (yeah, obviously for my kids that will born in ~5 years)
Re:adults? (Score:4, Insightful)
There are plenty of toys for adults, and you don't even need an Xbox for that. Just pick up a FPGA development board, and start coding stuff in VHDL or Verilog or something. Throw in a microcontroller, buy an oscilloscope and logic analyser, and you're good to go!
Parent
Re:adults? (Score:4, Funny)
There are plenty of toys for adults
There are indeed.
Parent
Re: (Score:3, Informative)
Too bad its mainly made for kids, there's not enough such toys for us adults :)
Actually there sort of is, it's called Garry's Mod.
If you link it up with a third party mod called "WireMod" you can do all kinds of crazy stuff in the game by wiring things together, besides what you can do outside the game with Lua scripting.
http://store.steampowered.com/app/4000/ [steampowered.com]
Re: (Score:2)
I just rezzed an exploding dildo! Wooo!
Re: (Score:2)
Just say NO to Logo on steriods (Score:5, Funny)
Your turtle shrinks.
Like MindRover? (Score:2)
MindRover [cnet.com] came out about ten years ago with a programming model that sounds like this one.
It was really cool. The GUI generated code in an intermediate language ('Ice', C-ish I think), then compiled that to some kind of VM. You were never meant to see those guts though, and it didn't let you hack the intermediate files. It's a shame, it would have gotten a lot more geek cred, even if it shattered the level playing field :\
This, will probably be limited to the GUI parts, being on a console and all.
Re: (Score:2)
My First Programming (Score:2)
I was later taught a tad of VBS inside access by a frie
programming without typing? (Score:5, Interesting)
My first program was in 1991 on a TI-something:
print hello
this came with a syntax error. My second program was
print "hello"
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer. I say put them in front of a blinking cursor, the apt ones will just get it.
Re:programming without typing? (Score:5, Insightful)
I don't know about you, but there were less "distractions" in my childhood - for example, only 4 TV channels, and I didn't watch that much. I spent a lot of time reading (books) - including under the bed covers with a torch when I wasn't supposed to be.
Modern kids have a lot distractions available - multi-channel TV (usually available in their rooms), PC or console based games, mobiles, the internet
And on the positive side, they have python available to them to progress to. Beats the crap out of any form of BASIC on the elegance and features front
Parent
Re: (Score:2)
I don't buy it. You're not much older than me, and I remember there being plenty of distractions around when I was a kid. We had TV, movies on VHS, NES, Sega Master System, and the great big outdoors where you could play MMRL(real life) RPGs like Cops 'n' Robbers and Cowboys 'n' Indians. I didn't pick up programming for a lack of other (presumably better) things to do. I did it because I had a fascination with figuring out how things worked. The thing my dad did that got me going was to buy a computer-
Re: (Score:2)
Personally I think parents do a great harm to their children by allowing them to have a TV in their room, or a cell phone just like all the other kids have, or INet Access in their rooms.
I respectfully disagree with you on that last point. I mean, each parent has to make their own decisions, yeah, but at the very least, let them access a whitelist of sites. You know, gnu.org, sourceforge, google's code hosting, their distro's package mirror, etc.
Sure, keep 'em off 4chan, but let them have the opportunity to learn.
Me, I spent most of my early childhood (80's) without access. Had an Apple II, and a few games. 90's came along, I got a PC, with a modem. It wasn't long before I was on every loca
Re: (Score:2)
Not allowed. Health and safety.
Not now. There's a peadiophiddlerist behind every tree!
Better hope it's nothing to do with power generation, or you'll be charged as a terrorist.
Sigh.
Re: (Score:2)
The two things that bother me about the half-generation or so below me (and probably lots of my peers who I just failed to notice, if I'm honest) are (i) the excessively social side to it, the constant need to be in touch, the complete inability to amuse oneself or develop a personal sense of security, and (ii) the completely artificial nature of most of the amusements, that teach absolutely noth
Re: (Score:2)
"Torch" in British English = "Flashlight" in American English.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
My first program was on a Commodore VIC-20 [wikipedia.org] in 1981, I was 8 years old at the time.
10 PRINT "HELLO ";
20 GOTO 10
What happened when I ran it just blew my mind and brought me 28 years later where I am now. Instead of wanting to be a fireman or a policeman like every other boys, I wanted to work with computers for a living. Great memories.
I think, a simple interactive language like that is still the best way for a child to learn how to program.
Valtor
Re: (Score:2)
Forgot an interesting tidbit from the wiki page.
A young Linus Torvalds was given a VIC-20 as his first computer.
Its high accessibility to the general public meant that quite a few software developers-to-be cut their teeth on the VIC-20, being introduced to BASIC programming, and in some cases going further to learn assembly or machine language.
Valtor
Re: (Score:3, Funny)
"10 PRINT "HELLO "; ...and brought me 28 years later where I am now."
20 GOTO 10
You are still in the loop?
Re: (Score:2, Interesting)
Re: (Score:2)
I agree completely. A typical child will get 10 years of music classes and 10 years of art classes as well as a shop class and a home economics class before they graduate high school -- not because people need these things later in life, but to expose them to these subjects hoping some may find interest in one of these areas. Yet when a student takes their first programming class, often its shoveled at them as a dry unpalatable set of instructions to memorize. Only a few of the very most interested end u
Re: (Score:2)
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer. I say put them in front of a blinking cursor, the apt ones will just get it.
Logo was my first brush with programming. I still have fond memories. Obviously, no one approach works for everyone and just because one way worked for you, that does not mean another might not work for someone else.
Even if people don't become programmers, just understanding the way computers work is invaluable. Where I work, I'm providing classes on how to do reporting off our CRM system. Do I expect every user to write their own reports? Not really. The hat I was hired in under is report writer and there'
Re: (Score:2)
I say put them in front of a blinking cursor, the apt ones will just get it.
Yeah, I take the same view about life in general. I put my kids in the jungle and let them fend for themselves. If my forefathers could survive there, my kids should be able to do the same. Although so far, none of them have come back to me, which is strange because I wrote my address down on a pair of dog tags around their neck.
Re: (Score:2)
And it worked. Over a decade later, I'm still programming. I'm not really convinced that "game" based programming systems do anything to inspire the young programmer.
I'm convinced that it does. Since I wrote my first line of code in FoxPro (yeah, I know, a weird choice of a first language) at 10, I kept trying to write a "proper" game. I never made it (though I did manage to write a few simple clones of basic arcane games back then), but I've learned so much in the process, and I was genuinely interested in pursuing any knowledge even very remotely related to the subject while I was working at it.
Re: (Score:2)
Re: (Score:2)
Hmm... now that I think about it, I think you were correct. Which means that my young brain instantenously made not only one programming discovery (syntax), but two (variable substitution). Thanks for reminding me!
And it was all because of that provocative blinking cursor....
Need reading glasses (Score:4, Funny)
I first read the article title as How To Program Kids Via XBOX.
That would have gotten me right into console gaming.
SHHH! (Score:2)
Jeeze, don't let the cat out of the bag already! ;-) Nudge nudge, and all that...
Cheers,
it's called functional programming (Score:2)
No need to bring hardware design into this. I believe the term is 'functional programming'.
http://en.wikipedia.org/wiki/Functional_programming [wikipedia.org]
Re: (Score:2)
actually, from the video, its almost exactly declarative programming
Re: (Score:2)
And Etch-A-Sketch Teaches Art!!!! (Score:2)
Get the fu (Score:2)
wow (Score:2)
Certainly good memories with that program.
Isn't this just a level editor? (Score:2)
If it is all this "programming" done with a controlpad (or joystick), it doesn't look like a real programming tool. Looks more like a level editor to me. Prove me wrong.
BTW, the guy who wanted a mouse to program may be interested on this.
Re: (Score:2)
Out of curiosity, if I used the Xbox 360 on-screen keyboard to type a novel, would it not be a "real" novel? You know, since I used a gamepad to make it.
Re: (Score:3, Interesting)
Not available in my country (Score:2, Interesting)
I really want Kodu just for some prototyping and maybe messing around (5€ is a nice price for that IMO) but it's only available in countries which have the community games available which doesn't include Germany (presumably because of the enforced age ratings that no community games will have so they'd effectively be 18+). I wish MS hadn't thrown it on the community games system and instead gone for plain XBLA.
Teaches game logic, not programming (Score:3, Insightful)
I don't think these kind of approaches really teach programming. Programming is so much more about the structure of a whole program down to the minute details and everything in between, including the strict syntax.
These game-oriented things are great, but what one learns with them is basically just a certain way how logic how object and AI interaction can work in games. And the logic is input using a finely crafted UI.
Re: (Score:3, Insightful)
Any tool that allows to execute some arbitrary set of rules on a computing platform based on a series of log process would constitute as programming to me. Syntax is truly just semantics here. "Strict syntax"?? - are you a Python programmer or something? (sorry... some languages are just not s
Re: (Score:3, Insightful)
That finely crafted UI is a strict syntax, it's just designed in such a way that you can't write anything invalid.
Is there really any difference between typing the keyword FORWARD followed by the argument 10 and dragging a FORWARD block and then moving a slider?
Personally I'd say it's analogous to the difference between a menu driven GUI and a command line. Both can accomplish the same things but the GUI might be more discoverable and thus easier to learn whereas the command line lets you get things done mo
Re: (Score:2)
You could say the same about ZZT.
And I'm sure I'm not the only one on Slashdot who became interested in programming thanks to ZZT.
Re: (Score:2)
Re:This isn't programming. (Score:5, Funny)
programming thanks to ZZT
Cos every girl's crazy 'bout a C#-dressed man.
Parent
Re:This isn't programming. (Score:5, Insightful)
While this certainly isn't as nitty-gritty as Logo, it still introduces kids to the ideas of determining conditions, and processes to undergo under those conditions, a very important concept in programming. It also introduces them to an object-oriented environment.
Maybe it doesn't "teach programming to kids," but with any luck it will get them interested and excited enough about this kind of thing to pursue it academically... and maybe even give them a very basic foundation of skills.
Parent
Re: (Score:2)
IWhat games are kids supposed to create? It's a tool without a purpose.
And the purpose of Logo was.....?
Re: (Score:2)
Logo was created to teach kids procedural programming, so that they could escape the tyranny of line numbers.