Domain: softronix.com
Stories and comments across the archive that link to softronix.com.
Comments · 21
-
Re:There are options
Interesting Logo variant - I wonder how it compares to MSWLogo (the UCBLogo-derived version I learned to program on...)
-
The problem is the environment
I think the problem with why there has been less interest lies not within the kids but in the environment they are in. I remember back when I was in primary school (when I was 9 to be precise) computing was something fairly new, especially here and at that age. As was programming. I also remember most of my friends wanting to play games and do nothing. I was different, I wanted to make the computer do something. The key to me, gradualy evolving into a programmer and a student of CS, was our teacher. She thought me the fun parts of programming first as opposed to what a lot of people are doing now. For example, in high school our CS teacher actually starts to explain bits and bytes and how to calculate the length of a file from the number of characters inside one. Well, really, beautifull.
I don't know about you, but if I never programmed before, thinking of all those bytes and stuff, would have made me feel uneasy to start. I mean, I don't know, will I be smart enough to understand? She doesn't say that, there are languages like LOGO that you can actually learn stuff. She says that computing is a complex task, with 1 and 0 ... Given this, most of my friends thought I was the über geek at that time. I mean, considering they had no knowledge of the computer, when I showed them a fairly simple program, something that I wrote, they would just go like, wow. So I think that the problem is, as I've said in the environment.
If we want more people to program we have to start teaching them in a different way, in a way that promotes self learning and which does not imply that knowing how to program means that you are a geek. We'd have to change the world... But the other question is, do we want more people to program? These days anyone who has seen a C++ code file can contribute to an open source project, which is great, if he has some knowledge to contribute, or very bad if he just bodges up something that works but is impossible to maintain. This same is true for companies who employ non qualifyed students to do their work. It happens that the end program looks great, and does exactly what they asked it to do, but when they want to maintain it, they see stupidities like:
Sring s = new String("");
This is, btw, a real example from a code review at our company. So, maybe we should just leave it like it is, make people think that programming is an elite skill that only a few know. Those who really want to learn will learn. As many of the posters before me stated, they learned themselves. I did too; granted with a few pushes from my teacher but still, after primary school I was more or less on my own. And I think this was OK.
In conclusion, no, I don't think people are losing interest in programming, I just think it's the same percentage of people who are interested, but it's a higher demand. So we either force people (kids) to program and make them into bitter programmers who write spam zombies, spyware and adware, or we let them learn and write cool software that actually helps us do something better. I for one, opt for the second options as I have way to much spam in my inbox anyway :-). -
Mine too... (creatively using computesr at 3.5+)> My son has been fluent with a mouse for about a year, since he was 3 1/2.
That's about the same age my younger son Jonatan started using the computer intensively. The older one (Daniel) started a bit later (about 4 1/2). But we had a laptop with only a touchpad back then so it was more difficult for him. Last year the children's demand for the computer became so high that I set them up with their own computers (photo of their room, that my wife would never have allowed me to publish if she could prevent it...).
Whatever they play, on the computer or not on the computer, the most important thing is that it should be a tool to aid their creativity, not to limit it. In "Hardware toys" it means things like Lego basic constrution sets (and other manufacturers. Both quality and quantity are mportant factors here: lack of each limits the child's creativity).
With Daniel we started with some cheap commercial games from Office Depot clearance. I don't think it's the right way. These quite limit the child to following instructions.
With Jonatan, we didn't make the effort to look for things to buy. He's a second child... So it was more like finding whatever we have that can occupy him so he doesn't bother us, and it worked better. M$ Paint turned out to be really great for him. It was simple enough to use, and he was very creative with it. Then he discovered Google: he uses Google images to look for pictures, then he cpopies and pastes them into his own works (He got a bit addicted to Google, and when we went on a 3 weeks vacation and he didn't have acess to the computer he was drawing pictures of the Google logo with his crayons... A few months ago when he wanted to find something his granfather told him it cannot be found on Google. So he said to his Grandpa: "Grandpa, anything can be found on Google if you know how to look for it!". Even searching Google requires creativity).Another good piece of Children's software that encourages creativity is Drape (Drawing Programming Environment). It is a sort of programming environment similar to to Logo in some respect, but not exactly the same. One advantage is that it allows for very easy mouse interaction, so a child can create things that "work" quite easily (i.e., with just a bit of adult intervention). Form the same source, Game Maker is more suitable for older children. It is a programming environment to create games, either by using drag and drop or a builtin programming language. I've seen nice cooperation between the younger and older brother here: the young one chooses the objects and graphics, and drwas the levels of the games. The older one completes the game by adding the more abstract parts: actions and interactions. Logo is of course a very good thing for children. For the smaller ones the online r-logo is very easy and fun to use. For more serious Logo programming MSWlogo is a much more powerful implementation (including 3-dimensionality and multi-tasking). There's no need to "choose one". My son Daniel first thinks of an idea he wants to implement, then chooses the most appropriate tool, just like a programmer choosing the most appropriate programming languge for the job (he has several flavors of Logo and choses the one that has what he needs for a project. He also uses Visual Basic that he learned at school).
What else?
For several months my kids were addicted to Enigma. It's "just a game", but actually it involved loads of creativity in solving an entirely different puzzle in each level, and has the right balance between sing the brain and coordinating mo -
Re:Get them young huh?
But what good is a certification in Logo? I guess coding for Windows beats making shoes for Nike.
Not much use, though some variants are surprisingly powerful. (May run under Wine, on a good day. Probably also a good way of pwning Win98-running school PCs, if they have it installed...) -
Logo lives!I'm a big fan of Logo. One of the reasons is that it's not written for programmers, it's written for kids who may or may not become programmers. It has things that would make normal programmers cringe -- like all the shortcuts (FD for FORWARD). But have you seen a young child type? Believe me, FD is enough of a struggle, "intention-revealing selectors" is not one of their top priorities.
Really Logo wasn't intended to teach programming (though of course it did that). It was intended to teach math, and algorithmic thinking, and thinking in general. And, paired with the right teacher and an interested pupil, it's really great at that. Without realizing it, a child can end up learning not just geometry (through the turtle graphics), but a lot of pre-algebra. I think programming is a far more accessible way to introduce algebra than the traditional techniques; even young children can understand variables in programs, when the declarative variables that are used in mathematics are much more challenging.
It's also a better language than many of "teaching" languages, like Basic. It's an old-school version of Lisp, with a little tweak to avoid the parenthesis. And don't be fooled by things that call themselves Logo when they are just turtle graphics. Turtle graphics are cool, but just a piece of the equation. (Though not-so-coincidentally, Python has built-in turtle graphics).
If you are really interested in programming as education, I might recommend the book Mindstorms, which is a classic about some of the theory behind teaching with Logo. It's not a practical guide, though many of those also exist.
If you are looking for a Logo implementation, on Windows I would recommend Elica, MSWLogo, and UCBLogo, in that order. On Mac or Linux, you can use UCBLogo, Turtle Tracks (a cross-platform Java implementation), or on Mac one of a number of (rather expensive) commercial Logos. If you are a programmer and feel like fiddling alongside your child, you might try my project PyLogo, which is cross-platform and written in Python, but quite rough around the edges. Or if you want something that is Logo, but pretends to be a general-purpose scripting language, look at Rebol. Or for a slightly-lame but functional embedded robot Logo, Cricket Logo. Or for older people, NetLogo is a massively-multitasking implementation to use to play around with autonomous entities (e.g., ant simulations). NetLogo is kind of the successor to StarLogo.
For more information on Logo, you can look at the Logo Foundation, or get in touch with many helpful users in the LogoForum Yahoo Group.
-
Re:Logo .....
No working copies? MSWLogo is a bit old, but it works nicely on Win32 and Wine (you need to get the files out of the installer (that version of InstallShield crashes on Wine), which I did, but I forget where I stuffed the ZIP). There is a slightly older Win16 version, and there's good old fashioned GPLed source (Borland C++, so Kylix is the obvious choice to compile on Linux).
-
LOGO
-
Re:LOGO
Interestingly enough, LOGO is still being maintained... lots of 'implimentations', so it's tough to figure out who is the 'official' developer and who has the spinoff.
Links include http://www.softronix.com/
and, of course, http://www.logo.com -
Logo
I still think the best language to learn to program for kids (starting around 7) is Logo. Instant gratification, cool animation, you can make impressive patterns quickly and it teaches the basic control structures.
Then, they can graduate to StarLogo, an object-oriented version of logo which is easy to learn, but very powerful. A number of labs are using it for research simulation. Go with the turtle.
-
Re:Children's programming books have also vanished
An updated LOGO type of language with 3d graphics instead of turtles, that might inspire interest again.
Well, you still have a turtle (but you can change it's graphic), but MSWLogo has 3D support (however, much of the 3d stuff needs some CPU power - your generic old P75 rig won't work very well), and it's GPL to boot. -
Wait! There's More!Even more free programming tools for Windows (than my first post).
For children, try LOGO. The programming language developed for kids!!
Also, try Kids Freeware for other ideas.
-
What about...MSWLogo? http://www.softronix.com/logo.html
It's free (beer), and easy for kids to use (comparatively). It's also what I started on.Tim
-
Complication: not the kids, the scheduleI agree with your assessment of what kids can do. If anything, their minds are better suited to learn this stuff than adults. Though I suspect most 13-year-olds would not have the patience for a serious attack on C++! But there are simpler languages, some of which are specifically designed for introducing kids to computers.
Thing is, this class is only one week long. Not enough time to teach anybody anything really complicated. So forget anything that goes beyond drag-and-drop visual programming. Otherwise, I'd suggest something like MSWLogo. Or if you have a big budget, MicroWorlds.
-
sites
a classic
Now that the obvious joke is out of me, here are some more serious ideas....
one poster mentioend why not getting them outside and do something physical. With that in mind, you can look here at yes mag. Yes Mag is a good science and engineering magazine aimed at children around your cousins age. The website has links to articles, sites and some good from hands on science/engineering activities.
Another site I used heavily this past summer at the computer/tech camp I worked at was Space Kids
Actually looking at the national organzation, actua, that ran the camp I've worked at just now, they also have a list of project and links you can do here: Actua Projects
If you want to teach them something about programming, I've been looking around for Logo I believe this site has some good tutorial movies on how to use the program.
There also always the Bill Nye, Beakmen's of the world too which may be good starting grounds. -
Re:Naysaying
You can get windows version here and it looks pretty good (downloading it myself fer old time's sake).
-
Did anyone else...?
Did anyone else read that as "OSI Launches Certification Program with Logo"
Had me befuddled there - OSI initiates thier certification program by choosing that old Windows learn-to-program langauge with the turtle?
Long day... -
Re:Get them on LOGOI really like Logo too. It teaches programming, but it also is very much about teaching mathematics, geometry, pre-algebra, and algorithmic thinking in general. Thus Logo can satisfy both the people who want academics (math), and people who want vocational aspects (programming).
Some scattered thoughts:
- You can use MSW Logo for free (GPL even). It's hardly the best interface or anything, but it will do. MicroWorlds is a very popular commercial Logo environment. If you have the budget, you might use it. HyperStudio, which they probably already have, has a Logo inside it too. But don't use that, as it's a really lame environment, not to mention a crappy implementation.
- I would also like to reemphasize that you should do things in a hands-on manner. Start out right on the computer, and try to keep them working with the computer as much as possible. Try very hard to get a one-to-one computer-to-student ratio, even if it means kids get less total time on the computers. Of course this doesn't mean you should force the kids to stay at their computer -- if you are doing something fun, the kids will want badly to show each other what they are doing. If they don't want to show each other, you are doing the wrong project.
- Against my previous advice, you should do physical practice with Logo turtle commands -- i.e., have the kids order each other or you around using Logo commands. Like, have the kids navigate you around the room by using just left, right, forward, and back commands. This amuses them, because they can make you bump into tables and walk out the door. It is useful, because they'll have an easier time imagining themselves in your place than they will have imagining themselves in the turtles place.
- Of course, if you have access to Lego Logo stuff (which is expensive), use it. You'll probably enjoy that as much as the kids.
- Don't start out too quickly -- just have them draw pictures at first. Kids are surprisingly easy to amuse this way. If you have enough time, kids might be able to make games too, but very possibly not
:-( MicroWorlds would make game-making much easier. - Oh, and if you have older kids, Star Logo is a neat environment for experimenting with massively parrallel computation. And if you feel a bit more adventurous and have Macs available, maybe try Boxer, a somewhat more visual programming language with the same goals as Logo.
-
LOGO, open sourced
We all remember using EDU the turtle on the old Apple computers. There are pay-versions of LOGO still out there. But, you can also get it for free. Some links for ya:
Turtle Tracks - A Java version released under the GPL. Requires a Java 1.1-compliant virtual machine.
MSWLogo - A windows-only version. The source is available, but I'm not sure what license it is released under.
Other logo software - This list, at the Logo Foundation's website lists commercial and free versions of logo.
rLogo - An online in-the-browser logo interpreter. -
Re:BASIC does what it says... VB does moreBASIC sucks. VB sucks so bad it makes me fear for my society, for surely if God has any sense of aesthetics, he will not allow the society to live that allowed VB to be created.
VB is not a programming language. It is a cancerous agglutination of stupid stuff with no evidence of design or consistency. (And I know what I'm talking about, I've had to write lots of VB code at work.) Also, kids are smarter than you think. They're learning natural languages, a few funny characters like { and } doesn't faze them at all.
As far as the feared GOTO keyword, I never need to use it in VB
The goto is just a tool; use it where it makes sense. If you have three levels of nested blocks and you need to exit from the innermost, you shouldn't be writing code, son - go back to school and learn about design.
Really, only one thing needs to be said here: LOGO. It's freely available on all kinds of platforms, kids like it, and has very few stupid things about it. And UCB Logo is open source! Go look at http://http.cs.berkeley.edu/~bh/. On MS-Windows, MSW Logo.
If you really like procedural languages, have you considered Unicon, an extension of Icon that has integrated graphics, is object-oriented and has POSIX system calls? It even runs on NT! I've taught ten-year-olds to use it and they loved it. (Of course it runs under all kinds of Unix machines.)
-s
-
Teach by Learning
The first computer I ever owned was a C64 that I conned my mom into buying when I was 5. We spent the first week learning how to program BASIC on it (the old bouncing ball program I'm sure many people remember). Having my mom teach me how to write my first program made it a lot of fun.
Six months later I was teaching her how to write programs, but she was still involved, which I think was the important part, the fact that we both were learning together.
After that I scaled up to Pascal (and Modula-2), which in this day and age may be a dated language, but I thought it was great to learn on.
Another way to go (depending on their age), is a free Win32 application called MSWLogo. It's an excellent modernized version of the timeless LOGO language, and they've added some really neat features (animated .gif export, 3D shading, etc). You can grab it for free from http://www.softronix.com. -
Re:Python - designed for teaching
I was going to say the same thing, but you beat me to it friend.
Folks, mod this guy up another for me!
More detail: Python is an object-oriented language built as such from the ground up, un like C++ which is none the less derived from C and has less syntactical conformity (and I say this where my only difference with the above statement is that I perfer C++ slightly over Python, though Python is a close second.) Not only that, but Python is a great numeric language with native Ultra-Long integer type and a complex number module build in. With the LLNL PyNum Numeric Extensions. Couldn't find a good implementation of the Gamma function over the set of Complex numbers, but I guess your youngins' ern't inta that yet.
:)Another possility if you wanna get retro is do what I and doubtless you did: teach them on the C64! That is, get one of the variety of C64 emulators on the net and let them programme their hearts out in Basic. The great thing about the C64 is that because it uses PET/ASCII with all those graphics character in the characters with the MSB high so it's pretty easy to use graphics without having to use MoveTo, LineTo and the DC (if you do go the Windows route -- though so far all I've suggested exists in Linux-port form and I don't recommend teaching X-Motif just yet!
:) The point is, it's much more WYSIWYG and really easy to come up with some cool stuff. For instance, I wrote a character editor for the C64 which was quite a fun project. The advantage is that the entire operating system is Basic so you have to be a programmer from the beginning just to use it. :) Disadvantage: it's a Proceedural, not on OOP language.A good list of available emulators can be found at http://commodore64.net/emulators/
The other thing I would strongly recomend is Logo. Logo is graphics and geometry application in which the user controls a 'turtle' by simple geometric commands. This is a great tool for learning the [most] basic principals of Graphics which I'm sure your kids will be most interested in because of their love for games. They can use it to draw their own pictures using basic proceedural programming techniques such as loops and recursion.
You can get an MS Windows version of Logo at: http://www.softronix.com/logo.html.
You could also download a Linux port of the Berkley Logo Software from this University of North Carolina at Chapel Hill software archive though you may need to check out Steve Bakers' Software Page if you have any problems with the port.
Anyway, Python DOES have a pretty good graphics library and with TCL/TK you could even teach them a bit about interface design and with PIL you've got Graphics so that's just about everything. Anyway, at least I would choose one or more of those three options and make sure in time they should try to learn them all.
One last note I should make is it's you be very helpful to their overall understanding of programming and logic if they could learn at least one rule-based language down the road, such as Scheme (thank you Professor Romanik!
:).Be Seeing You,
Jeffrey.