Slashdot Mirror


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."

318 comments

  1. Lego Logo by RingDev · · Score: 3, Interesting

    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
    1. Re:Lego Logo by H3g3m0n · · Score: 1

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

      --
      cat /dev/urandom > .sig
    2. Re:Lego Logo by Lumpy · · Score: 1

      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.

      --
      Do not look at laser with remaining good eye.
    3. Re:Lego Logo by TodMinuit · · Score: 4, Funny

      Pfft. You whippersnappers have it easy! I had to wire my logic gates by hand, and that's the ways I likes it! That was after I mined the copper to make the wires! Plus, I had to use an exercise bike to generate the electricity to power the damn thing!!!

      --
      I wonder if I use bold in my signature, people will notice my posts.
    4. Re:Lego Logo by Anonymous Coward · · Score: 0

      Ummmmmm...is there supposed to be something new about Scratch?

      This reminds me of DigitalChisel, VIP, etc, etc.

      The only thing they have done is take old concepts and upgrade the UI to 2007.

      This gets a big yawn from me.

    5. Re:Lego Logo by MS-06FZ · · Score: 1

      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. You had a hex keypad?

      I had to upgrade to a Commodore 128 to get a keypad - before that, it was the number row...
      --
      ---GEC
      I'm but the humble pupil, seeking to snatch the scratchbuilt pebble from the master's fully articulated hand
    6. Re:Lego Logo by StarvingSE · · Score: 1

      I kid you not, we had to do a series of projects in my undergrad CS program with this logic simulator language developed by the prof and his grad students. You can use it to simulate the gate structure of things as simple as part of an ALU up to an entire processor. By the end of the course, we had to edit the specs of a MIPS-compatible processor to implement a series of instructions.

      We then had to test it by writing a small MIPS assembly program and running it through the simulator..... however, all instructions had to be encoded in 32 bit machine instructions by hand. God the nightmares are coming back....

      --
      I got nothin'
    7. Re:Lego Logo by lordmatthias215 · · Score: 1

      Is it bad that I really want to take that class and/or get a copy of that simulator language?

    8. Re:Lego Logo by BlueCollarCamel · · Score: 1

      You had an exercise bike?!?!

      --
      1&1 - Cheap domain and web hosting.
  2. What?! by Anonymous Coward · · Score: 3, Funny

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

    1. Re:What?! by u-bend · · Score: 1

      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.

      --
      u-bend
    2. Re:What?! by Red+Flayer · · Score: 3, Insightful

      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.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    3. Re:What?! by Anarchysoft · · Score: 1

      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! :)
    4. Re:What?! by Anonymous Coward · · Score: 0

      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.

    5. Re:What?! by ChromaticDragon · · Score: 1

      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.

    6. Re:What?! by pavon · · Score: 1

      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.

    7. Re:What?! by AVee · · Score: 1

      "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

      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.

    8. Re:What?! by AKAImBatman · · Score: 5, Insightful

      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. 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.
    9. Re:What?! by DragonWriter · · Score: 1

      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.)
    10. Re:What?! by gkhan1 · · Score: 2, Interesting

      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.

    11. Re:What?! by Red+Flayer · · Score: 2, Interesting

      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.
      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    12. Re:What?! by mikael · · Score: 1

      My undergraduate course used Turbo Pascal during the late 80's.

      Turbo Pascal had the best/simplest design environment, but things like the Tiny/Compact/Small/Large/Huge programming models, and the 64K segment limit made group projects tricky.

      The other main disadvantage was that having procedures within procedures also made for monolithic programming, requiring that code has to be completely rewritten in order for basic concepts to be used with a new programming language such as C or C++ (lists, trees, hash tables, pointers, etc...)

      At the time, C with vi/vim on the UNIX systems was the only other alternative, with postgraduate students being given the
      privilege of using the Sun 3 workstations.

      Given the choice between Microsoft .NET and UNIX command line tools, I still prefer the command line tools (at least vim now supports keyword color coding).

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    13. Re:What?! by AKAImBatman · · Score: 2, Insightful

      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.

      BASIC is counter-intuitive? Difficult? Inflexible? Well, let's see if you have a point. Here are a myriad of Hello World programs in BASIC vs. modern and semi-modern languages. (Specifically, C, C++, C#, Java, Smalltalk, and Eiffel.) Let's see how the various languages stack up, shall we?

      BASIC:

      PRINT "Hello World!"
      C:

      #include <stdio.h>
       
      int main(int argc, char **argv)
      {
          printf("Hello World!");
          return 0;
      }
      C++:

      #include <iostream>
      #include <ostream>
       
      int main()
      {
          std::cout << "Hello, world!" << std::endl;
          return 0;
      }
      Java:

      public class HelloWorld
      {
          public static void main(String[] args)
          {
              System.out.println("Hello World!");
          }
      }
      C#:

      class ExampleClass
      {
          static void Main()
          {
              System.Console.WriteLine("Hello, world!");
          }
      }
      Smalltalk:

      'Hello, world!' out.
      Eiffel:

      class HELLO_WORLD
       
      create make
      feature
          make is
          do
              io.put_string("Hello, world!%N")
          end -- make
      end -- class HELLO_WORLD
      Yes, I see what you're getting at. BASIC is obviously a confusing and inferior teaching tool. </sarcasm>

      As for BASIC's descendants, those are not BASIC. Microsoft (which set itself up as "the BASIC company" in the 80's) raped a perfectly good language in an attempt to convince people that they could reuse their BASIC skills to make GUI programs. In reality, Visual Basic is about as far from the original BASIC as you can get. It could have been a descendant of FORTRAN or COBOL for all it has in common with BASIC. Even QBasic traded away the simple syntax in favor of more advanced features. Great for professional software development (!), but lousy for teaching. (i.e. The worst of both worlds.)
    14. Re:What?! by ClosedSource · · Score: 0

      I agree with everything you said until you got to the MS bashing part. I don't think VB was marketed as a way to transfer BASIC skills to GUI programming, it was marketed as a simple way to create GUI programs for Windows which is exactly what it did.

    15. Re:What?! by poopdeville · · Score: 1

      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. ...
      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.


      Logo is a Lisp dialect. Everything you said about Basic can be said for Logo too, with the exception that Logo avoids teaching poor programming practices to begin with.

      And with apologies to the kids who didn't take higher mathematics, higher mathematics really aren't for everyone. Or even most. I do think anyone can learn up to a certain level, but it won't be any fun for most. I say this after tutoring my juniors in college. Math is a constant challenge, and if a kid doesn't have fun with it, it's not worth them learning past calculus (or even arithmetic).

      On the other hand, I'm now a mathematician, and I wish I had been introduced to abstract mathematical concepts much sooner.

      --
      After all, I am strangely colored.
    16. Re:What?! by AKAImBatman · · Score: 2, Interesting

      Well, first, their cognizance of whether they are "programming" isn't as important as the concepts they are learning.

      Untrue. If they don't know what they are learning, then how can they ever apply it? Furthermore, programming courses attract those students who want to actually program. If you're not providing the impression to the student that they are actually programming, then how do you expect them to take an interest in the things you are teaching them?

      Note that I should have mentioned that Logo BASIC is what I'm referring to, not just Logo -- I should have made the distinction.

      What is Logo BASIC? Logo is Logo. The concepts of loops and subroutines are core to the language itself. That still doesn't change the fact that students will see these features as merely in support of pushing the turtle around. Because the end goal of every Logo program is to make the turtle do something interesting.

      Now if you taught Logo without the graphical component, it could make for a half-decent teaching tool. However, I see little that the syntax would offer over the syntax of BASIC. BASIC is straightforward and easy for an english-speaking person to grasp. Logo adds a variety of identifiers and lexical control structures that make it less accessible to someone with no prior programming experience.

      e.g.:

      TO HELLO
          PRINT [Hello, world!]
        END
      vs.

      PRINT "Hello World!"

      to whatever
        for [i 0 6 1][
      ;stuff
        ]
      end
      vs.

      10 for i = 1 to 10 step 1
      20 'Code goes here
      30 Next i
      As you can see, BASIC is a lot easier to grasp for the untrained eye. It's only after one has experience that lexical control structures appear natural.

      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.

      I don't think you understand. Visual Basic always gets slammed. It's a lousy excuse for a language, so it should come as no surprise that the technological elite don't like it. That's secondary to the fact that classic BASIC is regularly slammed as well. (As Google can helpfully demonstrate.)
    17. Re:What?! by pavon · · Score: 3, Interesting

      Yeah, Pascal was a stricter language but IMHO the rules were less confusing than those of C++ and Java. The biggest problem that I've had with using Python for teaching young students has been the opposite - what would be a simple error in a statically typed language can become a more subtle error in python, and the error messages that it produces are really quite poor compared to even a C compiler (although not nearly as bad as C++ STL errors :). Because of this the kids I've worked with have a harder time debugging python programs than with other languages. On the other hand the ability to type lines directly into the python console is very useful and encourages learning by experimentation.

    18. Re:What?! by AKAImBatman · · Score: 1

      I don't think VB was marketed as a way to transfer BASIC skills to GUI programming, it was marketed as a simple way to create GUI programs for Windows which is exactly what it did.

      Then why call it BASIC? As I said, VB has almost nothing in common with its supposed ancestors. A few keywords are the same, but seemingly for no real reason.

      I don't disagree that VB was intended to make Windows programming easy. (A goal which it met with flying colors.) My argument is only that Visual Basic is not BASIC. It traded on the name to attract developers, not because it was a true derivative.

      It's a bit like the situation with Java vs. Javascript. The two languages share some syntax elements (both being descendants of C-style syntax), but their actual implementations are as different as night and day. The only reason why Javascript is called Javascript (it was originally called Livescript) is because Netscape and Sun were partnering to bring Java to the browser at that time. Netscape made sure that Livescript could perform scripting on the Java Applets, and thus thought it would be cute to call it "Java"script.

      In any case, I apologize if it seemed like I was on a Microsoft-bashing tirade. I'm only attempting to point out that VB is not BASIC. Making any statements about BASIC based on VB represents a grave injustice to the original BASIC language. :-)
    19. Re:What?! by yahooadam · · Score: 1

      At my school they taught us VB6

      they did for a reason though, 1 is that it is in fact more simple, if you have a class of people that have never seen a programming language, and they find "print "hello"" difficult, imagine trying to put them onto something like C++

      Next is the fact, that a lot of our project needed to be done in access (well you could program it all if you want) which means using VBA - its pretty easy to get vba going if you have done VB6

      Now i'm not saying VB is great, but personally i think its definitely acceptable, and if your not making professional grade programs, who cares, and also a lot of the concepts are easier in VB, for loops, if statements, etc - because they look very much like the English way of writing it

      As for GOTO, I'm still not sure what the huge problem is, OK i can technically do without it, but sometimes it is easier to do a goto then it is to make a whole function (which IMO could break the flow of the program even more) - hell even assembler relies upon GOTO, and in some assembler your stuck with line numbers and not labels

      But lets say
      if i > 5 then : goto bypass
      i=i+1
      bypass:

      OK i could have made a routine, and this is an EXTREMLY simplified example of what I'm talking out, but to miss a couple of lines, gotos are good ... in a way
      Also in doing error checking seems to require gotos (in access)

    20. Re:What?! by lahvak · · Score: 1

      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. Actually. Logo was not supposed to be an introduction to either of those. It was designed as a means for children to use a computer to create and explore new environments, to experiment. Programing was never the goal, it was just a tool to achieve something else. It was probably more an introduction into math and physics than anything else. Some schools used it to teach programing, and there is a multi volume textbook by Brian Harvey called "Computer Science - Logo Style", and it can be used that way if it is done well, but there isn't really anything that would make it somehow better than other languages for that purpose.
      --
      AccountKiller
    21. Re:What?! by RingDev · · Score: 1

      Heya Batman,
        I'm going to have to disagree with your initial point. At the high school level I would agree, any education has to be accepted for it's educational value. But at the grade school level (we're talking 5-10 year olds here) it is much more about motivating interest in a subject. I don't care if the 4th grader sitting in a lab is more interested in the logic that tells the turtle move, the motors and gears that make the turtle move, or the tactics that can be applied to make a specific type of drawing. What I care about is that they are interested, and will hopefully go on to learn more.

        I did two of these courses in my youth, Lego Logo classes. Some kids did a turtle project or other follow the instruction projects, some made race cars, and some got into more of the advanced stuff with the IR detectors, logic based movement, and more advanced mechanics. Some kids liked the coding, some kids liked the building, some kids liked the brain storming.

      It takes all kinds in the tech world.

      -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
    22. Re:What?! by Constantine+XVI · · Score: 1

      You forgot Python:

      print "Hello World!"

      Or, of you want to throw in some C-tastic goodness (*choke*):

      def main():
              print "Hello World!"

      main()

      --
      "I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
    23. Re:What?! by An+ominous+Cow+art · · Score: 1

      Because GOTO is considered harmful.

    24. Re:What?! by Doctor+Memory · · Score: 1

      The other main disadvantage was that having procedures within procedures also made for monolithic programming, requiring that code has to be completely rewritten in order for basic concepts to be used with a new programming language such as C or C++ (lists, trees, hash tables, pointers, etc...) Hmmm, I don't think I've ever worked with code that didn't need to be completely rewritten to be used with a new language... ;)

      Seriously, though, nested scoping is one of the things I missed most about Pascal when I moved to C. It encouraged (me, anyway) to write more "helper" routines, rather than monolithic code. You could actually use it to provide a sort of polymorphism by allowing a routine to call named functions to obtain its arguments or manipulate variables, and then ensuring that the procedures that called said routine provided those functions. So the functions you actually called were determined dynamically by searching the call stack, instead of being statically linked.

      Of course, after I discovered function pointers, there was no going back to Pascal, but I did enjoy some of its higher-end features (part of its ALGOL heritage).
      --
      Just junk food for thought...
    25. Re:What?! by Anonymous Coward · · Score: 0

      After reading your post, I initially agreed with you. Then I remembered all the horrible, horrible crap I wrote in basic.

      The problem with basic, as I experienced it, is that it never really taught me programming. I started out in QuickBASIC, screwed around for a bit, and then screwed around in Visual Basic. But nothing I wrote had any kind of structure at all. I would type in random statments, hit "run", have it fail to compile, attempt fix the compile errors, hit run again, get a runtime error, write a few more lines, and so on until it eventually worked. I never understood what I was writing, and I never really understood why certain things wouldn't work. That's the big problem with Visual Basic (besides being a hacked-together language): it makes it incredibly easy for beginners to write code that they don't understand.

      I really don't think I made any progress until I started trying to write games in C++. The advantage with C++, of course, is that it forces you to prototype everything. It forces you to structure your code, at least a little. Since programs take a while to compile, unlike an interpreted language, it forces you to think about what you're typing instead of just trying different things until something works. IMHO the "shoot yourself in the foot" aspect of C++ is a very good thing -- it forces you to learn syntax instead of leaning on your compiler.

      If I was going to teach a kid a language (yeah right) I'd probably start them in Java. There are loads of good introductory books, and it is relatively easy to do "cool" things with the standard library. But then after they'd worked out the urge to create little dancing applets, I'd have them build an LFS box. Once they'd achieved a usable environment, I'd have them learn assembly, then C, then C++. After that, any other language would be pretty trivial, because they'd really understand what was going on under the hood.

      It's only after you know how things work that you can start to think about learning "programming". Yes, I probably sound like an elitist bastard, but I'm sick of how they have kids build model volcanoes and call it "science". That's not science. That's not even close. If you want to teach science, teach math, for God's sake. That way, they'll have a fighting chance when they have to take freshman physics.

    26. Re:What?! by Red+Flayer · · Score: 1

      Untrue. If they don't know what they are learning, then how can they ever apply it?
      I see. So when you teach your 2-year-old to think about cause and effect, they need to know that what they are learning is to think about cause and effect? All they need to know is that if they do x, y will happen. They'll figure out how to apply that elsewhere. I'm exaggerating here a bit, but teaching young students the ability to think logically and from a whole-project perspective is universal, and doesn't need to be shoehorned into programming.

      That still doesn't change the fact that students will see these features as merely in support of pushing the turtle around. Because the end goal of every Logo program is to make the turtle do something interesting.
      That's a poor logical deduction. The end goal of most Logo programs is to make a finished product (a picture of something); the turtle is a tool to help visualize the process (and to engage those who are very young). If you approach it as pushing the turtle around, then you are missing the entire point of Logo. When I took a Logo class as a 7-year-old, and later on when I taught Logo to 9 & 10 year-olds, the kids seeing Logo as a way of 'pushing the turtle around' never came up. But maybe it's the way it was taught -- I'm sorry that you had such a useless experience with it.

      Again, I'm referring to Logo BASIC, so maybe we're agreeing here.
      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    27. Re:What?! by Mattintosh · · Score: 1

      I had a similar experience.

      My first language was Logo. It taught me nothing more than scripted graphics and sound generation.

      A few years later, I had a general "introduction to computers" class that included a short BASIC program or two. These had GOTOs in them. The teacher explained what the GOTO did, and at the time I recall thinking "man, that's a pain in the ass if I have to remember to jump in and out of these chunks of inline code, can't the computer do that for me?"

      The next year, I took my Computer Programming I course (vo-tech-in-high-school course) and was promptly notified of the utility of using "top-down" coding, never using a GOTO, and always using loops and functions (GOSUB at first, but then we started using Pascal). The teacher simply would not accept code with even a single GOTO in it.

      I've never had a problem with not using GOTO, and I learned using BASIC. This talk of BASIC being inadequate for teaching is simply a way for someone to make themselves feel important.

    28. Re:What?! by DragonWriter · · Score: 1

      Yeah, Pascal was a stricter language but IMHO the rules were less confusing than those of C++ and Java.


      C and C++, at least, I remember finding more confusing specifically because they were less strict: Pascal strictness did a good job of stopping you from shooting yourself in the head, while C made that easy to do. Modern dynamic languages usually abstract away the most dangerous parts (like memory allocation), which enable them to be relative "free" without putting too big of a gun in your hand. OTOH, you make a good point later about error messages from Python: I'm not sure, though, how much of that is inherent in a dynamic language and how much is just from "novice computer users" not being a big focus of the development of the error messages—perhaps more feedback to the project from people interested in serving that community could improve things in that regard.
    29. Re:What?! by alphamugwump · · Score: 2, Insightful

      [Accidentally posted AC, reposting b/c I'm a filthy rotten karma whore]

      After reading your post, I initially agreed with you. Then I remembered all the horrible, horrible crap I wrote in basic.

      The problem with basic, as I experienced it, is that it never really taught me programming. I started out in QuickBASIC, screwed around for a bit, and then screwed around in Visual Basic. But nothing I wrote had any kind of structure at all. I would type in random statments, hit "run", have it fail to compile, attempt fix the compile errors, hit run again, get a runtime error, write a few more lines, and so on until it eventually worked. I never understood what I was writing, and I never really understood why certain things wouldn't work. That's the big problem with Visual Basic (besides being a hacked-together language): it makes it incredibly easy for beginners to write code that they don't understand.

      I really don't think I made any progress until I started trying to write games in C++. The advantage with C++, of course, is that it forces you to prototype everything. It forces you to structure your code, at least a little. Since programs take a while to compile, unlike an interpreted language, it forces you to think about what you're typing instead of just trying different things until something works. IMHO the "shoot yourself in the foot" aspect of C++ is a very good thing -- it forces you to learn syntax instead of leaning on your compiler.

      If I was going to teach a kid a language (yeah right) I'd probably start them in Java. There are loads of good introductory books, and it is relatively easy to do "cool" things with the standard library. But then after they'd worked out the urge to create little dancing applets, I'd have them build an LFS box. Once they'd achieved a usable environment, I'd have them learn assembly, then C, then C++. After that, any other language would be pretty trivial, because they'd really understand what was going on under the hood. It's only after you know how things work that you can start to think about learning "programming".

      Yes, I probably sound like an elitist bastard, but I'm sick of hearing about this sort of thing in education. It's like how they have kids build model volcanoes and call it "science". That's not science. That's not even close. If you want to have kids grow up to become scientists, teach math, for God's sake. Make them do long division until the numbers seep into their little underage bones. Then get them doing calculus early. That way, they'll have a fighting chance when they have to take freshman physics.

      Computers are just the same. You can't teach programming by having kids move blocks around in a GUI. At best, it's just a feel-good sort of thing so you can say you're teaching programming. If you're going to teach kids something, REALLY teach them. The fact that they're young is no excuse to not be rigorous. Teach them the real thing. Otherwise, you're just wasting their supposedly precious time as kids.

    30. Re:What?! by squidfood · · Score: 1
      "Hello world" just isn't as inspiring to kids as seeing a colored square on screen that they made.


      Hey, if you want to inspire kids with a result, what about a little php (or other webscripting language). Maybe the "I made a web page do something" is the equivalent coolness factor to big banner print statements in my day?

    31. Re:What?! by zippthorne · · Score: 2, Insightful

      Especially ironic since the whole point of Pascal was to be a teaching language rather than a "practical" one. In how many other fields do students start out with the fully capable tools that a master would use?

      --
      Can you be Even More Awesome?!
    32. Re:What?! by AKAImBatman · · Score: 1

      So when you teach your 2-year-old to think about cause and effect, they need to know that what they are learning is to think about cause and effect? All they need to know is that if they do x, y will happen.

      Excellent! I think you've found the perfect example to make my point.

      Logo
      Cause: Write code.
      Effect: Turtle draws stuff.

      BASIC
      Cause: Write code.
      Effect: Computer does stuff.

      Note how it's getting interpreted there. To a child, Logo is programming the turtle. To that same child, BASIC is programming the computer. It's all about what happens as the result of their actions. I hate to say it, but the turtle itself is too concrete. It draws the focus toward itself rather than the bigger picture of operating the computer. A BASIC interpreter, on the other hand, is a more abstract program that gives the student more direct control over the computer's functions. Especially on computers like the Commodore 64, where the BASIC interpreter and the OS are one and the same.

      Now consider for a moment: If the thinking is that you're programming the turtle, then the student will always think of the language as only useful for programming the turtle. At least until exposed to another language or a new use for that language.

      On the other hand, each BASIC program uses the computer's I/O in different ways. The computer can say something. Or it can ask a question. Or it can play a sound. Or it can draw some graphics. This opens the door for abstract thinking. The student can consider what is possible with the computer as a whole rather than considering what is possible with the turtle.

      I hope you can see the logic now? That's not to say that some students aren't more naturally abstract in their thinking. They may get a lot more out of programming in Logo. However, that does not mean that Logo is a good general purpose tool for teaching programming.

      The end goal of most Logo programs is to make a finished product (a picture of something); the turtle is a tool to help visualize the process (and to engage those who are very young). If you approach it as pushing the turtle around, then you are missing the entire point of Logo.

      Logically, the first and second statements contradict one another. A Logo coder pushes the turtle around to perform the steps of the graphics to reach the end goal of creating a particular image or animation. Therefore, Logo is teaching them to push a turtle around. It is not (in their minds) teaching them how to program the computer itself. Only the turtle.

      Again, I'm referring to Logo BASIC, so maybe we're agreeing here.

      You keep referring to Logo BASIC, but I sincerely do not understand what you are referencing. Could you please explain what that is and why it is important to this discussion?
    33. Re:What?! by mikael · · Score: 1

      Hmmm, I don't think I've ever worked with code that didn't need to be completely rewritten to be used with a new language... ;)

      Going from C to C++ is trivial :)

      Going from Pascal from C could simply be done by doing a search and replace eg. begin => {, end => }, and so on...

      But having nested scoping required some cut and pasting to be performed....

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    34. Re:What?! by Bent+Mind · · Score: 1

      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 suppose it depends on how it was taught to you. I can see how you would form this opinion if your teacher only showed you the graphical commands. However, I was taught to push a turtle around the screen using functions, variables, and control logic.

      I have two children in elementary school. It's disappointing that their teachers don't even know that LOGO exists. In school, the younger child has access to a computer lab once a week. She is allowed to play flash card type games. The older child has a computer at her desk. It's only use is to create Microsoft Powerpoint slide shows for her journal. I've taken it upon myself to teach my children how to use a computer. The younger child recently created a hangman game in LOGO. The older child has a problem with gloating about success. I thought it best to take a different approach with her. I started with Bash. However, she is very bored with it. She wants something that can create graphics. I've been thinking about starting her on Python.

      So far the school has shown little interest in what I'm teaching my children, other then expressing concern that I'm teaching them concepts before the school gets around to it.
      --
      Request a Linux Shockwave player here: http://www.macromedia.com/support/email/wishform/
    35. Re:What?! by xenocide2 · · Score: 1

      In my experience, the reason nobody saw LOGO as an introduction to programming is because the teachers were not trained. This meant you went to the computer lab, a strangely dark place (I guess CRTs werent bright in the 80s), and everyone made a square. That was about the extent my peers received of the dark arts.

      My problem with BASIC is that line numbers suck, and GOSUBs aren't very useful compared to full fledged procedures with parameters. QBASIC seems to have fixed that, but that was after my time. But similar to how I don't use a horse and buggy, I don't feel the need to try out older bad systems in order to use or appreciate new ones.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    36. Re:What?! by stanmann · · Score: 1

      VB includes all the basic commands print, input, goto, gosub, set/let, for/next

      --
      Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
    37. Re:What?! by Red+Flayer · · Score: 1
      Sorry, had a senior moment about Logo Basic; I learned Logo and BASIC concurrently in a class called Logo/Basic in grade school... the two were taught concurrently in a NJ-approved curriculum by the same name. For some reason I conflated the two into one system.

      I recalled using BASIC syntax with a Logo interpretor, but that's gotta be all in my head.

      If the thinking is that you're programming the turtle, then the student will always think of the language as only useful for programming the turtle.
      Students do not need to think that they are programming the turtle; if they do think so, then they are not being taught properly.

      I understand your argument, but I'd point to my OP, in which I state that Logo should be used in conjuction with, and as a precursor to, a language like Pascal. Logo is used to teach kids how to break down complex projects into machine-understandable simple commands, while giving them nice results to reward their work.

      Blockquote>It is not (in their minds) teaching them how to program the computer itself.That's a failure of the teacher, not of the language. Maybe my experience is different, since it was taught concurrently with a more abstract language. Would it be easier for students to understand that they are programming the computer if there were no graphical representation? Possibly, but I believe that is offset by the other gains of Logo.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    38. Re:What?! by nasch · · Score: 1
      I don't think you're giving kids enough credit. My six-year-old understands that programming means entering instructions into a computer, and then the computer follows the instructions. And this is not a new concept for him, either. When a kid is programming the turtle, I think s/he understands that he's giving instructions to the computer, and it's the computer that makes the turtle move. I know I did.

      Now consider for a moment: If the thinking is that you're programming the turtle, then the student will always think of the language as only useful for programming the turtle. At least until exposed to another language or a new use for that language. I don't think that has anything to do with kids or Logo. I've seen plenty of code written by adults who thought of a language as X and didn't realize you could do Y with it, too. Some people learn to apply their skills and comprehension to broader problems, and others don't so much.

      You're basically pointing out differences between Logo and BASIC, and I certainly wouldn't argue with that. Probably they have different strengths and weaknesses as teaching tools, particularly when applied to different groups of people. But I don't think you've demonstrated that Logo is a poor teaching tool.

    39. Re:What?! by adjusting · · Score: 1

      Some schools used it to teach programing, and there is a multi volume textbook by Brian Harvey called "Computer Science - Logo Style", and it can be used that way if it is done well, but there isn't really anything that would make it somehow better than other languages for that purpose. It should be noted that this textbook is available for free (for personal use)
    40. Re:What?! by jafac · · Score: 2, Interesting

      Yes, VB Script is a lousy excuse for a language.

      But as far as tools go; sometimes you just need a crowbar, not a screwdriver, or a scalpel.

      If you're writing an office suite, or 3d simulation, of course you don't want to even consider something like VB Script.

      But if you're blasting changes to 100 Active Directory users, or changing permissions on a web site's directory structure, it's a damn useful little crowbar. (that's not because of the language - it's because of the embedded facilities in windows that talk to this language).

      I don't know a single construction worker or mechanic that doesn't like to have more tools in his (or her) toolbox. They may not ever use all of them. Some may be favorites. But every tool is the right tool for some job.

      Learning/Teaching programming?

      I don't think that a particular programming language is ideal for that.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    41. Re:What?! by Anonymous Coward · · Score: 0

      Some of what you're saying assumes that people can recognise and correct their own mistakes, or at least recognize when something isn't quite right. Unfortunately, retrospection is a rare skill.

      > From there, a programmer quickly learns the limitations of global variables.

      Not true. It's not obvious at all to beginners why it's a bad idea.

      See Gerald Weinberg's "The Psychology of Computer Programming" and his story about the programmer who learned all the wrong lessons from his own experience. It's all too easy to get into habits that are more founded on repetition than on rationale.

    42. Re:What?! by Frozen+Void · · Score: 1

      I wrote several screensavers in BASIC.
      just a page of code and creates lots of
      $rnd lines/shapes,the only problem is BASIC intolerant of any syntax errors.
        got bored fast with it after.
      Too much effort for very little result.

    43. Re:What?! by Nazlfrag · · Score: 1
      I have to agree wholeheartedly with this. BASIC should always be taught first. I was lucky enough to learn BASIC before Logo at age eight, even though I didn't own a computer, thanks to the unsurpassed Usborne computer books for kids. When I came around to Logo I saw it as a toy language not worth the effort. Even then I could conceive of a BASIC program to interpret Logo. I doubt that analogy would hold up vice versa.

      Continuing my ramble, while GOTO maybe disparaged it helped me greatly with my first exposure to assembler. Learning GOSUB was just an address push followed by a GOTO made me wonder why languages don't generally make the Instruction Pointer available. Too powerful I guess.

      Well finally my favorite language ever was Blitz Basic for the Amiga, which seamlessly combined the basic syntax with assembler to create an amazing hybrid language that compiled to beautifully tight code. Sadly it is no more, and the current Blitz Basic is just a glorified 3d library with a substantially less than awesome syntax or compiler.

      *sigh* Ah well, thanks for the memories.

    44. Re:What?! by default+luser · · Score: 1

      Exactly. When I was first introduced to BASIC in my 8th grade programming class, the teacher never even covered GOTO. She mentioned that the keyword existed, but that we should use GOSUB. Unfortunately, we never got an explanation for why this was so.

      I didn't actually discover why GOTO was such a bad thing until I started programming games on my TI-82 in high school. In TI-BASIC, when using GOTO to escape a loop, the loop never completed, and the loop variable remained allocated. Over time, this would allocate too many loop variables, and cause a program to slow and crash (used to be called "program fatgue" until the real cause was found). I ran into this problem when I built my most ambitious game, a graphical Scorched Earth clone.

      The game "worked," but crashed after a few minutes of play...I was clueless as to the cause. I hadn't learned proper programming concepts, and with the TI-82's lack of real function calls, it certainly wasn't helping my programming style. After a suggestion from someone with more programming experience, I dropped the GOTOs and redesigned the entire program to run with if trees and loops. No more memory leak.

      I don't think it's the language that's to blame, I think it's a lack of quality documentation, and a severe lack of clued-in indivuduals willing to offer advice. I remember reading the TI-BASIC section of my TI-82 manual thoroughly, and nowhere did they mention a simple programming tip to always let your loops complete and exit naturally...even though the temptation of using all 37 possible labels was so great.

      If I hadn't been able to poke the brains of a more talented programmer, I might never have learrned that lesson. One thing is for certain: there's no way ANY programming language is going to just magically teach a lesson like that, at least in a way you will REMEMEBER and LIVE by. You have to make mistakes to really LEARN. That's why I like BASIC: it encourages people to try and make many mistakes...but like any language, it does require some oversight and feedback to bring people up to the next level.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

    45. Re:What?! by jonbryce · · Score: 1

      Certainly BBC Basic, which is what I learned first, relied to heavily on GOTO statements, and not enough on functions and procedures. When I moved on to Delphi, I had to pretty much completely relearn programming.

    46. Re:What?! by (negative+video) · · Score: 1

      My argument is only that Visual Basic is not BASIC. It traded on the name to attract developers, not because it was a true derivative.

      Let me relieve your ignorance of the continuous gradual evolution of BASIC derivatives at Microsoft. The VB line of descent is thus:

      • Dartmouth BASIC, the original line-numbers BASIC created by professors.
      • The original Gates/Allen BASIC, a Dartmouth BASIC derivative targeted to computers with tiny RAMs.
      • Microsoft/IBM ROM BASIC, a slightly-expanded BASIC for the original IBM PC and PC jr, somewhat extended to make better use of the decent hardware and whopping 64 kiB of RAM.
      • IBM/Microsoft BASICA, which built upon ROM BASIC and added DOS disk file support.
      • GW-BASIC, which replaced ROM BASIC entirely and added exciting raster graphics functions, including limited support for scaled windows.
      • QuickBASIC, Microsoft's first BASIC with a true compiler, which improved the flow control syntax so that line numbers were optional and indention could be used for formatting. This was the first Microsoft BASIC that lent itself to decent structured programming. (Followed later by the arguably-regrettable interpreted QuickBASIC variant that shipped with DOS for several years.)
      • Visual Basic, an even more extended compiled basic, notably adding support for modern GUIs and large modularized projects.
    47. Re:What?! by AKAImBatman · · Score: 1

      I'm sorry to inform you, but you've taught me nothing. Now why don't you go back to Visual Basic and take a good hard look at its design? It's absolutely nothing like Dartmouth BASIC, just as alien to BASICA and GW-BASIC (which I programmed in both when I was younger, thank you very much), and only mildly similar to QuickBASIC.

      Now allow me to relieve you of your own ignorance. Visual Basic is a language unto itself with a psuedo-OO design centered around GUI creation rather than procedural flow. Variables are handled by a loose typing system rather than the Number/String naming conventions popular in BASIC. Together, these provide the ability to use dot-notation addressing for modifying instances of objects or components. A variety of new syntactical structures and flow control structures showed up to better handle this foreign language design in the context of classic BASIC keywords. (e.g. "With...End" statements are just weirdness.)

      The end result is that if you put Visual Basic code and classic BASIC code (even QuickBASIC!) side by side, the two will not resemble each other in anything more than keywords and a few simple control structures. The two languages are completely separate with practically no real overlap between them. Thus my point that there was no real reason in calling it "Visual Basic" other than to play upon Microsoft's reputation as a BASIC company.

      Do yourself a favor next time and don't assume ignorance. There might be a point there. You may not agree with it, but the point still remains. Consider arguing the point rather than displaying your own foolish haste in finding fault with others.

    48. Re:What?! by (negative+video) · · Score: 1

      "[Programs written in both languages will] not resemble each other in anything more than keywords and a few simple control structures."

      And that is not derivative? If a language incorporates keywords and syntax from a predecessor, it is by definition a derivative. C++ template metaprogramming has a rather different appearance than equivalent BCPL code, yet the former is a derivative of the latter.

      "Do yourself a favor next time and don't assume ignorance. There might be a point there."

      Indeed. I apologize for being rude.

  3. Hell by buswolley · · Score: 4, Insightful

    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.

    1. Re:Hell by smittyoneeach · · Score: 3, Interesting

      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..."

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    2. Re:Hell by iocat · · Score: 1
      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.

      --

      Dude, I think I can see my house from here.

    3. Re:Hell by Lumpy · · Score: 1

      What's intrinsically hellish about computer science?

      PHB's
      last minute Change orders
      reorganization
      changing focus

      I could go on, but I'm starting to get flashbacks of all day meetings with marketing promising the world to clients and programming asking "are you on drugs?"

      --
      Do not look at laser with remaining good eye.
    4. Re:Hell by pla · · Score: 4, Interesting

      What's intrinsically hellish about computer science?

      Hellish to non-coders. And I use "coders" there instead of the more generic "geek", because most people with a near-obsessive interest in something can qualify as some form of geek, while very few people can really code well.

      You don't just need to know "the" language (sign #1 that coding doesn't suit a person - They want to learn C or Java for a few specific purposes, rather than "how to code" and "how it works" - The language doesn't matter, within reason). You need a particular type of personality (near obsessive). You need a clear mind (I mean that in the Zen way - In my teens I tried "meditating" a few times and always found it frustrating that the guides made no sense, with phrasing like "stop your internal monologue"; I finally realized that while most people apparently can't shut the voices in their head up, I have no internal monologue that needs silencing, and consider that a BIG part of what makes me a decent coder). You need the ability to think really, truly logically. The ability to sit motionless for hours at a time really helps. Finally, and perhaps most importantly, you need to break arbitrarily complex tasks down into atomic actions (which goes along with thinking logically, in the proof-theory sense).

      All of those, to most people, sound hellish. Thinking in terms of formal proofs? Quieting your internal voice enough to think over it? Sitting motionless at a computer for so long your SO/family needs to remind you to eat ten hours later? Most people don't want that.


      I hate how this topic usually boils down to the stereotypical us-vs-them, "Real coders do/don't"... But sometimes, you just can't escape the facts. Most people can't code, which doesn't state a temporary lack of training but rather an outright permanant inability.

    5. Re:Hell by smittyoneeach · · Score: 2, Insightful

      Boss, I don't see what any of your points have to do with computer science in the abstract.
      As I noted in the preceding post, your pain points have to do with people, not CompSci.
      Is this an example of Post Soul-Crushing Meeting Disorder? If so, you've my sympathy.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    6. Re:Hell by sconeu · · Score: 2, Insightful

      That's IT, not Comp Sci.

      Programming in and of itself is not Comp Sci.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    7. Re:Hell by smittyoneeach · · Score: 1

      Oh, there might be some natural abstraction facility, without which you simply can't mentally execute the code to watch the variable 'x' increment in a for/do loop.
      I contend (in my arrogance) that the bulk of the population simply doesn't invest the time to nurture that mental facility. We now have a society so advanced that you really can blow off literacy, for example.
      My father has been a steam and diesel engineer his entire career. Has this mental block about electricity. "I can't understand it," he whines. Yet the ideas of capacitance, inductance, potential difference, etc. have their analogues in steam engineering. The man just can't get past a self-imposed limitation.
      People. Gotta love 'em, or you'd do the unspeakable. ;)

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    8. Re:Hell by Null+Polarity · · Score: 1

      What? Trying to get kids on board programming with Z80 assembly? Honestly, I don't see how you can think that kids will be able to create games by being thrust into the waters of assembly language. I mean, yes, it is, technically possible, but do you realize that as children develop, they are visual learners and become bored of things quickly?

      Back in the days of the Commodore 64s (and for me and some others, Color Computers), when those machines were among the top of the line for the typical home hardware market, the included BASIC language was easy to learn and didn't bring the system screaming to a halt for some miscalculation in logic or refuse to start as a result of a syntax error that existed somewhere later down in the code. This was the time when computers were first starting to become accepted in the home, and the wealth of prewritten software we have now wasn't there, and so people wanted the ability to write their own for little tasks, in a language approachable to both adults and children alike.

      Nowadays, most people use computers without any knowledge of operating systems, much less programming. Computers no longer come with a BASIC interpreter, and even if they did, most kids now hold higher expectations for what computers can do and what games should be able to do. I certainly don't mind playing around with some of those old games from the 8-bit days, blocky appearance and all, but kids today haven't lived long enough to develop a nostalgia for those. The original style of BASIC isn't going to cut it, and assembly? I honestly cannot imagine any child picking up a book for assembly language, having done no previous tinkering with programming, and hacking out a game complete with the bells and whistles of sound and graphics.

      You don't learn how to swim without first testing the waters and getting a feel for floating and paddling around, and you don't learn programming without first having played around in a safe environment that doesn't intimidate you with error messages picking apart syntax. Maybe you did, but I know I didn't. Scratch, or maybe other visual programming languages that enable use of modern media in a safe environment, could very well be the new generation's BASIC.

    9. Re:Hell by espressojim · · Score: 1

      In my teens I tried "meditating" a few times and always found it frustrating that the guides made no sense, with phrasing like "stop your internal monologue"; I finally realized that while most people apparently can't shut the voices in their head up, I have no internal monologue that needs silencing, and consider that a BIG part of what makes me a decent coder)

      You have no internal monolog? What do you do when you think, speak out loud without any thinking ahead of what you're going to say? Let's say you shut your eyes...do you notice anything around you? If you notice anything about your surrounding, then that's part of your monologue. Say you notice a car going by. You're not calm and empty, but you are conscious of the fact that there's a car nearby.

      I've never talked to anyone who was absent an internal monologue.

      So, this isn't a dig, but that just sounds...unusual. If more people on slashdot are absent that trait, I'd love to hear about it.
    10. Re:Hell by Anonymous Coward · · Score: 0

      While I have an internal monologue (and how!) I have a friend-- who is, incidentally, an excellent programmer-- who claims not to just like the parent poster above. He is also very laconic in his speech, so maybe he just doesn't feel the same need for internal narrative as the rest of us do.

    11. Re:Hell by pla · · Score: 4, Interesting

      What do you do when you think, speak out loud without any thinking ahead of what you're going to say?

      I don't claim that I don't think about things, or even daydream just like everyone else. I just don't do it in English (or any language that ever could exist outside my own head). I can even think in words - You probably gave the best example, when I think about how to phrase something, I do so "in" the language itself; Oddly, although I only speak one natural language (English), I do the same thing when coding - I "think" in an internal voice speaking C, for example.



      Let's say you shut your eyes...do you notice anything around you?

      Yes, of course - I don't claim myself in a coma. ;-)
      But "conscious" doesn't mean "words". I meant more than I don't have, hmm, a narrator, I guess? As I mentioned, I found it quite a surprise when I first learned that most people do. As I understand it (second hand of course), most people would internally "say" something about almost all of the major things that pass into their awareness; I don't do that.



      I've never talked to anyone who was absent an internal monologue.

      Think of the smell of a crayon. Do words suffice to describe it, or did your first burst of thought contain a wave of sensory impressions and memories that include kindergarten, wax, some little girl's hair, pictures on a refridgerator, the sound of an ice-cream truck, and far, far more than that, all in one burst? Just typing that, I tried to touch on a few of the points of what the smell of crayons makes me think about, and found it incredibly restrictive. Imagine always thinking in terms of that initial burst, and you have the idea.

    12. Re:Hell by espressojim · · Score: 1

      I think I grok a bit of what you're saying in your descriptions of what isn't a narrative context for you. I do also often conceive of things like messaging between objects in a very visual way, and don't think about things like graph theory using words. Actually, I'd draw a parallel to music, where I often think in riffs, not in individual notes.

      I guess my concept of a narrator isn't someone who's whispering "That loud sound you hear...the word for that is 'car'", as much as I might see an image of a car based on a sound. To me, that's still narration - you're just shortcutting language. But that's still "dialog". Your mind isn't calm if you're interpreting your surroundings. The idea of meditation is to let go of that entirely and be unconcerned by it. That's why naming mediation is interesting: you force yourself to say "Car", and in doing so, you let go of it. It's like owning your thoughts and perception.

      I'd hate to try and write code by describing in words patterns and ideas that I'm working on. It makes much more sense to treat them abstractly, more like your crayon.

      Of course, if someone can't think at all abstractly (and I believe that it is a learned skill, to some degree), that's going to be a problem.

      Thanks for an interesting post!

    13. Re:Hell by qwijibo · · Score: 1

      Those are large organization problems. They have nothing at all to do with programming. Any group who is expected to perform the miracles promised by the marketing people react the same way. These traits exist because large organizations can afford failure.

      Small companies go out of business if they try to pull this crap.

      Programming, IT, computer science, etc are all about solving problems using computers. The reason people in these fields are so unhappy is that the majority of business operations are about creating problems and selling a product to address those problems.

    14. Re:Hell by Anonymous Coward · · Score: 0

      I have tried that.

      #killall management
      Error Process management not found.
      #killall executive_staff
      Error Process executive_staff not found.
      #

  4. I still like logo by cyphercell · · Score: 1

    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
    1. Re:I still like logo by DragonWriter · · Score: 2, Interesting

      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) 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.
    2. Re:I still like logo by syphax · · Score: 1


      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.?

      --
      Simple Unexpected Concrete Credible Emotional Stories
    3. Re:I still like logo by Falladir · · Score: 1

      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).

    4. Re:I still like logo by cyphercell · · Score: 1

      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.

      --
      Under the influence of Post-Cyberpunk Gonzo Journalism
    5. Re:I still like logo by jedidiah · · Score: 1

      I think they would learn more about programming by just taking turns pretending their a robot control computer. One kid gets to be the control computer and the rest get to be the robots. The kid playing the part of computer has to follow some pretty rigid rules to get the robots to move and the robots only get to do exactly what the master control tells them.

      You could even make it competitive by awarding or subtracting points for how well they follow the rules of the simulation.

      Computers are the physical manifestation of a mathematical model. No actual physical computers need to be involved in the lesson.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    6. Re:I still like logo by neomunk · · Score: 1

      My kids (twin 6 year old and a 4 year old) have already cut their teeth on MSWLogo (not a MS product BTW) and yeah, explaining angles and such is where I had to start. They are still fuzzy on the angles really, but basically know that 90 makes an angle for a square, and that 120 is for a triangle. I've only been at this for less than a month (and was thus delighted to see this article pop up and the logo conversation jump right off the bat) but the kids are already starting to understand things like procedures, procedures within procedures, and they are slowly starting to understand recursion thanks to the fractal library I've written. The math is way over their heads, but the basic concept of doing something small over and over again to get a big result is being understood.

      Here, for your turtle pushing pleasure are a couple of simple fractal samples.

      to ccurve :iter :size
      rt 45
      ifelse :iter1 [fd :size] [ccurve :iter-1 sqrt (:size*:size/2)]
      lt 90
      ifelse :iter1 [fd :size] [ccurve :iter-1 sqrt (:size*:size/2)]
      rt 45
      end

      to dragcurve :iter :size :angle
      if :iter1 [fd :size stop]
      dragcurve :iter-1 sqrt (:size*:size/2) 90
      rt :angle
      dragcurve :iter-1 sqrt (:size*:size/2) -90
      end

      to drawtree :size
      if :size10 [stop]
      fd :size
      rt 30
      drawtree :size-10
      lt 60
      drawtree :size-10
      rt 30
      bk :size
      end

      The drawtree is the one that I explain in depth, as I designed it in a way that the kids could grasp. Maybe these will be useful to you in some way, as they have been for me and mine.

      Enjoy!

    7. Re:I still like logo by SQLGuru · · Score: 1

      And don't forget Alice http://en.wikipedia.org/wiki/Alice_(programming_la nguage). Since the MIT site has been swamped, I can't see what Scratch looks like, but conceptually (from reading TFA), they seem similar.

      Layne

    8. Re:I still like logo by SQLGuru · · Score: 1

      Sorry, wrong link....I meant this Alice language: http://alice.org/

      Layne

    9. Re:I still like logo by SQLGuru · · Score: 1

      Wouldn't this be a similar way to teach them the same ideas: http://www.blitzbasic.com/Community/posts.php?topi c=44978

      Layne

    10. Re:I still like logo by syphax · · Score: 1


      Thanks. I had downloaded MSWLogo awhile ago and liked it; I'll give it a shot with my twins.

      --
      Simple Unexpected Concrete Credible Emotional Stories
    11. Re:I still like logo by enjerth · · Score: 1

      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. I've been working with GUI builders for a few years and developing my own pseudo-GUI objects that are designed in a GUI interface but don't perform GUI tasks. I had the impression that the future of programming will rely more heavily on GUI design than coding. With object-oriented programming, designing it in a graphical mode is more intuitive and has a higher production rate. Granted, the components used in graphical designing will likely rely heavily on coding, but for application work it could be done with few lines of hand-written code and the majority of it pieced together like a flowchart.
    12. Re:I still like logo by neomunk · · Score: 1

      I (as in me myself, not the kids) actually use a program called netlogo. It's really an interesting paradigm for designing multiagent simulations and whatnot. It cmoes with a multitude of great examples that can be edited, combined, and refined to do all sorts of neat simulations. Highly recommended for adults and older children (due to it's complexity) who are interested in quick and dirty simulations.

  5. Now if only they could make programmers by antifoidulus · · Score: 4, Funny

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

    1. Re:Now if only they could make programmers by NouvelleChimie · · Score: 1

      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.

      --
      Analytical chemists do it with fancy and expensive toys
    2. Re:Now if only they could make programmers by mengel · · Score: 1

      I am not frightening ... to children, anyhow.

      --
      - "History shows again and again how nature points out the folly of men" -- Blue Oyster Cult, 'Godzilla'
  6. Been there? by Anonymous Coward · · Score: 0

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

    1. Re:Been there? by ericlondaits · · Score: 2, Funny

      You draw a turtle with LOGO? What is that, the soviet russian version of LOGO?

      --
      As a Slashdot discussion grows longer, the probability of an analogy involving cars approaches one.
    2. Re:Been there? by Anonymous Coward · · Score: 0

      You draw a turtle with LOGO? What is that, the soviet russian version of LOGO? In Soviet Russia LOGO draws YOU!!!
  7. The horrors... by daeg · · Score: 0, Offtopic

    "Nu ar det slut."

  8. Whoops, my bad. by RingDev · · Score: 1, Insightful

    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
  9. Not Possible by viewtouch · · Score: 2, Interesting

    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.

    1. Re:Not Possible by Anonymous Coward · · Score: 0

      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.

    2. Re:Not Possible by joss · · Score: 1

      > 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.

      --
      http://rareformnewmedia.com/
    3. Re:Not Possible by viewtouch · · Score: 1

      The people who communicate the information about the weather to you use animated graphical symbols because it is several orders of magnitude easier to present the useful significance of the vast amount of data to you that way. Animals have been dealing with reality with their brains using the input from their eyes a LOT longer than humans have been dealing with reality by reading the text syntax of programming languages. It makes sense, therefore, not only to represent the output of information graphically but also to represent the input of information graphically.

      Games are all programmed graphically. It isn't even close to possible to program games using text. Text and spoken language can only take you so far. There are many other types of languages, fortunately, and many of them are, for instance, mathematical. You need to get over your anger about 'pictures' and their usefulness. Pictures aren't something that we can look at - they are something that we can use to communicate with, and to build languages out of, just like we build languages out of the sounds we can make with our lungs and throats. And if you can build a language with something you can build civilizations out of those languages. Why do you pretend you don't understand this or that you despise it?

    4. Re:Not Possible by GoatMonkey2112 · · Score: 1

      I think the starting point for the next generation of programmers is the web. Namely HTML and JavaScript.

      I got my start in programming using BASIC for the C64. I eventually wrote a few simple which way games along the lines of Zork, but with multiple choice of what to do instead of guessing. It also did random number generation for combat and tracked hit points. I was in about 3rd or 4th grade at the time.

      So, what I'm saying is that the same kind of thing could be done by kids today using a web browser and some JavaScript. There are tons of samples to get them started. The samples are not usually articles written in a way that kids would really understand though. What they need is a tutorial that would guide them, in a way that they can understand, to write a simple game in the web browser.

    5. Re:Not Possible by Anonymous Coward · · Score: 0

      Technical people really hate it when non-technical people call them up, and tell them "Hey, that thing you made? You should make it do something entirely different."

      That's how you end up getting answers like, "That's not possible".

    6. Re:Not Possible by p3d0 · · Score: 1

      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. No, what it means is that he knows why we stopped using hieroglyphics many centuries ago.
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    7. Re:Not Possible by autophile · · Score: 1

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

      UML2 gets close, but it's still hella complicated. I think where the disconnect lies is that C++ allows you to do *everything*, sometimes in multiple ways. What you wanted is a paradigm where you can only do *some* things in *one* way, and *other* things, not at all.

      --Rob

      --
      Towards the Singularity.
    8. Re:Not Possible by viewtouch · · Score: 1

      Hieroglypics sacred stone carvings controlled by the prevailing theocracy and used solely to reinforce the myth of eternal life.

      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.

      The Chinese, you should know, use pictographs, too. And Mathemeticians - they don't explore mathematical ideas with text that mimics spoken languages or with C++ syntax constructs because those languages are not at all suited to the way that they need to think about things mathematical.

      Heiroglypics did a certain job very well. We don't need them any more because we have more sophisticated ways to perpetuate theocracies and myths of eternal life. What we do need is new kinds of languages, languages which let everyone talk at once, without regard to where they are, which spoken language they speak, etc.. Graphical languages do not impose such restrictions on people as spoken languages and text do. Like most people, you are struggling with the concept, but like most people, when you see them, then you'll understand the advantages of graphical languages. They're all around you already if you were to think about what you see every day.

    9. Re:Not Possible by viewtouch · · Score: 1

      Good point.

      The first Adventure games were text, as were the first Wizardry games and the like. By today's standards they are incredibly primitive, boring, etc.. At the time it was all the best programmers could do. There weren't even any graphics displays that you could afford so there was no point in writing graphical games.

      But today's games are not only graphical, they are programmed virtually in their entirety by graphical tools. It is a very small step to extend the usefulness of the graphical tools used to create video games to other areas where programming is needed. One such area is in movie making. The graphical tools used to make movies are extended versions of the graphical tools used to make video games. To the extent that these graphical tools allow people to work together they are communications systems - graphical languages. As these are further extended there is less and less need for conventional text-based programming languages and they fall away.

      Graphical programming languages are not arising as extensions of existing text-based programming languages. More than that, they are replacing them.

    10. Re:Not Possible by Chandon+Seldon · · Score: 1

      Games are all programmed graphically.

      That's not "programming", that's "construction". Once all the models and environments are constructed, you still have to program them - using a traditional programming language.

      Perhaps a solid purely-visual programing environment could be built. People would still need to know how to program - pretty pictures don't make the problem of understanding data structures and algorithms go away.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    11. Re:Not Possible by DragonWriter · · Score: 1

      to program in C++ by manipulating graphical symbols

      What does that mean ? In what sense would they be programming ?


      How would it not? Characters displayed on a screen are "graphical symbols", after all.

      The difference between using graphical symbols that happen to be linear text that are combined to make identifiers, etc., and graphical symbols where each block represents a whole command is analogous to the difference between a alphabetic written language and a ideographic one. Certainly neither is more real. Similarly, in the context of programming, neither is more "programming" than the other.
  10. Whats the point? by Timesprout · · Score: 5, Insightful

    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
    1. Re:Whats the point? by viewtouch · · Score: 2, Insightful

      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.

    2. Re:Whats the point? by Anonymous Coward · · Score: 0

      "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.

    3. Re:Whats the point? by Anonymous Coward · · Score: 0

      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?

    4. Re:Whats the point? by DragonWriter · · Score: 1

      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.
    5. Re:Whats the point? by GrievousMistake · · Score: 1

      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.

      --
      In a fair world, refrigerators would make electricity.
    6. Re:Whats the point? by Reality+Master+101 · · Score: 4, Insightful

      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 and I'm doing it myself. :) Note the picture on the cover that was done by a non-gifted five year old, BTW.

      --
      Sometimes it's best to just let stupid people be stupid.
    7. Re:Whats the point? by GrievousMistake · · Score: 1

      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!"

      --
      In a fair world, refrigerators would make electricity.
    8. Re:Whats the point? by Timesprout · · Score: 1

      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?
      --
      Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
      What truth?
      There is no dupe
    9. Re:Whats the point? by shystershep · · Score: 1

      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.

      --
      The bigotry of the nonbeliever is for me nearly as funny as the bigotry of the believer. - Albert Einstein
    10. Re:Whats the point? by shystershep · · Score: 1

      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).

      --
      The bigotry of the nonbeliever is for me nearly as funny as the bigotry of the believer. - Albert Einstein
    11. Re:Whats the point? by qray · · Score: 1

      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

    12. Re:Whats the point? by MBCook · · Score: 1

      It always worries me when people have no idea what is going on. I really dislike the idea of people learning computers like they were microwaves and having next to no idea how the work. Actually, most people have received a LITTLE instruction on how microwaves (and cars and other things) work (it heats the water in food, pistons harness combustion, etc) but discussion about how computers do things is usually "they use binary". That doesn't mean anything to most people.

      This is a great idea. Not only does it teach programming (good, maybe they'll pickup an interest), but it teaches logic. I can't tell you how many kids I run across that seem to have next to no training in logic and being able to make steps to get to a task (or simply aren't good at it due to lack of practice). The current education system (memorize facts, here is a problem and here is how to solve it, memorize how to solve it) don't help. This kind of education (figure out how you can do things by chaining other things) is important and very valuable.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    13. Re:Whats the point? by Anonymous Coward · · Score: 0

      Perhaps you're not aware but it's exactly during those six years of elementary school that we're tuned to learn with the least effort. That's why we start A1 foreign language in 3rd class and A2 in the 5th. Our school system (in Finland) is regarded to as the best of the world and I'm not surprised. I remember we had some CS classes in the late 80's when I was in elementary school. I bet they teach far more of it these days.. perhaps one of the reasons that we (Finland) are the leaders of the world in that as well. ID for your kids, science for ours!

    14. Re:Whats the point? by Jeremi · · Score: 1
      Certainly kids who are interested in that should be encouraged, but it's a VERY small minority that have a true interest.


      Why is only a small minority interested? Could it be that their interest has traditionally been inhibited by a lack of age-appropriate tools?


      Also, how would we (or they) even know that they would be interested unless they try it? I didn't know I was interested in programming (indeed, I didn't even know what programming was) until I was given the opportunity to try it out BASIC on a Pet. If they had only offered me crayons, I might still be flipping burgers today.


      There are far more important skills that we should be encouraging. [...] Such as? How about true art training?


      Why do you think art training is more important than computer training? Art won't help them put food on the table (whereas programming might). As a creative outlet, Scratch appears to be as likely a candidate for inspiring creativity as any.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    15. Re:Whats the point? by Anonymous Coward · · Score: 0

      I think you missed his point. Read it again and think about it. If you still don't get it don't let that bother you.

    16. Re:Whats the point? by Seraphim_72 · · Score: 1
      Um...Yes, and er um Yes, and erm Yes any other questions?

      Sera

      --
      Slashdot, where armchair scientists get shouted down and armchair theologians get modded up.
    17. Re:Whats the point? by Reality+Master+101 · · Score: 1

      Why is only a small minority interested? Could it be that their interest has traditionally been inhibited by a lack of age-appropriate tools?

      For the same reason that only a minority of kids are typically interested in building toys.

      Why do you think art training is more important than computer training?

      On the other hand, when it comes to art and drawing, it's nearly a universal desire among people to be able to draw competently. Art is a fundamental mechanism of the brain, unfortunately neglected in modern education.

      As a creative outlet, Scratch appears to be as likely a candidate for inspiring creativity as any.

      While I agree that programming can be quite creative, and I get a great deal of pleasure out of modeling abstract algorithms via programming, not that many people get any pleasure out of it. You seem to think that this has never been tried, yet it's tried every day. Most people HATE dealing with computers! Hell, they hate programming the clock on their VCR. They simply don't enjoy the process of expressing mechanical things as algorithms -- and that's fine! Not everybody enjoys classifying bugs and wants to be an entymologist, either.

      --
      Sometimes it's best to just let stupid people be stupid.
    18. Re:Whats the point? by Steve525 · · Score: 1

      Thank you! EXACTLY what I was going to post. Screw programming!

      Why? Because you think art instruction is superior? Maybe it is, maybe it isn't. In any case, I don't think it's an either/or situation. I do think there is is a place for art instruction and music instruction, but I don't think that giving children a chance to experiment with computer tools such as this is a bad thing.

      Many people, like myself, don't code for a living, but do find writing computer code to be a very useful tool for solving some problems. So, I do think that programming should be taught to some degree to just about everyone. Certainly anyone who plans to do anything that might involve numbers, and perhaps anyone who plans to go to college

      If you looked at the Scratch webpage, (it's taken a beating, so it's mostly down. However, there is a link to a youtube video that gives a nice description of it), you'd notice that Scratch is a pseudolanguage where you build a program by dropping and dragging. All the basic concepts are there (if/then logic, loops, variables, etc), and the language provides a nice graphical output for the student. This (alone) isn't going to create the next generation of great programmers, but it will introduce young students to concepts of cause and effect, and logic flow. I think these are useful skills, even if one isn't going to need to program again.

      Only gifted people learn to play piano by banging keys,

      Actually, that's how I learned to read music/play piano. Unfortunately, it's not a very good way to become good at playing piano, since you develop a lot of bad habits. So, I agree that proper instruction matters.

    19. Re:Whats the point? by Chandon+Seldon · · Score: 1

      Wait... how is being able to *sketch* a more useful skill than knowing how to make full and efficient use of a computer? Every job - all of them - can benefit from computer automation. Even just knowing enough programming to know what's feasible for a real programmer to do is priceless.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    20. Re:Whats the point? by Jeremi · · Score: 1
      it's nearly a universal desire among people to be able to draw competently. Art is a fundamental mechanism of the brain, unfortunately neglected in modern education.


      I don't know where you got that idea. Why would the desire to draw be universal, or a fundamental mechanism of the brain? I'd say the urge to express oneself might be near-universal, but there's nothing special about drawing as opposed to any other artistic medium (music, dance, athletics, writing, architecture, computer programming, etc)


      Most people HATE dealing with computers! [,,,] and that's fine!


      You are accepting that as an immutable fact of life. The people behind this project think it's an artifact of being forced to use an inadequate human/computer interface.


      Not everybody enjoys classifying bugs and wants to be an entymologist, either.


      Clearly. There's almost nothing that everybody enjoys.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    21. Re:Whats the point? by aldheorte · · Score: 1

      The reason that programming is the most important skill a child should be learning is that there will soon come a time when being able to 'talk to machines' by at least having mastery of a high level programming language will be a basic prerequisite to starting, managing, or working for a company. Not having solid skills will be like not learning English, or not knowing how to use a Word Processor in the current business environment. Even if your child's future lies in academia, all serious research and advanced learning will require the same.

    22. Re:Whats the point? by johncadengo · · Score: 1

      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 and I'm doing it myself. :) Note the picture on the cover that was done by a non-gifted five year old, BTW.

      That picture, to be completely honest, looks gifted to me. I still can't draw that well. (Or color, for that matter).

      But I do (!) program. And yes, BASIC started it all.

      --
      My page.
    23. Re:Whats the point? by Reality+Master+101 · · Score: 1

      That picture, to be completely honest, looks gifted to me. I still can't draw that well. (Or color, for that matter).

      That's because you don't know the "magic secret" of drawing*. I used to totally suck at drawing, until I found The Book. See that picture on the cover? Any idiot can draw that picture in a couple of weeks to a month if you do the exercises and practice every day. People never believe me when I say this, but drawing from life is so easy that it'll piss you off that no one ever taught you how to do it properly. The book has tons before and after pictures of adults that went from pictures that looked like a 3-year-old did it to life-like drawings in two weeks. The lessons in this book are oriented toward adults and would be too tricky for small children, which is why I went seeking a book oriented toward kids (though, Drawing With Kids would work fine for adults as well).

      *The magic secret is that drawing is learning how to see, not learning how to draw.

      --
      Sometimes it's best to just let stupid people be stupid.
    24. Re:Whats the point? by Reality+Master+101 · · Score: 1

      The reason that programming is the most important skill a child should be learning is that there will soon come a time when being able to 'talk to machines' by at least having mastery of a high level programming language will be a basic prerequisite to starting, managing, or working for a company.

      That's like saying that since most people will drive to their jobs, everyone should be able to do automotive engineering.

      --
      Sometimes it's best to just let stupid people be stupid.
    25. Re:Whats the point? by figa · · Score: 1

      Find the Russian community in your area and get a Russian art instructor. My wife is Russian, and she was taught to paint as a child by the last remnants of the Socialist Realist school. She did her undergrad at the Art Institute of Chicago, and she has an MFA in painting from UC Davis.

      We live in Brooklyn, we have kids, and every now and then, we run across a class for kids with a Russian instructor. My wife always laughs because the kids do charming work, but it's exactly the same as her work as a child. She calls it teaching a bear to ride a bicycle.

      Our older daughter takes art classes. She was going to the Brooklyn Museum, and now she's learning from one of my wife's friends, who has an MFA. My daughter learns the American way, haphazardly, without any emphasis on rendering, instead focusing on light, composition, and art history. My wife seems happy with it.

      She doesn't think that the Russian approach can create artists. If you've ever been to a gallery that specializes in contemporary Russian art you'll know what she means. The work is always the same: churches, flowers, landscapes, and maybe something resembling Braque. What we've seen in Moscow is similar. I love Sotz Art, which was created in opposition to Socialist Realism, but I can't think of any top tier Russian artists that came to prominence after '91, except for the guy who molests farm animals.

      My wife eternally laments the fate of one of her peers from her art academy in Moscow, who she thought was incredibly talented as a teen, but he now paints cubist churches. His art is technically excellent, but it's lifeless and hackneyed.

      It may just be sour grapes, since she hasn't painted for several years. She also says she won't encourage our daughters to pursue art degrees later on. However, she did write a book that fondly draws on her experience at art school.

      I bought my daughters a bunch of the Ed Emberley books. I really loved them as a kid. His aesthetic reminds me of OOP.

    26. Re:Whats the point? by Doctor+Faustus · · Score: 1

      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
      If there are any near you, it sounds like you might like a Waldorf school.

  11. On the other hand by Anonymous Coward · · Score: 0

    "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.

  12. HyperCard by Anonymous Coward · · Score: 0

    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)

  13. Fun???? Fun...?????!?! by Anonymous Coward · · Score: 0

    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..

  14. I remember that. by Pojodojo · · Score: 1

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

    --
    arrrg, (like a pirate)
  15. Not that I think it's a bad idea by zappepcs · · Score: 4, Insightful

    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.

    1. Re:Not that I think it's a bad idea by merreborn · · Score: 1
      The main goals of these sorts of projects is to introduce kids to:

      1. Logic (and, or, not)
      2. Flow control (loops, branches)
      3. Algorithmic thinking -- Breaking up tasks into smaller steps (You can't just tell the computer "make the cat dance", you have to start by moving one foot, then the other...)
      4. The joy of making the computer do what you tell it to


      These are high level concepts that take a while for children to grasp. Once you understand them, however, a wide world is opened up to you. Even if you don't go on to programming, automating tasks via macro programs, batch, or shell scripts becomes all the easier.

      Understanding programming makes using a computer easier, and allows you to do more with it. Even if you never write a single line of "real" code.
  16. Just think... by spungo · · Score: 5, Funny

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

    1. Re:Just think... by Anonymous Coward · · Score: 0

      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.

    2. Re:Just think... by PhoenixOr · · Score: 1

      Shouldn't that be "how the justice system DOESN'T work"?

  17. Kid Programming tool - RoboRally! by Dareth · · Score: 3, Interesting

    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
    1. Re:Kid Programming tool - RoboRally! by WillAdams · · Score: 1

      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

      --
      Sphinx of black quartz, judge my vow.
    2. Re:Kid Programming tool - RoboRally! by raddan · · Score: 1

      As a slight step up from that, I played a gamed when I was in high school called "RoboWar" on the 68k Mac that I believe has been carried on by this project, if not in the actual code, at least in spirit.

      There is actually a minilanguage that you need to learn. The cool thing for me, at the time, was that I was having trouble learning trigonometry. Since the minilanguage had math library functions, it really brought trig home for me. I remember my father and brother and I feverishly programming our bots to do battle with each other. The funny thing was that my brother, who mastered the minilanguage early, but who didn't have the math training, came up with very simple and clever algorithms that just killed us repeatedly. My father used to liken it to corewars in his day in grad school using the PDP-11, where he sharpened his assembly chops.

  18. Clearly by Dr.+Smoove · · Score: 5, Funny

    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."
    1. Re:Clearly by Larry+Lightbulb · · Score: 1

      Machine code is easier, you only need to master 0 and 1.

    2. Re:Clearly by femto · · Score: 1

      You joke about assembly, but there is a serious school of thought that says assembly is a great first language. Take an 8 bit microprocessor (eg. 6502) with 20 or so instructions (plus addressing modes). The system is so simple that a child can learn it inside out. All they need to know is the fetch and execute loop, input, output, CPU and memory and what each of the 20 instructions and a few addressing modes do. Watching a computer count from 1 to 10 under your control for the first time is just as exciting as watching a sprite bounce across the screen.

    3. Re:Clearly by femto · · Score: 1

      In fact I will go further and say that machine code is an even better first language under some circumstances. Advantages of machine code over assembly are: a) No need to learn how to drive an assembler b) The symmetry of the instruction set and the underlying machine is more apparent.

      Maybe there is a call for a "kid's CPU", implemented in an FPGA? A minimal CPU with a very simple instruction set that can be mastered by a child. Make it a complete CPU though, so in time the child can graduate from machine code to assembly to a Linux based development environment.

    4. Re:Clearly by Dr.+Smoove · · Score: 1

      heh funny you guys say this because I actually first programmed in a fake microprocessor's assembler, designed by my electronics instructor. But I was no kid, I was in high school so I had to be like 14 or so. Logo on the other hand I understand in like second grade or something.

      --
      "If you plant ice, you're gonna harvest wind."
    5. Re:Clearly by Anonymous Coward · · Score: 0

      Xilinx's free Picoblaze core (source available in VHDL or Verilog, so you can learn about minimal CPU design) is a lot of fun and is perfect for interfacing little bits of digital hardware to a computer. The Spartan-3E $150 starter kit has a ton of hardware (LEDs, buttons, LCD display, VGA out, serial ports, ethernet, flash memory, ADCs, DACs, etc) and everything you need to get started. Use the free (as in beer) WebPack software from Xilinx, which you can get to work under Linux. Free (as in speech) Picoblaze assemblers and simulators are also available.

  19. Reminds me of Alice by EnglishTim · · Score: 2, Interesting

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

    http://alice.org/

    1. Re:Reminds me of Alice by Deagol · · Score: 1
      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.

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

    2. Re:Reminds me of Alice by Anonymous Coward · · Score: 0

      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.

  20. Programming is fun to begin with! by Anarchysoft · · Score: 4, Insightful

    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!

    1. Re:Programming is fun to begin with! by Anonymous Coward · · Score: 0

      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?

    2. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      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.

    3. Re:Programming is fun to begin with! by abb3w · · Score: 1

      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.

      "Rote", like spelling... unless you're taking your "journey" metaphor in an unexpected direction. =)

      I think there is a contrast between that and most teaching.

      This depends on the caliber of educators you have in charge of teaching. I'd characterize a large part of my elementary school math education as "a journey of aided discovery", especially the parts that got the class most interested in math. Ditto reading. Ditto at high school the better social studies stuff. (The European history teacher didn't do so well at it.)

      --
      //Information does not want to be free; it wants to breed.
    4. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      "Rote", like spelling... unless you're taking your "journey" metaphor in an unexpected direction. =) Thanks. :)

      I'd characterize a large part of my elementary school math education as "a journey of aided discovery", especially the parts that got the class most interested in math. I think you were mighty fortunate in that regard. So many folks hate math or have math anxiety because of the style of instruction they received. Instead of mathematics being a way to understanding the mysteries of the universe and practice for thinking logically, it is often taught as a mechanical drill without any appreciation for creativity and flexibility. Or so I've heard. :)
    5. Re:Programming is fun to begin with! by Phroggy · · Score: 2, Insightful

      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. The purpose of copying a program designed by someone else (taking their listing in a book or whatever and typing it in) serves three purposes:

      1) gets you familiar with the process of inputting code, so that when you write your own code, you'll already be familiar with how to type it into the computer and execute it

      2) demonstrates that by just typing in a program, it's possible to make the computer do something really cool, even though you haven't yet learned how to design something that complex yet

      3) gives you a working example of a program with source code, so you can try to understand what various parts of the code do, and you can try changing something and see how the change affects the program's output

      It's not a bad way to introduce kids to programming, although of course it needs to be followed by actual learning.
      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    6. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      The purpose of copying a program designed by someone else (taking their listing in a book or whatever and typing it in) serves three purposes: 1) gets you familiar with the process of inputting code, so that when you write your own code, you'll already be familiar with how to type it into the computer and execute it 2) demonstrates that by just typing in a program, it's possible to make the computer do something really cool, even though you haven't yet learned how to design something that complex yet 3) gives you a working example of a program with source code, so you can try to understand what various parts of the code do, and you can try changing something and see how the change affects the program's output
      This is fine, but when students are being scolded for changing and 'playing' with the program, then something isn't right. Unlike when artists copy the masters, the base skill necessary to type something in is very low; the real benefit really is only in the third item you listed.
    7. Re:Programming is fun to begin with! by h4ck7h3p14n37 · · Score: 1

      I started programming when I was 5 years old thanks to an Apple IIe home computer and have never stopped since.

      Wow, same here! I started programming when I was five on a TRS-80 and Apple ]['s. My mother was a teacher, so she was able to bring a computer home during the summer months. At about the same time my father bought a TRS-80 from Radio Shack and I worked on that whenever I was at his house.

      The school district I attended (Illinois district 66) had received computer donations from Apple; I was in the gifted education program at my school and we got to use the Apple lab every Monday at the junior high school. The district also had some programming books that one of the high school teachers had written so I was learning LOGO and BASIC programming from them while in the first grade. At some point my mother bought an Apple GS and I was able to work on it at home every evening.

      The local public library had also received donations from Apple, and they had setup a computer lab. I can remember going there almost daily for quite a while. The best thing about their lab was that the older kids would go there to play their pirated games so I could usually beg for copies of classics like Karateka, Autobahn, Hard Hat Mac, Castle Wolfenstein, Ultima, and some swordfighting game with pirates. Ah, those were the days!

      I also lucked out and got turned onto UNIX (SunOS) during high school. I've been doing software development, database development/administration and system programming and administration ever since.

    8. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      Wow, same here! I started programming when I was five on a TRS-80 and Apple ]['s. My mother was a teacher, so she was able to bring a computer home during the summer months. At about the same time my father bought a TRS-80 from Radio Shack and I worked on that whenever I was at his house.

      The school district I attended (Illinois district 66) had received computer donations from Apple; I was in the gifted education program at my school and we got to use the Apple lab every Monday at the junior high school. The district also had some programming books that one of the high school teachers had written so I was learning LOGO and BASIC programming from them while in the first grade. At some point my mother bought an Apple GS and I was able to work on it at home every evening.

      The local public library had also received donations from Apple, and they had setup a computer lab. I can remember going there almost daily for quite a while. The best thing about their lab was that the older kids would go there to play their pirated games so I could usually beg for copies of classics like Karateka, Autobahn, Hard Hat Mac, Castle Wolfenstein, Ultima, and some swordfighting game with pirates. Ah, those were the days!

      I also lucked out and got turned onto UNIX (SunOS) during high school. I've been doing software development, database development/administration and system programming and administration ever since.

      That was fun to read! It really brought back the memories -- especially the games. I've played all of those games and they were some of my favorites! I think the pirate game (if it's the one I'm thinking of -- I remember it required memorizing various keys on the keyboard) was called Swashbuckler. Those were the days, friend. :)
    9. Re:Programming is fun to begin with! by h4ck7h3p14n37 · · Score: 1

      Swashbuckler was the game I was thinking of. Didn't you end up fighting pirate skeletons (or is that skeleton pirates?) in the later levels?

    10. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      Swashbuckler was the game I was thinking of. Didn't you end up fighting pirate skeletons (or is that skeleton pirates?) in the later levels? I think so! It all kind of blends into my subconscious memory. hehe :)
    11. Re:Programming is fun to begin with! by Phroggy · · Score: 1

      Sure, that would be a problem. I wasn't suggesting that students should be spoon-fed something to type in more than once or twice before the real lessons begin. Anybody who thinks that IS the lesson should be kept away from children.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    12. Re:Programming is fun to begin with! by Anarchysoft · · Score: 1

      Sure, that would be a problem. I wasn't suggesting that students should be spoon-fed something to type in more than once or twice before the real lessons begin. Anybody who thinks that IS the lesson should be kept away from children. Lol. I see what you mean. I do remember the books and magazines in the 80's that were filled with BASIC programs and typing those in and it was a lot of fun. A type of open source I suppose. :)
  21. from scratch... by Anonymous Coward · · Score: 1, Funny

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

  22. BBC Scratch Article with Video by Blue+Stone · · Score: 1, Funny
    --
    Corporation, n. An ingenious device for obtaining individual profit without individual responsibility. - Ambrose Bierce
    1. Re:BBC Scratch Article with Video by megastructure · · Score: 1

      Note the end of this article - it mentions Hackety Hack. 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

  23. hmm by mewsenews · · Score: 1

    what happened to logo?

  24. Real Women Aren't Afraid to Program by queenb**ch · · Score: 0, Offtopic

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

    2 cents,

    Queen B.

    --
    HDGary secures my bank :/
    1. Re:Real Women Aren't Afraid to Program by kalidasa · · Score: 2, Funny

      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.

    2. Re:Real Women Aren't Afraid to Program by Lazerf4rt · · Score: 1

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

    3. Re:Real Women Aren't Afraid to Program by Atzanteol · · Score: 0, Offtopic

      Do you really think George Washington, Sam Adams, Patrick Henry, and Thomas Jefferson would approve of the Patriot Act?

      Yes I do, at least for Sam Adams...

      http://en.wikipedia.org/wiki/Shays'_Rebellion

      --
      "Ignorance more frequently begets confidence than does knowledge"

      - Charles Darwin
    4. Re:Real Women Aren't Afraid to Program by jedidiah · · Score: 1

      Mrs. Jedi was effectively scared off by both.

      I'm not sure which she finds more gruesome prospect: Modula-2 or labor.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    5. Re:Real Women Aren't Afraid to Program by kalidasa · · Score: 1

      When there are two responses to the joke that both make the same mistake parsing it, it's not an obvious joke anymore.

  25. Oh great by glwtta · · Score: 1, Funny

    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
    1. Re:Oh great by Dekortage · · Score: 1

      According to this article, "a version of the tool is also currently being developed for the XO laptop, designed by the One Laptop Per Child Project."

      --
      $nice = $webHosting + $domainNames + $sslCerts
    2. Re:Oh great by Constantine+XVI · · Score: 1

      XO already is built heavily on Python, and even has a "View Source" key. We're screwed already

      --
      "I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
  26. Looks a lot like... by 6Yankee · · Score: 2, Interesting

    ...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?

    1. Re:Looks a lot like... by sobachatina · · Score: 1

      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.

  27. No Linux port? by darkeye · · Score: 1

    eh :(

    1. Re:No Linux port? by Basho · · Score: 1

      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...

    2. Re:No Linux port? by FictionPimp · · Score: 1

      My friends kid's machine uses linux, he has been hunting for something exactly like this, only for linux. It is a shame they have a mac port, but not a linux port.

    3. Re:No Linux port? by xenocide2 · · Score: 1

      Actually, you're welcome to make your own linux port. Just download Squeak VM (Ubuntu has packages for it, I'm sure others do too) and the windows zip file. The Scratch.image is the part you're after. Just run "squeak Scratch.image". After that it worked perfectly for me, complete with walking meowing cat.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    4. Re:No Linux port? by 4D6963 · · Score: 1

      and hope my 5 year old will expect OSes to be open and as free from DRM as possible.

      I for one hope she won't give a fuck, as in, enjoying freedom and openess but without giving a fuck. Seriously, normal people don't need such a thing to give a fuck about, they already have enough stuff to give a fuck about if you ask me.

      --
      You just got troll'd!
    5. Re:No Linux port? by Anonymous Coward · · Score: 0

      Runs just fine with WINE. Im using Ubuntu, and didnt have any trouble at all.

  28. bit like squeak by dominux · · Score: 2, Informative

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

    1. Re:bit like squeak by cheesewire · · Score: 4, Informative

      Although Scratch doesn't seem to make this clear, Scratch IS Squeak (well, an even easier to use wrapper anyway), and it's listed as a Squeak project http://www.squeak.org/Projects/
      Try for yourself... download Scratch, drag the included image onto your Squeak VM and it'll open fine (although, at least on the Mac version I can't find a way to quit properly).

    2. Re:bit like squeak by Anonymous Coward · · Score: 1, Insightful

      Yeah, Smalltalk gives you a gentle introduction and then keeps on growing more powerful until you realize that there's no better OO-language around ;)

    3. Re:bit like squeak by Abcd1234 · · Score: 1

      Making you wish that your entire environment was as accessible and programmable as the Squeak environment, leaving you spoiled and disappointed when you're forced to return to your crappy operating system. *sigh*

  29. It is a bad idea. by pavon · · Score: 4, Insightful

    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.

    1. Re:It is a bad idea. by iknownuttin · · Score: 1
      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.

      --
      I prefer Flambe as apposed flamebait.
    2. Re:It is a bad idea. by Anonymous Coward · · Score: 0

      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).

      I don't agree at all with your view on C++. Mine is that C++ is a third-generation language that was conceived when OO wasn't that well defined yet. The comp.sci community is still narrowing and defining what OO really is and a great many advances and discoveries have definitely been made way after C++ was conceived. Also don't forget that the jury is still out to decided whether or not a third generation language can be used to do proper OO programming.

      C++ is basically a huge kludge based on C that has some OO concepts, but they aren't there because it was supposed to aid in creating very large program. Aid in creating large programs is, usually, what OO is about (for some specific very large programs OO simply don't cut it).

      Don't mistake C++ and OO, they are two very different things.

      I agree with the rest you wrote but I simply don't agree at all that C++ was designed to aid in creating very large programs: C++ was designed to be an OO language because people started realizing that OO itself could aid in designing very large programs and many naive and stupid mistakes were made.

      Give Bjarne Stroustrup the OO knowledge that is out there today and, even for a third generation language, the C++ he would create would bear little ressemblance to the C++ we have today.

      C++ is a kludgy third generation language implementing some OO concepts (and it's "some" not just because C++ suffers from the inevitable limitation 3GL limitations when it comes to OO but also because it was created at a time OO wasn't that well defined yet).

    3. Re:It is a bad idea. by Frozen+Void · · Score: 1

      C alone is very complex.
      Basic at least can be programmed right off the bat.e.g. Print "anything".
      But when i tried to program in C.
      I couldn't get a simple hello world working without spending several hours on syntax errors,include files,and other little things that drive you mad.
      I wouldn't approach any language that is more complex then Qbasic.

    4. Re:It is a bad idea. by Anonymous Coward · · Score: 0

      And yet my daughter at age 6 had no problem following the simple instructions for Hello World in C, Java and Smalltalk, and then going on to demonstrate that she understood the basic concepts and figure out how to do other simple things.

      Did you read anything first? Or were you just guessing? or did you just do gcc /dev/random and wonder why it didn't work?

    5. Re:It is a bad idea. by Frozen+Void · · Score: 1

      Borland C,with built-in documentation(help).The old dos version.
      You're daughter is very smart to figure out it on your own.

  30. BASIC started it all by jshriverWVU · · Score: 1

    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.

  31. Python as a starter language by dudeX · · Score: 2, Interesting

    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.

    1. Re:Python as a starter language by Anarchysoft · · Score: 3, Interesting

      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? :)
    2. Re:Python as a starter language by Anonymous Coward · · Score: 0

      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.

    3. Re:Python as a starter language by dudeX · · Score: 1

      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

    4. Re:Python as a starter language by Anarchysoft · · Score: 1

      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.

      Yes, it took a while for them to get some of the concepts like functions and for range/xrange required more explaination than was really necessary. They did get a good grasp of what was going on by the second class hour and it was quite fun! Eventually, we made Java applets to demonstrate some graphics capability. One thing really nice about those classic home computers is that they all had good basic multimedia support. Some could even 'speak' the audio sections of the tape cassettes. ;)

      As an aside, I too am an Anarchist. :) A Excellent! :) Cheers!
    5. Re:Python as a starter language by Anonymous Coward · · Score: 3, Informative

      Pygsear is supposed to simplify teaching programming via Python and graphics. It's implemented as a layer on top of PyGame. The author is writing a textbook for a course using it. I haven't used it, so I don't know how effective it is, but it seems to implement the LOGO turtle as well as some sort of retained-mode graphics.

    6. Re:Python as a starter language by lawpoop · · Score: 1

      I've heard that squeak, a LISP/small-talk derivative, is ideal for teaching children. I don't really know much about it, but I've read claims that kids can get going with graphics and sound in short order. It's included in the OLPC software.

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
    7. Re:Python as a starter language by Chandon+Seldon · · Score: 1

      I wish Python had a nice simple drawing module that can with the standard build.

      Why does it have to be standard? Why not just write something that meets your needs on top of PyGame?

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    8. Re:Python as a starter language by Anarchysoft · · Score: 1

      Why does it have to be standard? Why not just write something that meets your needs on top of PyGame? Those are two good questions. If I may start by answering the second question, PyGame has a pretty long list of dependencies and trying to get 20 third and fourth graders running fairly old iBooks to have everything installed so that we could even begin to work with PyGame wasn't a very friendly experience for beginning programmers. PyGame is a moderately large library and already includes sufficient drawing commands, so there wouldn't be much to add. Perhaps what you were getting at is adding a simpler shim over PyGame for them to work on? As to the first question, I believe Python has suffered sorely from not having a decent graphics/widget library. If it had a standard library like Windows Forms, Swing, AppKit, etc then it would be very useful for writing GUI programs, but right now there is only Tk or various roughly supported bindings. I suppose this is much broader concern than whether there is a Canvas for beginner programmers to draw_arc in. :)
    9. Re:Python as a starter language by Chandon+Seldon · · Score: 1

      If it had a standard library like Windows Forms, Swing, AppKit, etc then it would be very useful for writing GUI programs, but right now there is only Tk or various roughly supported bindings.

      There are a ton of good GUI apps written in Python. They use such GUI toolkits as WxWidgets and Gtk. Python is already a dependency, so including a second dependency is basically trivial. On Linux, packages can have dependencies that are installed automatically. On Windows, there's a tool that lets you blob together the python interpreter and any libraries into one big Windows binary.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    10. Re:Python as a starter language by Anarchysoft · · Score: 1

      There are a ton of good GUI apps written in Python. They use such GUI toolkits as WxWidgets and Gtk. Python is already a dependency, so including a second dependency is basically trivial. Well, except that Python already comes installed on Mac and GNU/Linux. Taking a look at the large list of modules that are fairly standard with Python, do you see any reason why a good GUI library doesn't belong? If I want to write a cross platform GUI application on Python there simply is no very good library commonly available on all platforms. Furthermore, since it is so easy to interface C with Python, many of the ports aren't very Pythonic. What popular cross platform application(s) where you thinking of when you said a 'ton'? The py2exe stuff is very cool though! :)
  32. Hackety Hack by megastructure · · Score: 4, Informative
    Similar to Scratch,

    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

    1. Re:Hackety Hack by Dekortage · · Score: 1

      FYI, the BBC article about Scratch also mentions Hackity Hack as a more advanced alternative: "And for those that want to get stuck into something that looks more like traditional code there are sites like HacketyHack.... The site teaches children to code in a language called Ruby. There are seven free lessons, including one that allows them to develop a blog with just six lines of code."

      --
      $nice = $webHosting + $domainNames + $sslCerts
  33. scratch? by Anonymous Coward · · Score: 0

    isn't that what linux is writen in?

  34. Logo? Meh. by SuperBanana · · Score: 4, Interesting

    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."

  35. If Only... by N8F8 · · Score: 1

    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
  36. The universe, and the future, are big places to go by viewtouch · · Score: 1

    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.

  37. Tomorrow on Sesame Street by Dancindan84 · · Score: 3, Funny

    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
    1. Re:Tomorrow on Sesame Street by Dancindan84 · · Score: 1

      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...

      --
      "Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
  38. And to think... by Anonymous Coward · · Score: 0

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

  39. [Sigh!] If only... by monkeyboythom · · Score: 1

    MIT Media Lab made Programming Fun For Adults

  40. Logo by DragonWriter · · Score: 1

    what happened to logo?
    The MIT Teacher Education Program is doing something along the same lines with a version of Logo: StarLogo TNG; they've also released educational material centered around the older (2D, no "graphical programming") version of StarLogo which is now an open source project.
  41. dilbert already teaches kids about programming by Anonymous Coward · · Score: 0

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

  42. Robot Odyssey! by trveler · · Score: 1

    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.
  43. Bad Habits by TapeCutter · · Score: 1

    "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.
    1. Re:Bad Habits by TapeCutter · · Score: 1

      Sorry about the buggy HTML italics, I should stick to C/C++. :)

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  44. ob.. by Anonymous Coward · · Score: 0

    I, for one, welcome our new youthful overlords.

  45. Yes, more or less. by viewtouch · · Score: 2, Informative

    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.

    1. Re:Yes, more or less. by Anonymous Coward · · Score: 0

      Talk about not understanding your audience. Restaurant workers don't want a damn graphical symbolic manipulation language, they want an application. They do not want to customize it, they just want it to work and get the hell out of their way.

      Know what they use to mark seating at this brand new restaurant that opened up next door to me? Grease pencil on glass. Doesn't network very well, but when there's only one maitre d' stand, it hardly matters.

  46. Not exactly new... by cmonkey_1973 · · Score: 1
    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...

  47. Used for terrorists! by Nukenbar · · Score: 1

    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...

  48. Forth with Turtle Graphics by InsaneProcessor · · Score: 1

    Wasn't Forth with Turtle Graphics supposed to be fun for grade schoolers?

    --

    Athiesm is a religion like not collecting stamps is a hobby.
  49. LOGO! by bpb213 · · Score: 1

    Anyone else remember the turtle?

    --

    This .sig looking for creative and witty saying.
  50. Marc Overmars? Really? by Diddlbiker · · Score: 1

    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.

    1. Re:Marc Overmars? Really? by cmonkey_1973 · · Score: 1
      Yeah! Completing his PhD in the design of dynamic data structures at the age of 10 must have been a particular high point.

      Or that's a different bloke. One of those, certainly.

  51. Re:Logo? Meh. by Anonymous Coward · · Score: 1, Interesting

    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.

  52. Dear god, who scripted that video? by cmonkey_1973 · · Score: 1

    "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...

  53. Pop culture by Brian+Cohen · · Score: 1

    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.

  54. Re:Logo? Meh. by ErikInterlude · · Score: 1

    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
  55. What about professionals? by Sperbels · · Score: 1

    Programming was fun when I was kid. It became un-fun when I started doing it for money. How about they fix that?

    1. Re:What about professionals? by mh1997 · · Score: 1

      Programming was fun when I was kid. It became un-fun when I started doing it for money. How about they fix that?

      Probably the smartest comment I will ever read on slashdot. I've been programming off and on for the last 25 years (I am 40) and it is still a blast only because I do not program for a living. My projects are what I want, when I want, and only completed if I want.

      Too bad I learned this before I became an EE. Electronics might still be fun

  56. Is it interpreted? by X-rated+Ouroboros · · Score: 1

    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
  57. Good luck... by interval1066 · · Score: 0

    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".'
  58. Dorba, the message broker by Anonymous Coward · · Score: 0

    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.

  59. I love it by Tikiman49 · · Score: 1

    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.

  60. Project Greenfoot by Augusto · · Score: 1

    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.
  61. Because we can't have "unforgiving" code by Dekortage · · Score: 1

    According to the BBC article on Scratch:

    "The thing that's very difficult for children encountering programming for the first time is that it is very unforgiving," said Professor Shadbolt. "A program doesn't congratulate you for the 90% that you got right. It fails for the 10% you got wrong. So an environment where you are essentially assembling components that can only be configured in set ways takes some of that hardship away."

    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
    1. Re:Because we can't have "unforgiving" code by Steve525 · · Score: 1

      Here's a seamingly unrelated story...

      About 10 years ago I tried to learn to windsurf. I didn't get very far. Everytime I'd try to bring up the sail I'd fall over. After a couple hours (with some breaks) I was exhausted, frustrated, and no closer to succeeding than I was when I started.

      Later I asked someone else how they learned. It turns out that he started with a small sail. It's a lot more forgiving, and you can achieve some success pretty quickly. This allows you to improve your technique, and then you can move on to a proper sized sail.

      I think you can see where I'm going with this. I you are learning something, you may not be able to tell which 90% you got right, and which 10% you got wrong. It is therefore very difficult to make progress.

      A good tutorial which introduces programming concepts slowly, and has good examples can also help (as well as a good instructor). So, I do agree, that there are other solutions. However, I still think this and similar tools are valuable for getting people started in programming.

    2. Re:Because we can't have "unforgiving" code by Dekortage · · Score: 1

      I agree with you in principle; certainly it is difficult to make progress when you don't know what you are doing wrong. Still, this doesn't convince me that Scratch is the way to get kids involved in programming. The best part of your story is that you got advice from someone else. And the better way of knowing which 10% of your code is wrong, is having a better debugger that tells you where you went wrong and what part of it seems to be a problem. A kid-level debugger. (Now if I could debug the rest of my children's problems, we would be on to something...)

      I suppose I don't like Scratch because it feels like a distraction from real programming. Heck, I would rather find a simple way of teaching kids Flash and ActionScript: at least he or she could step it up to something more advanced if they wanted.

      --
      $nice = $webHosting + $domainNames + $sslCerts
    3. Re:Because we can't have "unforgiving" code by Abcd1234 · · Score: 1

      It's called learning

      No, it's called a frustrating barrier to entry. Having my creative process interrupted because I forgot a friggin' semicolon somewhere is very annoying, and I'm a fairly experienced programmer. Now imagine you're 7 years old, you're about to make your first program do something, and the computer says 'error: syntax error before "printf"'.

      The idea, here, is to lower the barrier so kids won't get immediately frustrated and turn away. Remember, they're *kids*. Refusing to make things easier in a misguided attempt to encourage them to "tough it out" just means more kids will give up and try something that's more fun. After all, when we teach math, we start out with counting, not calculus. Why not do the same with programming?

    4. Re:Because we can't have "unforgiving" code by Dekortage · · Score: 1

      when we teach math, we start out with counting, not calculus. Why not do the same with programming?

      At least counting is still real mathematics; simple, basic, fundamental, but real. With programming, you also start small. That doesn't preclude them from learning a real language, though. They aren't going to build a word processor or inventory management system right out of the gate -- and who would want to anyway? But if you're going to teach someone simple multimedia, why not try basic DHTML/JavaScript? Or Flash/ActionScript? These can at least be expanded into something much more advanced.

      --
      $nice = $webHosting + $domainNames + $sslCerts
    5. Re:Because we can't have "unforgiving" code by hotsauce · · Score: 1

      What stops Scratch from being "real"?

      Or makes JavaScript (of all heinous "languages") real?

      We teach Physics without friction, you know. Then add it. Then tell you even all that is wrong, and teach relativity.

      You don't like the graphics? Ever use million dollar enterprise flow systems? Guess how they're programmed...

    6. Re:Because we can't have "unforgiving" code by Abcd1234 · · Score: 1

      At least counting is still real mathematics;

      Ah, I see. You possess the rather odd preconception that programming necessarily means hacking code, and therefore building applications visually isn't "programming". What you need to realize is that programming languages are merely a (often poor) representation of mathematics, logic, flow control, etc. So if you can express the same concepts visually, why not? Either way you reach the same destination, it's just a different vehicle.

      Hell, many years ago, there was a great deal of research into high powered, industrial strength visual programming environments, work which continues to this day. I suspect they didn't succeed, in part, because narrowminded folks out there said "it ain't programming if you aren't hacking in a text editor!"

      Oh, and BTW, DHTML is a terrible idea. Experienced developers are frustrated by the lack of a decent development environment, let alone a child. Meanwhile, Flash/ActionScript is irritatingly proprietary.

    7. Re:Because we can't have "unforgiving" code by Anonymous Coward · · Score: 0

      If only Flash would be affordable to most schools, ActionScript wouldn't be that bad of an idea for starting. Unfortunately even educational licences are priced such that it's typically limited to a certain computer lab or only available to more affluent schools. It's a shame, since it would let kids do things like make content and then figure out how to make it do something. So they could do something creative such as having a dancing gerbil, and then do the coding to make interesting interactive ways of blowing it up. (Or giving it treats if the school is run by politically correct-nazis.)

      Still there are some things that BASIC (Atari version was my fav.) can do that Flash couldn't (or at least described up front). Stuff like generating a sound directly from the computer, or more "dangerous" stuff as poking memory or fudging with I/O ports. With Flash, it seems you need to import sounds. Also line numbers are ok for getting into the habit of organizing ahead, even though later on you find it crimps flexibility. Perhaps starting out in some form of BASIC is ok to get a framework of linear concepts, but then when moving to more modular concepts - gain an understanding of BASIC's flaws (like having to renumber or clear out lines after a change) and move on to something else.

  62. Re:The universe, and the future, are big places to by Ambitwistor · · Score: 1

    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.

  63. Welp by SydBarrett · · Score: 4, Funny

    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.

    1. Re:Welp by famebait · · Score: 1

      if there ever was a testimonial that deserves to be put on the home page, this is it!

      --
      sudo ergo sum
    2. Re:Welp by Anonymous Coward · · Score: 0

      Damn. You just made me check it out.

  64. Interesting Point, I think by viewtouch · · Score: 1

    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.

    1. Re:Interesting Point, I think by Anonymous Coward · · Score: 0

      I like reading books. Sometimes (usually?) I prefer a book over a movie (like Lord of the Rings, the book was better). I guess people aren't that graphical after all. The day books disappear because they "MUST eventually become graphical. It's that simple. And inevitable." will be a sad day indeed.

    2. Re:Interesting Point, I think by viewtouch · · Score: 1

      How long have people been reading books?

      How long have people (and countless other animals with eyes) been using their visual awareness of the world to move around, locate food, procreate and survive?

      Nobody's trying to do away with books. What people who develop and use languages other than the spoken languages are trying to do is to build a better world. If the tool you need doesn't exist you build it. If the language you need doesn't exist you build it. A spoken language only requires speech and hearing. Text only requires a spoken language and, in the case of most languages, a written expression of it. A graphical language requires a similar means to express it. It's still very early in the development of graphical tools and languages. It was not much more than 20 years ago that the average person could actually even buy a graphical PC - The Atari and The Amiga, in particular.

  65. Kids don't want kiddie stuff by Krommenaas · · Score: 1

    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.

  66. Something similar developed in Brazil by khristian · · Score: 1

    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.
  67. Re:Logo? Meh. by leighklotz · · Score: 3, Funny

    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.

  68. Robot Odyssey and MindRover by TheNicestGuy · · Score: 1

    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.

  69. Re:Logo? Meh. by charlie763 · · Score: 1

    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...
  70. Logo was good stuff by bussdriver · · Score: 1

    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.

  71. Addr is the abreviation address by stacybro · · Score: 1

    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!"

  72. Ah, programming... by clem · · Score: 1

    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.
  73. Re:Logo? Meh. by GeoVizer · · Score: 1

    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).

  74. Re:The universe, and the future, are big places to by viewtouch · · Score: 1

    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.

  75. Another graphical language by paulxnuke · · Score: 2, Interesting

    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.

  76. Competition by PatTheGreat · · Score: 1

    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."
  77. This sucks by jopet · · Score: 1

    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.

    1. Re:This sucks by Abcd1234 · · Score: 1

      WTF are you talking about? It's based on Squeak, the most open, accessible programming environment you will ever find, far more rich and powerful than Ruby (which is just a poor reimplementation of Smalltalk). And by definition, it must come with source code.

    2. Re:This sucks by jopet · · Score: 1

      Well, I was looking at the Scratch link given in the original article and all I found was Windows/Mac installers, but no hint of source code and no Linux version.

  78. Yes there are. by pavon · · Score: 1

    Are there courses designed to make neurosurgery less intimidating They are called biology classes. Kids learn about how organs and cells, and even practice "surgery" by dissecting animals and seeing first-hand what the organs look like.

    or elite forces soldering less dangerous or stressful? Ah, good old gym class :)

    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. The skills the need at their age? Beyond knowing how to ingest food and play nice with others I can't think of any skills that kids need. Everything that they are taught from kindergarten on up is preparation for the future.

    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.
  79. I politely disagree: CS is beautiful. by TerranFury · · Score: 3, Insightful

    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.

  80. Re:Logo? Meh. by British · · Score: 1

    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.

  81. Squeak EToys extension by streak · · Score: 1

    This looks almost exactly like an extension to Squeak EToys.
    Very similar interface.
    Heck, the files in the .zip are even similar to what you would find with a Squeak distribution:
    An .exe (the runtime) and a .image (the content)

    Though I'm struggling to see any mention of Squeak anywhere on the pages. Maybe I'm wrong...

    1. Re:Squeak EToys extension by Anonymous Coward · · Score: 0

      and squeak, etoys is like AgentSheets. I guess this is the age when people are no longer acknowledging related work.

    2. Re:Squeak EToys extension by Teancum · · Score: 1

      I guess you missed the part that this is built on top of Squeak and using the Squeak VM as the script interpreter. All they have done here is to design a nice GUI on top of it, and proclaiming it a new language so they aren't tied down to slavishly implementing every feature of Squeak, and giving them an opportunity to implement new language features that go in new directions from the mainline Squeak development.

      So yeah, there are legitimate reasons to link a comparison can be made here. It is mentioned on the website and documentation, but you have to dig a little deeper before you read about that little tidbit.

  82. We should work on the math first by SparkleMotion88 · · Score: 1

    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.

  83. xturtle by Kludge · · Score: 1

    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.

    1. Re:xturtle by Anarchysoft · · Score: 1

      It really brings back the memories. That's a great applet! Thanks for the link. :)

  84. Re:The universe, and the future, are big places to by Ambitwistor · · Score: 1

    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.

  85. Alice, squeak, etc. by Kludge · · Score: 1

    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.

  86. panda3d by Kludge · · Score: 1

    Almost forgot!

    panda3d works very well
    and the kids really love it,
    though it does require more advanced programming
    concepts.

  87. Here's what it's good for! by gatesvp · · Score: 1

    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.

  88. Next up: American kids outsource playing to India. by bADlOGIN · · Score: 1

    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.
  89. Re:BASIC started it all - NO FORTRAN by Anonymous Coward · · Score: 0

    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?

  90. Go, Charlie, Edna, whoever... by Anonymous Coward · · Score: 0

    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.

  91. Re:Logo? Meh. by mbrubeck · · Score: 1

    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.

  92. lets see by AlgorithMan · · Score: 2, Funny
    lets see...

    PRINT "Hello World!"
    uh... what errorlevel does this return (which I can catch in batch scripts)?
    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
    1. Re:lets see by AKAImBatman · · Score: 1

      yes, basic is convenient, simple and intuitive... for beginners...
      to professionals it's just a child's toy
      /me awards AlgorithMan the "Most Obvious Statement of the Year Award".

      Correct me if I'm wrong, but we are speaking about programming languages for beginners, right?
  93. Reminds me of AgentSheets by jbgreer · · Score: 1

    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
  94. Re:Logo? Meh. by merreborn · · Score: 1

    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.

  95. Where's the source? by Darth+Cider · · Score: 1

    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.

    1. Re:Where's the source? by Teancum · · Score: 1

      I am certainly interested in the idea of incorporating some of this project and concepts into another little project that I'm working on. If this truly becomes open source, I am very much interested in taking this into other directions than has been the case so far.

      The idea of adding extensions onto Scratch is appealing as is my technical capability of being able to make them, and this project is something that has certainly triggered some ideas on the use and implementation of this language. While the graphical "drag and drop" is a gimmick that certainly could be done just as well with a more traditional text editor, this does have appeal with younger individuals who are very much used to mouse actions but don't really feel comfortable around text editors, and it virtually eliminates all syntax errors.... a very common source of frustration for beginning programmers.

  96. My Computer Curriculum by wynand1004 · · Score: 2, Informative

    I've been teaching computers for the past 4 years to middle school students in Japan. Here are the programs I use:

    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. :) 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/.

    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
  97. blocks look like those used in sprog by t35t0r · · Score: 1

    those blocks he puts together look exactly like the blocks used in the graphics perl programming environment called SProg

  98. Reminds me of HyperCard by johncadengo · · Score: 1

    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.
  99. Insightful by Anonymous Coward · · Score: 0

    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.

  100. Mod This Up !! by viewtouch · · Score: 1

    Anybody who can correctly answer a rhetorical question deserves mod points !!

  101. "Threatening" is Sophistry by bill_mcgonigle · · Score: 1

    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)
  102. Another approach: simpleJ by magoghm · · Score: 1

    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).

  103. Squeak and ToonTalk have the same goals by boustrophedon · · Score: 1

    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.

  104. Re:The universe, and the future, are big places to by Frozen+Void · · Score: 1

    Are they easier then Batch files? Qbasic? C?

  105. Source code, not user interfaces by p3d0 · · Score: 1
    You made a number of points, some of which I agree with, but I wanted to point out this one:

    Hieroglypics sacred stone carvings controlled by the prevailing theocracy and used solely to reinforce the myth of eternal life.

    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....
    1. Re:Source code, not user interfaces by viewtouch · · Score: 1

      Thanks for that reply. I have a few thoughts, mostly obvious...

      Sourcecode is just the human readable component closest to the machine readable component. It's not really readable to too many humans, and requires a LOT of training in the case of C and even more in C++. Of course there are people who understand the code at lower levels but they are looking at the molecules of wood in, say, a door and have no idea that the door is the big picture. The same could be said of the C and C++ programmer - unless they see the program execute they have no idea what the program actually does in its entirety. Only someone who sees the interface can do that. Whether it's an automobile, a complex software program or a building, it isn't possible that any single person understands everything about how it is created.

      You mentioned that people don't use pictures to write novels. Well, there are illustrations in many old books, an aspect of novels that is less common today than in centuries past. Today people make movies, however, and although some contend that the imagery they perceive when reading is richer than the imagery they perceive when watching a movie, there's no difficulty in making the argument that the imagery perceived from watching a movie surpasses what can be perceived from reading any written description of it.

      I'm also thinking of the comparison of, say, a written explanation of how to learn to do plumbing versus watching someone show you how to do plumbing, and an interactive graphical video, including graphical effects, of how to learn plumbing. These are all instructions on how to achieve something. Such a video is a language in that it can communicate ideas. To the assertion that it's not interactive as sourcecode text is, then all we have to do is add to the video the ability to edit it.
      It's a series of instructions - it's graphical - it's editable.

      Graphical programming may not be able to be expressed completely in the same terms that text programming is expressed but again, the opposite, text programming may not be able to be expressed completely in the same terms that graphical programming is expressed. I see no problem with that - neither expression is less valid nor less useful nor less essential than the other.

      Text programming is not a completed progression, not by a long shot, and neither is graphical programming. Both are very early on. I'm really only saying that we need progress in graphical programming and graphical languages in much the same way we need progress in text programming and in text representations of spoken languages. Very long temporal timescales apply.

    2. Re:Source code, not user interfaces by Chris+Shannon · · Score: 1

      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."
      There's a reason it's called "code".
      --
      "Follow me" the wise man said, but he walked behind.
  106. Boku: Lightweight Programming for Kids on Xbox360 by Anonymous Coward · · Score: 0
  107. Aardappel by p3d0 · · Score: 1
    Well, it's hard to argue against that position. All I can say is that my gut feeling is that text will always be the most preferred way to write the most complex software systems. I'd love to be proven wrong.

    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:

    def qsort1(list):
        if list == []:
            return []
        else:
            pivot = list[0]
            lesser = qsort1([x for x in list[1:] if x < pivot])
            greater = qsort1([x for x in list[1:] if x >= pivot])
            return lesser + [pivot] + greater
    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    1. Re:Aardappel by viewtouch · · Score: 1

      I spent a little while looking at the information on the linked page, and at the Aardapple (Dutch for Potato, Aard=Earth) thesis cursorially. I have to agree with your opinion of it. It's not graphical. Graphics have to represent both real and abstract concepts, not just words and numbers. Then there's the whole issue of the necessity for a graphical syntax as a requirement for a graphical language.

      I spent a few years long ago trying to become a linguistic anthroplogist - the concepts of language, meaning and formal symbolic systems fascinates me but I am way too busy to spend enough time exploring them.

      I have no doubt that many new graphical languages will come to exist and that, eventually, graphical programming languages will, too. I don't think they will be built from the bottom up, however - I think they will be created top-down, by people who create the components they need to create efficiencies in their own situations. This is how spoken languages arose, without a doubt.

      While we are comfortable with what we perceive as the distinction between text and graphics, I suspect that if we were to get into the subject of how the brain creates an understanding of things expressed as text versus things expresses as images, the human brain may well not even make a qualitative distinction between the two. It's very deep water.

      My confidence comes from having created a graphical language that can completely replace and supplant the spoken language in the context of operating a restaurant. It does rely heavily on outputting text and it's also true that it does not replace written language. It is only safe to say that people are communicating with the assistance of graphical symbols, and it's still very primitive, but at least we can say that it is a system that can be learned quickly and which does produce substantial efficiencies.

      To conclude this exchange I'm grateful for your thoughts. Lots of success in your future endeavors, Patrick.

  108. Flex and other Web languages by arete · · Score: 1

    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
  109. Restaurant language? by p3d0 · · Score: 1

    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....
  110. Scratch by lego_prof · · Score: 2, Informative

    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:

    • it uses drag-and-drop graphical programming so that kids can focus on core computational ideas (like iteration, conditionals, variables) and logical thinking, not obscure syntax
    • it supports media-manipulation activities (integrating images, sound, music), so that kids can create projects they really care about
    • it supports online sharing of projects, so that kids can see other people's projects (for ideas and inspiration) and share their own projects (for motivation and feedback)

    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.

  111. Check this out, Patrick by viewtouch · · Score: 1

    Here you go, Patrick. Check this out.
    http://venturebeat.com/2007/05/19/elementeos-13-ye ar-old-ceo-highlight-of-tiecon/#more-12504

    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.

  112. Offtopic by xtracto · · Score: 1

    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'