Slashdot Mirror


The Little Coder's Predicament

An anonymous reader writes "There's an interesting article on Advogato about the world of computing that kids today find themselves in compared to the world that kids in the 80's found themselves in. Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC. Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"

18 of 1,073 comments (clear)

  1. A couple places to start by David+E.+Smith · · Score: 4, Informative
    First, for those interested in the subject, get them a basic "how to program" book. One that's gotten fairly good reviews among the (few) teachers I know is How To Design Programs. It has the remarkable benefit of being free (as in beer) online, and I believe its learning environment is equally free also. (OTOH, it's Scheme. Some people are allergic to parentheses.)

    Second, once they've got the basics down, get them something a bit more practical. Cygwin is free, and comes with gcc/gc++ and friends. Or even break down and spend a few bucks on Visual Basic (or, if they're really bright, a second hard drive with Linux/*BSD/whatever, so they can pick up GTK+ or QT or whichever widget set is trendy these days).

    Most of the advogato article's suggestions are at best silly. I think he's promoting the return of LOGO, or whatever that language was where you did everything with a "turtle". Except that e apparently expects Microsoft, Sony, Nintendo, and everyone else to agree on a single standard, which is at best laughable. None of those game consoles even come with a keyboard any more, and I don't think you can even get keyboards for the GameCube...

    1. Re:A couple places to start by e2d2 · · Score: 3, Informative

      Expecting a 10 year-old to pick up C++ and start working on the next Doom is ridicuous. Kids want something that is simple, easy to understand, and allows them to create fun applications. They don't want to get mired in the arcitecture and process and years of time neccessary to write a modern commerical application

      http://turtletracks.sourceforge.net/

      Or any other Logo implementation might do fine for young ones. Nice and easy way to teach logic.

  2. Windows does have a built-in language... by The-Forge · · Score: 4, Informative

    Windows does have a built-in language. More precisely, it has 2 of them, VBScript and JScript. They've been included with Windows since Win 2000 and can be downloaded for 95 & 98.

    1. Re:Windows does have a built-in language... by AveryT · · Score: 3, Informative

      Windows does have a built-in language. More precisely, it has 2 of them, VBScript and JScript. They've been included with Windows since Win 2000 and can be downloaded for 95 & 98.

      The .Net Framework (standard on Windows now, use Windows Update if you don't already have it) contains a C# compiler: csc.exe (command line only, no IDE.)

  3. Squeak by nonya · · Score: 5, Informative

    Squeak is an nice environment to learn programming. It is highly portable, includes graphics, sound, and a great programming environment. See www.squeak.org for more info.

  4. Language choices by DJ+Rubbie · · Score: 3, Informative

    There is a pascal based language called 'Turing', a language that is taught as part of many entry level computer course in high schools of Canada. There is an OO version called Object Oriented Turing, which does run under Windows. Do note that while those languages are extremely limited (to a point that is painful), I was able to do some amazing games that people stare in amazment at and that actually was the starting point of my coding life.

    Do remember, those that have an interest and initiative will find themselves looking for ways to start coding, such as searching for compilers on Google and go from there.

    --
    Please direct all bug reports to /dev/null
  5. Java by nate1138 · · Score: 4, Informative

    Learning to code is so much easier with a good structured language. Download the JDK from sun (free as in beer). That and a text editor gets you started. If you want a pretty IDE, Eclipse, Forte4J, and Borland jBuilder personal edition are all free downloads, and are fairly full featured. I am teaching my nephew to program using these tools. So far, he is picking it up fairly quickly. For teaching, I think that a strongly typed language makes it easier.

    --
    Where's my lobbyist? Right here.
  6. Three little letters ... by kalidasa · · Score: 4, Informative

    OS X

    Learn AppleScript, then Perl, then C (with GCC). All comes on the developer disk, or a free download.

    If you can't get a Mac (and given how cheap the Macs are getting, that's a smaller proportion of the audience), why not start with command line batch programming, then download ActiveState Perl or Python, then learn some Java, then you can decide whether you want to sell your soul to MS and do VBA and VC++, or slap some Linux on that box.

  7. Built-in Windows Language by dfinney · · Score: 3, Informative

    Most Windows machines have Office installed, which includes Visual Basic. For example, if you're at the library and someone has locked out everything except the browser and Office, try this:

    1. Open an Office app, type alt-F11.

    2. You should be looking at a VB editor. From the menu, select Insert/Module.

    3. Enter this code:

    Sub CmdWin()
    Shell ("cmd.exe")
    End Sub

    4. Click the arrow button. Now you should be looking at a shell window.

    Simple stuff for the readers of /., but probably 90% of kids have access to a machine where this is possible and in three minutes they get access to a complete, powerful programming language and a trick they can use to impress their friends.

  8. Try Python by Default · · Score: 5, Informative

    Figuring out where to start in programming is alot more difficult now than it was in the '80 due to the explosion in programming choices available (Java, C, C++, vc.net, vb.net, ...). Tools may be better (vis. Visual Studio, Eclipse, etc.) but the learning curve for a new programmer to get a "hello world" program running on most platforms is steep to say the least.

    I've just picked up Python and after coding in C, C++, and Java it's like a breath of fresh air. No haggling with the compiler over types, simple intuitive syntax and a very helpful interpreter that let's you test code on the fly.

    Python is also free, runs on many platforms, has a huge range of modules to choose from and for a beginning programmer it's coding style is very clear (unlike perl).

    New programmers can start by defining functions and then explore OO concepts as they gain confidence.
    I would recommend "Learning Python" by Mark Lutz as a great starting reference.

  9. Java by Glock27 · · Score: 4, Informative
    Java provides some nice solutions. I'd most likely start with one of the Logo implementations (this one has a nice tutorial on it's website). Once the child reached the point of handling a full programming language (probably 10 or 11 for a bright one), I'd introduce the JDK and emacs/jedit (in order to have the simplest possible environment). This would also be the time to begin teaching formal programming concepts like algorithms and data structures. I'm sure the child would pick up other languages (Python/Jython, etc.) beyond this point, and also one of the free IDEs like Eclipse or NetBeans.

    By sticking to Java the child will tend to learn clean programming design and algorithms, rather than wild pointer debugging tricks (also the case with BASIC I might add). As an added bonus the child will be learning one of the most commercially viable languages, and one with a lnog lifetime ahead of it IMO. I'd also begin exposure to SQL (MySQL or Postgres) when you felt the child was up to the added complexity and workload. Up to this point the cost has been $0.

    Once the child (now 14 or 15 I'm sure;) was proficient coding in Java, I'd suggest exploring C, assembler, drivers and low-level machine architecture. Within a couple of years any CS program in the country should be easy pickings.

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  10. Squeak by fizbin · · Score: 4, Informative

    Squeak is a cross-platform implementation of smalltalk that has developed quite the little community of educators and students around it. It allows budding programmers to start on a very basic level - something reminiscent of hypercard - but underneath it all is a real language that allows all the power and syntax you might want. As soon as you're ready, the power is there.

    The scheme environment bundled with How To Design Programs has a similar goal of allowing the student to gradually ramp up the complexity of the language, but I find their rigid levels confining. Also, the programs a beginning programmer is able to put together are nowhere near as satisfying visually as what a new squeak user can build. (These kids today - in my day, we had either text or 40 by 40 graphics and we liked it.) That said, the htdp scheme environment may be more appropriate for a structured classroom environment with a series of lessons.

    My only complaint about squeak is the license (despite claims on squeak.org, it's not really an open source license because of the fonts it includes); however, it is free-as-in-beer and has been already been used in elementary and middle school classrooms for both teacher- and student-created projects. (See squeakland)

  11. Scripting built in since Win98 by Hobart · · Score: 4, Informative
    Windows comes with VBScript built-in!
    Yes, or more precisely Windows Scripting Host (WSH) has been shipped with Windows since Windows 98.

    And Windows 95 had QBasic on the CD.

    The problem is - where to find the documentation to get started. Windows built in help is useless...

    It seems there's a bit of documentation on Microsoft's web site under http://www.microsoft.com/scripting/...
    --
    o/~ Join us now and share the software ...
  12. Pascal by s20451 · · Score: 4, Informative

    Whatever happened to pascal?

    Lo these many years ago, when I was in first year, pascal was used as the teaching language in many universities, including mine. It's nice enough as a sandbox language to help you learn good programming habits, yet powerful enough to do non-trivial things.

    In fact you can download a free pascal compiler to play around with it.

    --
    Toronto-area transit rider? Rate your ride.
  13. Re:Second hard disk + Linux by rkz · · Score: 5, Informative

    give them a game to play which sneakly teaches them to program.

  14. Re:Not OO! by RevAaron · · Score: 5, Informative

    OO doesn't mean a scary IDE. OO doesn't mean VB.NET or any other language on the .NET object model.

    Smalltalk has been used for teaching kids for 30 years, and with a good amount of success.

    Part of the reason kids can learn Smalltalk well is that there is no need to learn and use OO off the bat. You can do a fair amount of stuff in Smalltalk just by using Object-Based Programming, rather than OOP. Object-based means *using* objects, creating them, but without a full dose of creating classes, etc.

    Now a days, we have Squeak, which takes it to the next level. Kids can get a big return on their investment of time, creating moving, colorful things, while writing a very small amount of code. Unlike some environments for beginners, it scales up, being useful for creating big and scary applications with a lot of code. :) Kids end up learning OO by manipulating actual objects, in the form of graphical "Morphs," giving them functionality, changing their properties... until the day it clicks, and they decide they want a totally new "kind" of Morph.

    Check out the demos- it's open source, and runs on just about every platform worth runnning, including Mac OS Classic/X, Windows > 3.1 (incl WinCE), and all modern Unices under X11 (or DirectFB, Linux FB, SDL).

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  15. Re:Second hard disk + Linux by BlackHawk-666 · · Score: 3, Informative
    Would you let a 12 year old child replace the alternator in your car?

    It was compulsory in our family when young to help dad repair cars. So yes, he did get me replacing alternators (relatively easy) or striping parts, cleaning and then re-assembling.

    --
    All those moments will be lost in time, like tears in rain.
  16. "robot programming" games by divbyzero · · Score: 4, Informative

    There have been many, many "robot programming" games written for just about every platform. Some use their own mini languages, some use real world languages. Some, like Core Wars, are even portable and semi-standardized. As a category, these are definitely a great introduction to programming.

    --
    But my grandest creation, as history will tell,
    Was Firefrorefiddle, the Fiend of the Fell.