MIT Media Lab Making Programming Fun For Kids
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."
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
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
You mean BASIC isn't fun? It was fun for me... but maybe that's why I'm reading Slashdot now.
Yeah make it non-threatening so that they won't even have an inkling of the Hell that is computer science.
A Good Troll is better than a Bad Human.
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.
Under the influence of Post-Cyberpunk Gonzo Journalism
not frightening to children....or women for that matter :P
Monstar L
The big question is, how well can I use it to draw a turtle? LOGO anyone? ...anyone?
"Nu ar det slut."
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
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
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.
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.
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
"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.
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)
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 totally remember doing something like that with a program in Middle school. It had a turtle as an icon.
arrrg, (like a pirate)
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.
Support NYCountryLawyer RIAA vs People
Just think of all the Microsoft patents these kids can now infringe!
Best way for kids to learn how to program is a simple game.
ROBORALLY!
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.
I only look human.
My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
Logo and scratch aren't really relevant for kids to learn at a young age. This is what C and assembly are for.
"If you plant ice, you're gonna harvest wind."
Reminds me a bit of the 'Alice' project from CMU - they seem to have a similar visual programming metaphor:
http://alice.org/
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!
Hax-fu?
Hmmm, http://scratch.mit.edu/ is now slashdotted.
I guess they have to build their webserver from scratch now!
BBC Scratch Article with Flash Video
Corporation, n. An ingenious device for obtaining individual profit without individual responsibility. - Ambrose Bierce
what happened to logo?
We can give birth so learning a computer programming language is nothing by comparison....
2 cents,
Queen B.
HDGary secures my bank
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.
sic transit gloria mundi
...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?
eh :(
which my kids use. Squeak is based on smalltalk and is a gentle introduction to object oriented programming concepts
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.
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.
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.
why the lucky stiff has started an amazing project called Hackety Hack, in an attempt to solve the Little Coder's Predicament. 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
isn't that what linux is writen in?
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."
Please help metamoderate.
I could teach my kids a decent sorting algorithm for their room!
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
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.
Grover, "Hey kids! The word of the day is... Recursion! Brought to you by the color #CCCCFF"
"Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
...I was expecting everyone to have their own "script kiddie" joke.
MIT Media Lab made Programming Fun For Adults
and how to avoid working with a pointy-haired-boss
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 available. Be warned - it's addictive!
... is whot bwings os tugevza tsuzay.
"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.
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
I, for one, welcome our new youthful overlords.
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.
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...
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...
Wasn't Forth with Turtle Graphics supposed to be fun for grade schoolers?
Athiesm is a religion like not collecting stamps is a hobby.
Anyone else remember the turtle?
This
Wow! The guy is multi-talented. So when he's not playing professional football he's developing educational software. And I always thought of most pro footballers as... ...well, barbarians, basically.
You mean it's the same as providing exposure and showing that it's an activity anyone can do if they learn how, rather than this menacing Thing on the horizon?
Are you going to have your four year old kid change the tires him/herself? How about not even letting them know that cars need repairing, keeping them in the dark until they're old enough, then making them learn it?
It makes kids aware that it exists. It's an important part of education.
"I'll drag in a drum sound so I can make a phat beat." Yeah, see, your target audience is not tweens (from apparently 1991), its the people that educate them, and frankly that promo-video will turn them off in droves...
I would think that a more practical solution to the problem of not enough people programming is to try to eliminate the pop culture connotation of having a career as a programmer. I think that you don't need to make programming more fun, there are many games that provide SDKs (like the Source engine) and some that offer simple scripts that you can write (like the scripts attached to entities in Morrowind). the problem is that too many people have a view of programming that has been created by movies such as Office Space, as much as we love it, it gives the perception that programming is a boring dead-end job. Perhaps they should do with programming what TV stars have done with other careers, and create a positive view of programming, and shine light on the problem solving abilities and analytical skills that learning CS can develop.
I have to agree with this. I remember playing with Logo in elementary school. It was fun to make the turtle move around, but I don't ever recall getting an understanding of the programming process. Later on in jr. high I was in a class where we actually had to do some kind of programming project. Students were grouped into threes and had to come up with some kind of program by the end of class. I don't really remember learning any programming concepts at that time either, but at least there was some critical thinking involved.
--Erik
Programming was fun when I was kid. It became un-fun when I started doing it for money. How about they fix that?
Raise your hand if your first introduction to programming was on some flavor of interpreted BASIC
Instant feedback and low level control were a pretty fundamental appeal. Dragging and dropping a sound object into a window, pushing a button, and having it pop out the other end playing a song is less gratifying than getting some discordant squeal out of the PC Speaker with a line of code you had to hack out on your own. Change the line, a different discordant squeal! COOL!
LOGO was fun, sure, but how much more fun was it when you figured out you could put your own pixels where ever you wanted?
The key captivating factor of programming wasn't that it was easy to make constrained cartoonish crap but that you could do anything. Maybe cartoonish crap is what you originally wanted to do when you first sat down with an intent to learn you a program... but the fact that there's a limitless amount other stuff to do diverts you.
Simple Machines in Higher Dimensions
The kids better hope Microsoft doesn't sue them if their new software infringes on any patents.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
Hey kids. Help Dorba deliver XMiLey the inventory list through the enchanted net, over the message queue to the ice cream distribution center. Dorba gets to pick XMiLey's clothes to make sure he will fit in with his other friends.
Dear client, now you too can join the kid-sourcing revolution. Our kids will work flexible schedules in exchange for bedtime and TV privileges.
I'm an 18 year old just finishing his last programming courses in high school, so I can give a slightly different perspective of this. I hate to be cocky, but simply put, I'm better at programming than most of my friends. Many people I know are interested in taking programming courses but are daunted by the pages of code they have to deal with. The concepts of programming logic are hard for some to handle, even if the interest is there. I started with Visual Basic then moved on to Java and then AP level Java. My teacher is one of the leaders of comp sci teaching in my county, so he loved to use methods such as Jeroo or Alice, both similar to Scratch, to teach programming. The reaction from the students who were struggling in the class was outstanding. Seeing a little arrow move around picking up flowers or seeing a Turtle Prince dance and change colors totally change the way they look at programming. Having something like Scratch in middle schools (I think elementary may be a little early) would be awesome. Classes like those are optional, and it's not "forcing programming down kids throats". Having a basic knowledge of how programming works will spark potential interest in computers as a career, especially in young girls who shy away from the stereotypical nerd programming classes. Something like this will definitely benefit our schools.
Just discovered this one last week @ JavaOne;
http://www.greenfoot.org/
Seems to have similar goals, it is very simplified and the focus is to teach programming via creating simple games.
- sigs are for wimps.
According to the BBC article on Scratch:
Umm... what's wrong with some parts of life being unforgiving if you don't get them right? It's called learning and is related to discipline, trial-and-error, problem solving, etc.
$nice = $webHosting + $domainNames + $sslCerts
Graphical programming languages have been tried for decades. They have never panned out well. I know you are totally sure that graphical programming is the way to go, and that one day the right graphical language to replace all those failures will vindicate your belief, but consider the possibility that maybe you're wrong. Maybe we're more adapted to specifying algorithms with "language" (text programming) than with graphics.
I just downloaded Scratch and in a few minutes made a picture of a pig move around the screen while rotating and making fart noises. Honestly, this is all I really want out of any programming language.
You make an interesting point, one that I've often considered.
It is WAY too early in the phenomenon known as software engineering for anyone to draw conclusions about what is not possible. And it is WAY too useless for anyone to try to explain to us what the people of the future will never be able to do.
People are graphical - this is why programming MUST eventually become graphical. It's that simple. And inevitable.
When I was 9 I thought Logo was childish crap and only wanted to learn Basic. Somehow I think all children who are meant to become programmers will feel the same.
Here in the Federal University of Santa Catarina (Universidade Federal de Santa Catarina - UFSC) they have something like this: it's a language that CS grads learn at the beginning of the course. You can find more about it here: http://twiki.edugraf.ufsc.br/bin/view/Telis/WebHom e (in Portuguese)
Many of the students make games with it (it runs on top of a Java environment). It's quite powerful, with network communication and many important programming concepts.
I've used it, and I made a simple graphic editor with separate R-G-B color picking and stuff :)
http://derkosak.blogspot.com - That's a blog.
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.)
Yes, one of the big failings of Logo is that although it had the potential to help make kids smarter, it couldn't do anything about the teachers.
Disclaimer: I wrote Logo for the C64, Apple II, and Mac.
At a brief glance, Scratch looks like it's generally aimed at a young and inexperienced audience. For kids who graduate from that and want to try out some more advanced concepts, take a look at the game MindRover. I first ran across it because it was tagged as the spiritual successor to my beloved old Robot Odyssey. (How many of us cut our teeth on that one?) MindRover doesn't directly teach object-oriented programming, but it takes little insight for an educator to relate one to the other, giving young learners that much-needed concrete example to help them grasp OOP's trickier concepts.
Is it free software? Where can I get the code?
Welcome to the land of the free...pay toll ahead...no photography...please open your bag...
I started in applesoft basic and moved to logo.
Logo was underestimated, it wasn't just for turtle graphics, you could work in Cartesian coordinates and make functions. You could exec strings. One could do a whole lot in logo that was painful in basic. Unfortunately, the logo didn't advance much past the old apple ][ version. I never looked into attempts to add object like support-- but if they simply took some lisp ideas and used OOP to make it easier, logo would still be in use. I would have loved to have the higher level functions/objects be code I could look inside and see how it worked. (one time I remember rewriting FD,RT,LT,BK after I figured out how they worked-- I could have learned that math early if they did that.)
The lego hook up was wonderful and while limiting for advanced students - for most kids they couldn't even utilize gears! At least the typing kids had from copying was typing experience.
I have not been happy about modern attempts to replace logo and lego with mouse-only and pre-made solutions. They eliminate too much of the basic problem solving and experiences while limiting creativity with their single use parts. Have you seen the new lego stuff? They have non-lego shaped parts that make an erector set look more consistent. (and what the hell is it with their sensors? I could fit 3-4 optical sensors in the space of their single button sensor.)
I would prefer an educational language to be more math like, so kids learn to be more comfortable with math notation. For me, the way to math was thru programming, otherwise I was and still am uninterested.
Democracy Now! - uncensored, anti-establishment news
I think that as much as computers are becoming more a part of our lives it is important for children to have a basic understand how they work, and the earlier the better.
Years ago I was a "Lab Tutor" at a university that required every business student to take a BASIC class. It was astounding that intelligent adults had no clue as to what was going on inside that cream white box.
A favorite quote was from a student that had used the variable "address" a couple of times then got tired of typing it and started using "addr" instead. I was trying to explain to him why "address" and "addr" weren't the same variable and he said "Duh, EVERYONE knows that addr is the abreviation for address!"
Ah, there's nothing more exciting than programming. You get all the fun of sitting still, being quiet, writing down algorithms, paying attention...programming has it all.
Your courageous and selfless spelling corrections have made me a better person.
I'd like to stand up for Logo a bit. I got my start programming back in 1982 or so with Logo, when I was 12, and I loved it. I don't think it would have gone as well if I was tossed into C or Fortran or something similarly serious (and difficult to start off in).
Have you ever watched a game like Final Fantasy being built? It is not built with C++. It is built with proprietary, secret graphical programming languages that are more valuable than the games they create. I have been using graphical programming languages for 20 years. I think the difficulty here is your unnecessarily restrictive definition of graphical programming.
When I first read about Scratch, I thought of Prograph.... Looking at the video, I thought of a fancied up version of iShell or one of the presentation builders.
Problem I've seen w/ all of the above is that they make programming excruciatingly slow and clumsy if you know what you're doing, and don't help if you don't: there is no evidence that programming can be taught in the absence of a (probably genetic) talent for it. iShell tried hard to empower content producers to script their work, and failed like all the others: the target users were still helpless, and the programmers they hired usually preferred the much more complicated, non-graphical Lingo because they got their work done faster.
For small children starting from ground zero, it might make sense. Users old enough to grasp Python (for example) will quickly either get frustrated and move on to a "real" productivity-oriented programming environment, or find out they can't understand what's going on no matter how many tutorials they do, and give up. Those who do have the gift, though, may as well skip the first step and the rest will find out where they stand quicker if they try a "hard" language to start with. Beginning programming classes are (or should be) about separating the sheep from the goats as efficiently as possible.
Alrighty guys, here's what we're gonna do:
We're gonna have a competition to see who can make the most utterly complex (but useful) program out of Scratch. Doesn't matter if it's already been done, but it has to be complex by nature; it doesn't count if you take 10000 lines to print out Hello World. Winner gets bragging rights for a year. After that, the copyright license ends.
Google: "All your data are belong to us."
This seems to suck in several ways: no Linux version, no source code, no smooth path from simple concepts and direct graphical programming to the full range of what a modern programming language can do and the libraries and power available for modern programming languages.
Rather than invent a new language, I'd like to see an approach that implements high-level abstraction layer using some existing language, e.g. Ruby and create an easy to use IDE for it. That would make programming easy and fun when kids/beginners start with it and would still be productive and fun when they have worked for a longer time with the language.
It concerns me when people think that the entire point of education is to teach a fixed set of essential skills - especially at a young age. Yes we should be doing that, but would should also be exposing students to all sorts of different and interesting occupations and pursuits, to try and experiment with. Sure, not all of them will like all of the subjects - but for each subject there will be a handful of students for which that class will be the best fun they had in school. If you don't expose kids to anything beyond the essentials, then not only will school be dreadfully boring, they will never have the opportunity to form opinions about what they are interested in and what they enjoy doing.
Just teaching "the three Rs" in school worked fine when your occupation was handed down to you by your parents, and you learned everything else you needed to know through apprenticeship, but those days are long gone.
IT is hellish bullshit.
CS is pretty, applied math. And the culture of computer scientists is creative, inventive, and intellectual. Hell? No!
(This distinction, others have pointed out before me.)
More, some exposure to CS teaches people how to think. Before I started to program, I was horrendous at math. Every standardized test I ever took told me I should be a writer. But by turning logic into play, the computer changed everything. Sure, I can still barely add. But I'm going for a Ph.D. in theoretical control -- which is essentially an applied math field. Because, give me a calculator, and I can do pretty cool stuff.
How many people "hate math" because they think it's all about adding up numbers? Tons! (Including, unfortunately, most of the elementary school teachers who teach math). That's not what it's about! Computer Science is beautiful. It changed my mind, and my life: That's no overstatement.
My first language, as a child? QBasic.
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.)
I fail to see how that's a problem. Not everyone will understand computers, just as how I failed Calc twice in college. I remember making an alternative to the standard method of drawing a circle( repeat 360[fd 1 rt 1]) by doing a pen-up, fd 50, pen down, fd 1, pen up, back 51, rt 1, and repeating 360 times. A much more flexible circle function!
Now it's over 20 years later and I'm programming in Python on a daily basis at my job. I'm happy.
This looks almost exactly like an extension to Squeak EToys. .zip are even similar to what you would find with a Squeak distribution: .exe (the runtime) and a .image (the content)
Very similar interface.
Heck, the files in the
An
Though I'm struggling to see any mention of Squeak anywhere on the pages. Maybe I'm wrong...
I think we should first be concerned about the math that is taught in secondary schools in the U.S. If we are considering computer science to be just as important as physics, literature, etc (which I believe it is), then we should teach more discrete math so students have a better background. It bothers me that advanced high school students can spend 4 years on algebra, geometry, and calculus, and they only get a basic treatment of set theory, with little or no number theory, logic, etc. I bet most high school graduates wouldn't even recognize something as being math if it didn't have numerals and/or a coordinate system. So I think we should replace a year of advanced algebra/pre-cal/calculus with a year of logic and discrete math in secondary schools.
Have you used xturtle? It is very similar to turtle, with some really handy additions. My son and I have made games and graphics with it.
I think the difficulty here is your unnecessarily restrictive consideration of what kinds of programming tasks exist in the world. Sure, you can use graphical methods to flowchart simple scripting actions, or solve systems of differential equations, or other specialized tasks. As a general purpose programming language capable of writing web browsers, operating systems, hydrodynamic models, 3D engines, parsers, or whatnot — comprising the equivalent of thousands to millions of lines of code forget it.
I agree. I've tried using Alice and Squeak.
On these GUI programming interfaces I have found that there are things that I just can not do, because it just isn't there. Whereas in Python, I can always tell the programmer what library to include, and it happens.
Example: Squeak is very weak on user interaction. It is hard to make fun games, and if you're not programming games, what's the point?
And Alice is written in Java. No wonder it is so slow and doesn't work right!
Also as you said, they are a lot to learn, especially for an old codger like me.
I have had pretty good success with xturtle for python.
Almost forgot!
panda3d works very well
and the kids really love it,
though it does require more advanced programming
concepts.
Obviously, lots of people are talking about the utility of this whole "programming kids" concept. Well, here's why it's useful: self-optimization and greater availability.
The purpose of these written programs is to make life easier. We programmers are tool builders, however, we can't capture everything at all levels. So you get tools like VBA and macro languages that let the next level of people use some of the tools.
So when we teach kids basic programming, we're teaching them how to use these tools. This is like shops class or cooking class or music class and I applaud the effort. We don't need to create a generation of programmers, in fact, that's not even the point. Having people who understand basic programming concepts is empowering to both software writers and to software users.
Programmers like to bitch about users "not knowing anything" and we're always trying to make things more "user-friendly". But at some point, users must understand the limits of the computer and the general processes. Teaching programming seems like a wonderful way to start bridging this gap.
I'm sure somebody with a bright MBA father will figure out that they can
spare the child the challenges of learning anything themselves and
maximize the fun of specifying what they want the program to do;)
*** Sigs are a stupid waste of bandwidth.
WATFOR was what we were taught in high school. I learned WATFOR (and F66) using punched cards and terminals on the Amdahl 470 mainframe at UF during the summer of '96 (NSF sponsored summer science program for students in FL). The work I did with SAS also helped (working with grad students on PH of saturation problems).
Wahts up with the spel cheker? Trying to improve thw qualety of slashdotey?
A grease pencil and a pane of glass - that's your idea of information automation and the application of technology to create efficiencies in the food & beverage industry? You should get into comedy.
Well, obviously you need a good teacher if you expect to teach anything. A tool alone doesn't teach. But in the hands of oa teacher who understands it, Logo is a great tool for teaching everything from beginning programming to AI and natural language processing. Read Seymour Papert's 1980 book Mindstorms for a description of how Logo worked when it was used well, as opposed to how it works when used poorly.
and what libraries does this code use (i.e. how big will the program become)?
is the PRINT procedure buffered (i.e. faster) or unbuffered (i.e. uses less ram)?
is the string "Hello World!" a list (faster manipulatable) or an array (less ram, faster nonlinear access) of characters?
what charset do strings use?
can I overload the operators to get useful classes?
could I replace the libraries with own asm code to make the programs smaller/faster?
and is this an LR(1) grammar? missing delimiters (like ";") might screw up the language, the parse-trees might not be unique...
yes, basic is convenient, simple and intuitive... for beginners...
to professionals it's just a child's toy
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
Not only Alice, but AgentSheets as well, which also features a visual programming approach.
http://www.agentsheets.com/
Disclaimer: In 2004-6 I worked as a 'Teaching Fellow' as part of an NSF funded grant providing computer science resources in local high schools. [ http://triplets.cs.memphis.edu/ ] As part of that work we introduced AgentSheets into several classrooms.
The Norton Anthology of English Literature, 4th Ed., Vol 2
Logo's greatest weakness, in my experience, is it relies on understanding geometry, and specifically angles. I was introduced to logo at age 9, in the classroom. I didn't have the damndest idea that the sum of the angles in a triangle was 180 degrees, therefor it was impossible for me to even construct a triangle, much less any more complex shapes.
They don't even teach geometry til age 15 in California.
As a result, I didn't learn a damn thing from logo. I ended up teaching myself hypercard a couple of years later, and wrote several hypercard stacks as solutions for projects in math class. Then I picked up "C for dummies" at 14.
Before /. posted this item, I had just read a letter to the Scratch team asking Where is the Source? Apparently, the developers got a $2 million grant to produce Scratch, promising in its grant application that it would release code throughout development, but instead closed the project to its own developers and will release the source only later this year. (The link includes a response-letter from Mitchel Resnick, the MIT team leader.) I dunno, not a big deal, but Scratch is an open source project, so stay tuned, ye developers.
I've been teaching computers for the past 4 years to middle school students in Japan. Here are the programs I use:
:) I use the program Max's HTML Beauty for my HTML / CSS / JavaScript unit. It is also freeware and can be downloaded at http://www.htmlbeauty.com/.
Grade 6: Drape
Grade 7: Gamemaker
Grade 8: Phrogram (formerly KPL)
Grade 9: Javascript
The first two, Drape and Gamemaker, are simple-to-use drag-n-drop programming languages. Drape is no longer freely available, but you can download it, and lesson plans, from my homepage, http://www.christianthompson.com?For_Teachers/.
Gamemaker is freely available (shareware with just a few advanced features crippled). It can be downloaded at http://www.yoyogames.com/gamemaker/
Phrogram is a BASIC-like programming language that has a number of built-in function for doing things like drawing and manipulating sprites, which as we all know is what students really want to do! Strangely, I found that they're not super-keen on converting miles to kilometers! You can download it for free at http://www.phrogram.com/.
If you don't know what JavaScript is, stop reading now, please.
If any teachers out there have any other ideas, would like more information on my curriculum, or wish to collaborate on lessons, please feel free to contact me at christian[at]christianthompson.com.
Cheers,
Christian
An invasion of armies can be resisted, but not an idea whose time has come. - Victor Hugo
those blocks he puts together look exactly like the blocks used in the graphics perl programming environment called SProg
After watching the video on the frontpage, this sort of reminds me of Hypercard (and HyperStudio).
Anyone else nostaltic of Middle School Technology classes as me?
My page.
If I had mod points you'd get them for insightful and/or informative. The task of developing new technology is like walking through a forest - a step at a time, with the way ahead always becoming clear only because you are taking steps toward what you can see.
Anybody who can correctly answer a rhetorical question deserves mod points !!
Yeah make it non-threatening so that they won't even have an inkling of the Hell that is computer science.
The whole concept that programming is 'threatening' just means there's a bad teacher.
When I took an "Intro to Computers" class in 4th grade, the teacher had a VIC-20 and forgot to bring his LOGO disk. So he taught us VIC-20 machine programming instead. We all understood it, so in subsequent weeks he just didn't bother bringing LOGO.
We were "too dumb" to know that was too hard for us and he was a good teacher.
Kids aren't as dumb as we'd like to think. Treat them with respect and teach them patiently and they're capable of amazing things - no dancing turtles required.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
simpleJ emulates a simplified computer to allow teenagers to learn the fundamentals of programming by writing retro-style video games. The software was writen in Mexico, so most of the documentation is in spanish (at www.simplej.com).
Squeak looks like a simple paint program, but painted objects can have properties and behaviors. The Drive a Car tutorial shows the basics of Squeak. Squeak.org provides much more detail about how Squeak extends Smalltalk. Squeak is free and supported by a large user community.
ToonTalk presents a 2 1/2 dimension cartoon world with animated tools and characters that can learn activities. Very weird. ToonTalk 2 costs $25 and has promised version 3 for over a year.
Are they easier then Batch files? Qbasic? C?
They were not programmable or network transparent, they did not make it easier to interface with software and hardware systems, did not let you make a reservation at your favorite restaurant and order a prime rib dinner or let you make a video phone call to your mother in New York. They did not let you browse a catalog of 100,000 works of art or let you enjoy them in an animated stream to participate in a virtual race with 3 friends on a 65" display.
You're talking about user interfaces here. Source code is a description of an extraordinarily complex system, and so pictures aren't really suitable. People will claim that blueprints and engineering diagrams are analogous, but they are not; they are orders of magnitude less complex than modern software systems. If a picture is worth 1000 words, then the system I work on every day would require 2300 pictures, and it's pretty hard to see how that could be feasible.
Source code is a document describing how a computer can achieve something. That document, in my case, is pretty big. If it were a novel, it would be over 9000 pages long. People don't use pictures to write novels.
Source code works by defining certain words and certain rules by which the software operates. In that way, it's not altogether different from a legal code. People don't use pictures for legal codes.
If you can show me an executable diagram of, say, quicksort, I might change my mind.
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
As touted @ http://www.youtube.com/watch?v=2OJ9Jdxk-z4
I'd like to refer you to Aardappel, a graphical language. I consider this a very interesting language, and the guy who designed it is very smart. To me, its one big weakness is that it is a graphical language. In fact, in the dissertation, the author actually uses an "equivalent textual representation" of the language, and yet somehow doesn't realize that this is a big flashing red sign that says "my graphical language is impractical". I think the textual representation is a very interesting language, but the graphical representation doesn't even pass the laugh test.
In fact, this is where I get the idea of a graphical representation of quicksort. The image on that page is exactly that. Tell me if you really think that's an intelligible description of quicksort, compared with this one written in Python:
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
First, I think this and the parent are semiofftopic - this article is about languages that are EASIER than BASIC. But that's never stopped me before.
For an intro to programming for, say, someone with little background but reasonably good at abstract concepts. Having been through this process several times, I think once people are exposed to the web, web languages are a natural choice - and in many ways the distance to being able to do something very marginally useful is much lower than with most programming languages.
If I was going to pick an HTML-scripting (PHP-like) language, I'd definitely pick CFML (eg ColdFusion) because the syntax is much more naturally like HTML. (The CF developer edition is free.)
But the problem with a PHP-like language is that you have to at least learn PHP + HTML + CSS. And HTML rules and CSS rules, esp in a couple browsers, are themselves weird, but each differently weird. And then for most things people actually do you also need SQL and/or JavaScript - or at least you do to do things the way all the examples you're looking at do. You have to learn this whole stack of basically conceptually unrelated things to get anything done.
Recently I've started trying to introduce people to Flex instead. The Flex2 SDK is free, the MXML markup language is syntactically consistent and also relatively brief while at the same time being very powerful. You can also learn Actionscript if you want to do more hardcore stuff...
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
That's intriguing. Is there more info available?
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
My research group at the MIT Media Lab developed Scratch. I just got a chance to read this thread, and thought I'd provide a little background on the project...
Scratch is deeply influenced by Logo, but aims to go beyond it in (at least) three ways:
I'd encourage you to check out the Scratch website to download the software and see what other people are creating with Scratch. There's already a great variety of projects created by the Scratch community, including strategy games http://scratch.mit.edu/projects/bmarcell/1137, science simulations http://scratch.mit.edu/projects/jay/495, paint programs http://scratch.mit.edu/projects/fab_programmer123/ 4645, and animated stories http://scratch.mit.edu/projects/vally/1224. If you have suggestions, please share them on the Forums on the Scratch website. Thanks.
Here you go, Patrick. Check this out.e ar-old-ceo-highlight-of-tiecon/#more-12504
http://venturebeat.com/2007/05/19/elementeos-13-y
This 13-year-old kid has developed what I would call a graphical language which is designed to teach knowledge of the chemical elements and how they interact with each other. I don't think he realises that this is exactly what he's done - he only wanted to create a better way to learn this subject - but it looks to me like there's no question he's achieved the development of a special-purpose graphical language. If it turns out that people can learn this aspect of chemistry faster and more thoroughly, and that they can remember what they learn longer, then this validates one of my assertions, that we learn faster when using a graphical language (provided that it even exists, of course) than we do when using a spoken language, or the written form of a spoken language.
If this holds true, then another of my assertions is validated, that graphical languages will naturally spring from the minds of children and others who are dissatisfied with the status quo, and that there's no need for older people to figure out how to learn new ways to teach children - that children themselves will solve this difficult problem.
At any rate, I'm impressed.
Hi, I found your viewtouch app interesting, just a note about the demo page ( http://www.viewtouch.com/demo.html ). You can replace the Cygwin installation (which seems to be *very* overkill for what you want) for a simple Xming + putty install.
BTW I tried to run your demo and I kept getting connection timed out (maybe because I am in the UK).
Cheers.
Ubuntu is an African word meaning 'I can't configure Debian'