from the getting-started-at-an-early-age dept.
kbh3rd writes: "A couple of my kids are starting to make noises about learning to program computers, just like their old man. 8^D I'm totally unsure how to start out. I'm a *nix geek, but I don't know if they'd keep interest if started with 'main () { printf ("Hello, world!\n") ; }' and command-line gcc. They almost exclusively use Win98 because that's where their games run. I can't believe I'm saying this, but maybe they should start with something where they could get some Windows programs going, like VB (shudder) or Delphi? What language/development environment would be best for kids aged 11-13 who think they want to learn some programming over the summer? And what are some good books they might start with, too? "
< Internet-Ready Houses For Sale | Super-Fast Hard Drives >
| Slashdot Login | ||
| ||
| Related Links | ||
| This discussion has been archived. No new comments can be posted. |
| I started on BASIC (Score:1, Flamebait) by ca1v1n (hidingaway@hotmail.com) on Friday May 26, @03:20PM EDT (#2) (User Info) |
| I started out with BASIC in 2nd grade. My dad got me into it as soon as I could sit in the chair in the computer room. Now I'm into C++, and I can program stuff he could only dream about in college. Hopefully, my kids will be hacking the kernel by kindergarden. Am I the only person who thinks Freud had issues with his mother? |
| Re:I started on BASIC (Score:1) by mparcens (wdavidsonatchannelwavedotcom) on Friday May 26, @03:24PM EDT (#17) (User Info) |
| Yeah, same here.. I started out in good ole' BasicA... Just as you learn Algebra before attempting Calculus, I think Basic or Pascal provides a good introduction into programming. It lets a kid understand the notion of variables and procedures without having to worry about memory management or whatnot... _________________ JavaScript Error: http://www.windows2000test.com/default.htm, line 91: Windows is not defined. |
| Re:I started on BASIC (Score:1) by Duane Dibbley (duane_dibbley&at;catlover˙com) on Friday May 26, @03:58PM EDT (#211) (User Info) http://www.reddwarf.co.uk/ |
| I started on BASIC and it messed me up for a while. BASIC is designed to be easy, Pascal is designed to teach. In other words, BASIC is for people that don't want to learn structured programming - they want to get it done w/ the least amount of learning. In my book, that's a bad way to learn to program. Go with Object Pascal - it's structured, object oriented and is not as complicated and mind-warping as BASIC or windows programming, and less prone to early programming errors than C. Eventually you can move them on (pref. to C/C++ and then *nix) and then they'll be able to tackle what they want to. Basically, when teaching somebody programming, I think the best way is to teach them to learn. I think Turbo Pascal 7.0 was the best tool for learning programming I've seen (and used). After that, move them to C because C is the greatest programming language in existence. --- "Duane Dibbley?" -- Duane Dibbley |
| Re:I started on BASIC (Score:2, Insightful) by sigwinch (sigwinch@hotmail.com) on Friday May 26, @04:31PM EDT (#355) (User Info) |
BASIC is designed to be easy, Pascal is designed to teach. In other words, BASIC is for people that don't want to learn structured programming - they want to get it done w/ the least amount of learning. In my book, that's a bad way to learn to program. I disagree. Classic interpreted BASIC is interactive. You get instant feedback when you do something wrong. In fact, you can type in a command and watch what it does at any time. There is no compiling, no linking, no libraries, no GUIs, and no lists of cryptic error messages. You don't have to master a complicated editor, and there a no makefiles. This makes Basic very approachable and unthreatening. A "segementation violation" or "unhandled exception" could be a little intimidating to a 12 year old. Once they understand variables, operators and their precendences, file I/O, etc. they can graduate to a better language. There's no point in teaching engineering design concepts when they still don't grasp the concept of arrays and output formatting. Internet etiquette tip #14: when Yoyodyne.com asks for your email address "to better serve you", answer MAILER-DAEMON@yoyodyne.com |
| Re:I started on BASIC (Score:2, Insightful) by Sri Lumpa (rousseauj1SP@Myahoo.com) on Friday May 26, @04:40PM EDT (#395) (User Info) http://www.opendvd.org |
| I disagree. Classic interpreted BASIC is interactive. Get the best of both world and use Lisp. It is thrice (does this word exist?) easy, powerful and interactive. And functional programming gives a good incentive to structure your programs well. A lot of people will say. yeah, but Lisp suck with all its parenthesis and its prefix syntax. Maybe but the latter is mainly because you are used to infix by other language and don't want to/can't learn new ways of doing things while the former may not be the most aesthetically pleasing to some but really helps checking you got everything closed correctly with any editor able to match parenthesis. So I would say go for Scheme, given that it is basically a Lisp designed to be clean and to have as few concepts as possible at the base. |
| OFF TOPIC: Thrice (Score:1) by DrMaurer (DrMaure@ilstu.eduSPAM) on Friday May 26, @05:00PM EDT (#451) (User Info) http://www.ilstu.edu/~drmaure |
| " It is thrice (does this word exist?)" Yes, not only did you use it, many others have. It isn't in real common usage, but it isn't exactly rare either. Sorry for the OT post Dan |
| Re:I started on BASIC (Score:1) by mazachan on Friday May 26, @05:18PM EDT (#506) (User Info) |
| At the University of Illinois at Champaign, one of the first CS classes that we had to take was scheme. Granted it wasn't exactly the most fun class that I took, but it really did teach a lot. I learned a lot about the basics of computer science from that class A common programming assignment that we had was: "Using your knowledge of scheme, re-program windows 95 with a fully function GUI and AI desktop." |
| Re:I started on BASIC (Score:1) by Sri Lumpa (rousseauj1SP@Myahoo.com) on Sunday May 28, @01:12PM EDT (#1004) (User Info) http://www.opendvd.org |
| A common programming assignment that we had was: "Using your knowledge of scheme, re-program windows 95 with a fully function GUI and AI desktop." Funny, I love Scheme/functional programming but I am not quite sure that it would be possible to use it to reprogram Win95 from scratch in one assignment. What is less rare is having to modify a Scheme interpreter writtent in Scheme to add this or that feature. |
| Re:I started on BASIC (Score:1) by leadfoot on Friday May 26, @05:06PM EDT (#470) (User Info) http://www.primenet.com/~chuckd |
| Basic, GW-Basic, BasicA, QBasic, QuickBasic. All very good beginner to intermediate programing languages. Although I have to agree that if you don't start out with a basic understanding of Structured programming then your Basic programs will end up looking like spaghetti. Pascal is an excellent intermediate structured programming language and if you can get your hands on Turbo Pascal all the better. That would probably be my first choice for teaching. |
| Re:I started on BASIC (Score:1) by Duane Dibbley (duane_dibbley&at;catlover˙com) on Friday May 26, @06:08PM EDT (#604) (User Info) http://www.reddwarf.co.uk/ |
| Classic interpreted BASIC is interactive. You get instant feedback when you do something wrong. In fact, you can type in a command and watch what it does at any time. There is no compiling, no linking, no libraries, no GUIs, and no lists of cryptic error messages. You don't have to master a complicated editor, and there a no makefiles. This is absolutely correct and is a benefit of being interpreted, not of being BASIC. If you can find another better structured language that is interactive, all the better (I cannot suggest Java). Pascal, though, is pretty flexible but has all the traps to make sure you don't shoot yourself in the foot. Yeah, it doesn't have the benefit of being quite so interactive, but hey, kids pick up faster than adults. Get a good IDE with a decent debugger (IDE debuggers give it interactivity) and they'll be all set. I was using the QBasic & QuickBasic IDE's without a problem and the Turbo Pascal and Turbo C IDE's were no problem either (Borland also has a good habit of providing very thorough help files, better than anything I've seen for BASIC). Once they understand variables, operators and their precendences, file I/O, etc. they can graduate to a better language. This I have to disagree on as far as BASIC being the best language. This is the area where BASIC starts to lose ground and why a language like Pascal is better -- for specifically this reason. Simple I/O (i.e. text via stdio) and interactivity, yes, BASIC is great, but if you ever want to go beyond that, use another language. My experience has been that Pascal is the best instructional language there is. I guess what I've seen is kids that use BASIC tend to learn less about programming. I know that was the case for me too - the jump from BASIC to C was horribly difficult because I hadn't learned programming, I'd learned BASIC. After learning to program (C), I can pick up new languages much faster. I also noticed that BASIC is a better language after learning a real language. Besides, this is kids we're talking about. They will probably want to program graphics and if they do, a compiled language is the way to go. Now to retract some of what I've said: BASIC would probably be acceptable to teach kids (for fun) if 1) it can be compiled, 2) the kids are taught about SUB and FUNCTION. Do that and BASIC would probably be okay, but only for a little while. It's too easy to learn bad programming techniques with BASIC. --- "Duane Dibbley?" -- Duane Dibbley |
| Lisp? Smalltalk! ! Re:I started on BASIC (Score:1) by Liberty BASIC Guru on Saturday May 27, @05:29PM EDT (#991) (User Info) |
| Normally, I would push Liberty BASIC (I know, a shameless plug ;-), which is a terrific language for kids! BUT if you're going to recommend LISP, I've gotta trumpet Smalltalk (www.smalltalk.org). Smalltalk was inspired by Alan Kay's desire to create a medium approachable by everyone, especially children. Even Apple and Disney recognize Smalltalk's value as a medium for everyone with their amazing open source Squeak Smalltalk project (www.squeak.org)! Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
| Programming for fun - Re:I started on BASIC (Score:1) by Liberty BASIC Guru on Friday May 26, @08:05PM EDT (#712) (User Info) |
| I think that it is important to remember that this should be made fun for kids, and I think BASIC is good for this. I'm not sure how well I would have understood Pascal at 12 years old (which is when I started). Whether you teach your kids BASIC or some other language, encourage them to learn another. Nothing stopped me from then going on to teach myself FORTH, C, and Smalltalk. If they was to be really good, encourage them to read, a lot. I remember fondly the early home computers and their built-in BASICs, (warning! shameless plug) so I wrote Liberty BASIC so that Windows users wouldn't be denied a good old BASIC. Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
| Re:Programming for fun - Re:I started on BASIC (Score:1) by eaglesoar1 on Saturday May 27, @03:06PM EDT (#982) (User Info) |
| I started with Liberty Basic. And i highly recommend it to any and all. Extremely easy is not an overstatement! You can even try it for free. Your kids will be excited when they write their first program. Believe me, ...if you or your child cannot learn programming using Liberty Basic, they don't have a chance learing Pascal or C++ or Visual Basic...or any other language. Try it for free! get it here: http://www.libertybasic.com/ or take a look at some of the open source code here: http://www.liberty-basic.com/ Happy coding! Eldron |
| BASIC is good - Liberty BASIC is an excellent tool (Score:1) by irondave on Saturday May 27, @03:31PM EDT (#985) (User Info) |
| I began programmning in BASIC when I was nine years old on a TRS-80 color computer. It was fun, challenging but managable, the satisfaction of instant results kept me going. Liberty BASIC is a rapid development language that even my 7-year-old daughter is getting the hang of. |
| Re:I started on BASIC (Score:1) by LibertyBasicUser on Sunday May 28, @02:27PM EDT (#1005) (User Info) |
| I started on and still use BASIC. In particular, I recommend Liberty Basic, available at www.libertybasic.com. It is a shareware BASIC which makes it very easy to create a "Windows" program. Yet, for its root simplicity, it allows you to do some very advanced things but you don't have to get advanced to start creating. Being simple to start with but letting one create someting a bit more meaningful than "Hello World" without a lot of complexities will allow kids to see quickly the fruits of their labor (always good for the learning environment). Three reasons I use Liberty Basic & recommend it to other beginners: 1. Simple to learn and you can grow to some very advanced things. 2. Very economical. It even comes with a GUI editor to let you visually design a window. 3. The absolute best online community - bar none. There is a regular newsletter and several places to ask questions which will be promptly answered by the most generous set of people I know of. |
| Re:I started on BASIC (Score:1) by leo.p (venalcolony@COOLERTHANSCORCHINGmail.com) on Saturday May 27, @06:51PM EDT (#992) (User Info) |
| 10 I started in BASIC, too and : goto 30 20 any worse for wear! : goto 40 30 I dont seem to be : goto 20 40 REM -- Disistrijka is too hard to spell anyway 50 emd |
| Re:I started on BASIC (Score:3, Funny) by bob the cow on Friday May 26, @03:57PM EDT (#205) (User Info) |
| Definetly BASIC, it's simple and does not have a lot of extra syntax/structure to get in the way of learning to write a computer-readable algorithm. Most non-programmers I know had an OK time with BASIC, and most programmers i know started in BASIC. One thing I suggest, however, is using TI-BASIC is a kid is using a TI-83 or higher in their high school math class. I find this to be very versatile for simple games, and good to know for programming math, chemistry, or physics functions. Now, if you really want them to grow up with a structured language embedded in their brains, BASIC can get in the way when taught later: it has no functions or "black-box" capabilities. I suggest that you stop speaking in English to them, and start conversing in C. This way, even though it is hard and confusing, they will pick it up quickly and will be permanent hackers. but note, under ALL CIRCUMSTANCES, you are NOT to do this with HTML, this can cause brain damage and even cancer! |
| Re:I started on BASIC (Score:1, Informative) by David F. on Friday May 26, @04:03PM EDT (#235) (User Info) |
| If they're already using Windows machines anyway, have them use QBASIC. It's got the simplicity of BASIC but also includes functions and subroutines, so after they get bored of the really simple stuff, you can teach them a little more about structure. QBASIC.EXE should be on the Windows CD-ROM somewhere in the OLDMSDOS folder... ---- Dave |
| Re:I started on BASIC (Score:1) by Strog (strog at geocities.com) on Friday May 26, @04:27PM EDT (#341) (User Info) |
| I agree that QBASIC would be a good start. I started on Applesoft Basic back in the day and let me tell you "Line numbers suck". I never left enough room in my line numbers and I ended up recoding because I ended up putting way to much stuff into my subroutines. When I got to college the first programming class I took was Basic and they were using QBASIC(no line numbers, YEAAA). I was ready for line number nightmares but was pleasantly surprised. The instructor also taught so C classes to everything he did was structure and subroutines. It so natural going from that class to the intro C class. I had a job where we used QBASIC programs to read input from bar code readers for our badges so the QBASIC wasn't a waste for me.
|
| Re:I started on BASIC (Score:1) by digitalmind (botboy60@hotmail.com) on Friday May 26, @11:55PM EDT (#808) (User Info) http://www.nerdnetwork.net |
| This way, even though it is hard and confusing, they will pick it up quickly and will be permanent hackers. but note, under ALL CIRCUMSTANCES, you are NOT to do this with HTML, this can cause brain damage and even cancer! Yeah right... I taught myself html by looking at sloppy fronpage created html and learned A LOT! I learned to code html in my head and developed my own webpage. www.nerdnetwork.net. Go ahead, look at the pages. View source. Look at all of the pages. Look for fronpage signature meta tags. Humor me. As far as saying html code to your kids, Think about it. Saying plain words to your kids is normal for most parents. Instead of an angry tone, say Such and such was bad!, with bold signifiying an angry tone. Italics being sarcasm, and javascript being you rambling cause god knows parents do. Suddenly you have a whole new way of presenting a language without all those multilevel tones. It would be simple enough for a chimp to understand. Kris botboy60@hotmail.com Nerdnetwork.net Greenbuggy. |
| Re:I started on BASIC (Score:1) by superdaver9999 (superdaver9999@yahoo.com) on Friday May 26, @10:32PM EDT (#783) (User Info) |
| Me too...I made a Risk clone that I was pretty proud of...my only limitations were memory in those days. My brother and I made chess, a game called Canyon, snake (that is now on cellphones) and a few others. In my mind, simple is best to get the young hooked on programming. After that I bought Manx Aztec C for my Amiga 500...never hurts to stat with Basic. |
| Re:I started on BASIC (Score:1) by proj_2501 (kanem@egr.uri.edu) on Saturday May 27, @02:48AM EDT (#867) (User Info) http://www.ele.uri.edu/~kanem |
| Yeah baby! I remember typing in programs from a big book in the library when I was three years old! -- The other side is crowded. The dead have nowhere to go. --from serial experiments lain |
| Re:I started on BASIC (Score:1) by Liedra (liedra at liedra dot net) on Saturday May 27, @10:38PM EDT (#998) (User Info) http://www.liedra.net |
| Ah yes, and me too, in kindy... I remember doing the little martian guy who wandered up and down the screen... but somehow, mine managed to decapitate itself as part of the performance. Ah well, and it was back to Granny's Garden for me then :-) Otherwise, I'd have to agree that Basic is the way to go for young children... However, I found that at uni (after not programming at all since kindy) the Eiffel-like language they teach at Sydney Uni (Blue) was a good teaching language for older people, even if the teaching method wasn't so good for beginners. After that, Java was the next step, and I'll finally get onto a real language next semester when we start C++ ;-) |
| BASIC suggestion (pun): Text Adventures! (Score:2, Insightful) by drenehtsral (larsfrnd@lightlink./*nospam*/com) on Friday May 26, @04:00PM EDT (#219) (User Info) http://www.hooliganhangout.net |
| I started ata bout 8 years old. My grandfather gave us his old Franklin Ace 1000 he was retiring in favor of a brand-new spiffy (*gasp* IBM XT). I used the machine for some games and stuff, and i wanted to make a couple games of my own, but didn't know how. Luckily both my mother and my 3rd grade teacher knew BASIC and they both taught me what they knew. This was enough that i could make a text adventure (more like a choose your own adventure story) where the program would output some stuff, and then prompt the user to choose among a few options of what they wanted to do next. THen i made it a little more complicated by using the random number generator to make some of the decisions, and then i went a little further by doing some calculations (as in i'd ask the user how much fuel they wanted to buy, and kept track of the usage...) I think that starting people in a text environment is good, because it provides a liniar, Input->Proccessing->Output flow model which will help them later in life (i run into a lot of programmers who started with threaded GUI environments who can't make or read a flowchart to save their lives, and who can't debug a simple state machine). These more threaded/event driven models are best learned once one has a good handle on logic and program flow. Also the text adventure format is nice because it is rather timeless. I still fire up and play some of the old text adventures i've played since elementary school (i'm 21 years old now, and working full time as a programmer) but all those years don't take away from the appeal of a good text adventure. After i had that down, i did most of my other learning (except for a pascal class in middle school) on my own. I took apart existing code (something that was possible then, and now due to open source, is possible again). I read books at the library. I talked with others with an interrest in programming. If anybody had told me it would be a marketable skill, i'd have laughed at them, but it has provided me with steady and decent employment for the last several years, so go figure. Now i think that starting them in BASIC may be a good idea still, but i would go for a console based BASIC rather than a GUI based setup. I also think that moving to C or C++ should happen before GUI stuff is added. But most of all, don't rush them, give them the seeds, and they will pick their own direction, etc... =:-) -lars |
| Re:I started on BASIC (Score:1) by Meatloaf on Friday May 26, @04:21PM EDT (#313) (User Info) |
| I started out with BASIC too -- on a TRS-80. But my oldest, now in 5th grade, got her first sampling of the geek life with HTML, when she decided to do a school project two years ago as a webpage instead of the standard grade-school BS. I know it's not really programming, but it was enough to get her interested. Now she wants to learn how to do the interesting stuff on the back-end like cgi, perl, etc. She has found motivation! |
| Re:I started on BASIC (Score:1) by DrgnDancer on Friday May 26, @04:30PM EDT (#350) (User Info) |
| I started in BASIC too, then PASCAL, but I wonder about the usefulness now. What about starting them on JAVA. The syntax is relativley simple, and they can do "web stuff" that they can easilly show off to friends. BASIC doesn't do anything "multimedia", and I could see kids that grew up on GUI's, the World Wide Web, and 3-d games getting quickly frustrated with a language limited to text. After they have the hang of cool little web applets and stuff, you could start introducing them to more "serious" programming. UNIX: Because you want to USE your computer |
| Re:I started on BASIC (Score:1) by Mostly Harmless (mike_pete@yahoo.com) on Friday May 26, @04:38PM EDT (#387) (User Info) http://theeveningcafe.iwarp.com |
| I think I was about 9 or 10 when I started programming in BASIC on an Apple II e, I think. I thought it was the coolest thing, so I hit the bookstore (this was about 10 years ago -- when we still had books). I don't think I was ever more fascinated in my life. I learned QBasic and batch "programming." Which eventually led to an interest in VAX/VMS (don't ask how), and then to Linux. Unfortunately, at my job, I'm stuck with MSVC++, but I'm doing what I like to do -- program. My advice would be to set up an old box with DOS 6.22 (or something), QBasic, and bring them to a book store. Let them play around a bit. You can't learn much about computers until you "accidentally" format your HDD a few times... "`Ford, you're turning into a penguin. Stop it.'" -Douglas Adams, THHGTTG |
| Re:I started on BASIC (Score:1) by wfreds on Friday May 26, @04:41PM EDT (#399) (User Info) |
| My nephew started on BASIC when he was four years old (!). He got into graphics pretty quickly. This was way before Windows, or Mac even. He's about to graduate in CS from UCSC, and he's tutoring two classes for his favorite professor. If they can think logically, start 'em early! |
| Re:I started on BASIC (Score:1) by wass on Friday May 26, @04:51PM EDT (#427) (User Info) |
| I agree that BASIC is a very simple way to go. I've been in a similar boat as you, when my father taught me the Level-II basic on my TRS-80 when I was 6. (Ack, bill gates wrote my first programming language, the horrors...) However, since then I've gone to other incarnations of basic throughout the PC's evolution, and then to PASCAL, and then to C. At work, doing lots of analysis, I've learned IDL, which is a language very similar to MATLAB, and seems to be a cross between BASIC and FORTRAN, with some imaging routines built in. I then discovered Python, which I'm still learning (ie, I've never gotten around to sitting down and doing complicated examples). But, in my limited experience, Python seems to be a BASIC-like language done correctly. Meaning, it's inherently structured, can offer OO techniques, allows easy methods to produce GUI widgets, and is extensible. Best yet, it's free (speech/beer) and multi-platform. So, IMHO, check out Python if you're interested in teaching your kids BASIC. They can learn it just as quickly, and also not learn the 'wrong' ways of doing things that BASIC inadvertantly brings on. Mmmmmmm. Fudge |
| Re:I started on BASIC (Score:2) by roman_mir on Friday May 26, @05:44PM EDT (#567) (User Info) |
| If you want someone to become a cool hacker they should learn Assembler or C. I believe children should start with recursive and functional languages such as prolog and lisp. You can always find out about computer architecture and learn C or Assembler, you can find out about data structures and learn C++, you can go MOP and learn Java or you can aim for RAD programming and learn VB but if you want a person to learn thinking - teach them Prolog and Lisp (or at least Scheme.) It is fun too. (I would like to insert a picture with thousands of hands holding burning candlesticks and lighters right here...)(tm, pending patent, cr) |
| Re:I started on BASIC (Score:1) by mike_malek on Friday May 26, @09:59PM EDT (#766) (User Info) |
| Prolog sucks! We're using it in university right now (University of Waterloo, Computer Engineering) for a few assignments. Now, this is not a typical "language X sucks because I don't really know it" rant! I would have much rather be doing some of the assignments in Lisp, which I know and enjoy! Shame on you, comparing Lisp and Prolog! |
| Re:I started on BASIC (Score:1) by roman_mir on Saturday May 27, @11:09AM EDT (#954) (User Info) |
| You sir are an idiot. (I would like to insert a picture with thousands of hands holding burning candlesticks and lighters right here...)(tm, pending patent, cr) |
| Re:I started on BASIC - too bad (Score:1) by roman_mir on Saturday May 27, @11:21AM EDT (#958) (User Info) |
| You, sir, are an idiot. Saying 'Prolog sucks' for a computer programmer at the University of Waterloo - that should be shameful. I find Prolog to be fascinating and ecstatic, Prolog is a language that allows inference naturally which can not be said about any other languages. Lisp is a beautiful functional language, Prolog is an inference engine. Of-course you are entitled to you fucked up opinion but all it means is that you do not understand Prolog inference engine. Have you started your education with VB as a child? BTW who said I was comparing the two great languages anyway? I said that these languages are great for children studies but they are different that is why both of them should be learned. (I would like to insert a picture with thousands of hands holding burning candlesticks and lighters right here...)(tm, pending patent, cr) |
| BASIC lives on, and on, and on! Re:I started on.. (Score:1) by Liberty BASIC Guru on Friday May 26, @06:46PM EDT (#649) (User Info) |
| I actually started programming on an HP-67 calculator (my dad was an engineer). After this I wrote mostly in BASIC for some time. It was a blast! A lot of people like to slam BASIC, but nothing stopped me from going on to hand assembling machine code, moving to FORTH, then C, and then Smalltalk (which is itself a fantastic language to teaching kids, having been inspired by Seymour Papert's work on LOGO, a language for kids)! Finally, I wrote my own version of BASIC for the student called Liberty BASIC (written in Smalltalk, what else?). It is meant to provide that good old home computer BASIC experience, but for Windows. BASIC lives! Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
| Re:I started on BASIC (Score:2, Interesting) by Masked Marauder on Friday May 26, @08:34PM EDT (#736) (User Info) |
I didn't start programing as a kid. My first language was APL. My second was BASIC on a PDP-8. The interpreter took up most ot the 8k memory so I had to learn assembler to get anything done. By far the most instructive experience was with pdp-8 assembler. The 8 only had 5 commands plus a few 'micro' commands. What I liked about the experience in retrospect is that it taught me what computing is, in the sense of a logic machine, as opposed to a 'number cruncher.' At the machine level there are no numbers. Memory was so scarce that I had to look through the compiled code to find 'code' that had the bit pattern I needed to use a 'numerical' constant since there was no room to store a constant as such. As much as I loved the old 8, and miss its simplicity and purity of essence, I'd never suggest anyone teach their kids to program on one. Still, I do think that it is better in some ways than things like VB, especially Wizard-driven app-generators. I just don't think kids can learn much from such experiences. Dragging, dropping and filling in some blanks doesn't build understanding or creativity. And its so distracting, bright colored buttons, beeps, boops and inscrutible error messages dialogs poping up from nowhere all of the time. I suppose it boils down to what you want your kids to take away from the experience. My intuition is that they would be best served by learning programing in as abstract a way as possible. They don't need to know much arithemitic anymore, that is all done by calculators and spreadsheets now. The interesting, difficult and creative skills instead concern how to express your understanding of some situation in a logical manner (a good computer language) in order to acheive some purpose. Such a lesson would be worthwhile even if computer programming becomes obsolete and your kids never ever have to program anything in their later lives. So, what language? I haven't seen it mentioned here yet so I'll suggest Perl. Of the languages I've known and used, Perl is the one I feel most creative with. It has the advantages of BASIC in that its interpreted, but its a much richer language that comes much, much closer to behaving like people think than any language I know, complete with depth, ambiguity and astonishing power. You can even write poetry in it that does something. Also, the Camel Book is one of the best-written computer books I know of. The glossary is a hoot and a half all on its own. I think a kid could learn to love Perl. Perl also has graphical hooks (Tk/Tcl, gtk), if they want that route (controlling Gimp via a perl script is a show stopper). There are tons of Modules to play with too. Something else here too, each module, and Perl itself, are attached to real, human personalities, not some anonymous marketing droid in Redmond, so there is a sense of community you'll never see in VB. Another posibility is Logo. I think this was designed especially for teaching. Turtle graphics were meant to teach recursive algorithmic structure. I played with it for a while and its quite nice in some respects. Drawing trees and Sieiepinski(sp?) triangles was fun, even for a jaded old crank like me. What I liked about it was was that while I was using it really changed the way I looked at problems and sought solutions. A good dose of logo can change the way you think. Look at the book "The Algorithmic Beauty of Plants" sometime, this could help connect their learning with the usual appreciation of nature kids have (How does an acorn compute an oak?) I know a friend of mine's kid started on turtle graphics in logo in second grade and he liked it. There are implementation of logo for unix, windows and the Mac, along with pretty good manuals and tutorials. |
| Re:I started on BASIC (Score:2, Interesting) by Punto (punto@geocities.com) on Friday May 26, @09:11PM EDT (#749) (User Info) |
| I started on BASIC too, on a Commodore 64, writting little "hello world" programs. Then Pascal (when I was 12). I used Visual Basic a little, _very_ easy. Just draw the little buttons and captions with the mouse, and program the events.. But I preferred Pascal, to write games for DOS 6 (win95 was very recent, 320x200x256 was a good resolution). Now I use Perl most of the time. -- |
| Re:I started on BASIC (Score:1) by NovaScorpio (pj@xanic.dhs.org) on Friday May 26, @09:32PM EDT (#757) (User Info) Http://xanic.dhs.org |
| I just started to learn how to program this year, that is really how to program through my schools' Comp. Sci. 1. We learned BASIC and then VB. Now I'm in the middle of learning C and I believe that even though Visual Basic has a lot of very disturbing requirements, it can teach the user about loops, output, input, arrays, different data types and even pointers. Strangely enough, my experience with VB has helped learning C because I understand all of the basic concepts. VB might not be a good language to use for everything, but it is a great language to start on if taught right --NovaScorpio Matthew Saffer |
| Re:I started on BASIC (Score:1) by wolf- on Friday May 26, @11:50PM EDT (#806) (User Info) |
| Yup Yup. Started with Basic on C64 then PC. Followed by Pascal, then into High School learned C, and eventually cobol and fortran (I hated college) then well, all the scripting stuff we see today. But I have to concur, basic or pascal are nice starts. Both have easy syntax, error reporting from the compilers are quiet straight forward. And plenty of great authors on the subject. |
| Re:I started on BASIC (Score:1) by tagore on Saturday May 27, @12:14AM EDT (#817) (User Info) |
| I started with basic too. It eventually frustrated me badly enough that I didn't program again for a few years. But I liked programing in it for some time. When I started programming again it was in C, without a lot of help, and it was a tough transition initially. I think that the questioner is right- the intricacies of C are likely to turn children off pretty quickly. But I certainly wouldn't start them off with any version of basic- better to use a language which is both a good teaching language and a fully featured programing language which runs on many platforms, with access to system services provided in reasonably uniform way. There are a number of languages which meet these requirements to one degree or another. My opinion is that two of them stand head and shoulders above the rest- Python and Scheme. For an older child who wants to learn about computer science, and good programming practice, and has a fair bit of maturity Scheme can't be beat. For a child who is more interested in getting quidck results Python is a nice clean language that can be used in both imperastive and OO modes. Both support Tk, so creating GUI programs is well within reach (as compared to C- it takes a long time to get competent enough at C or C++ to use MFC or Motif or Gtk or Qt or FLTK or etc.). Tcl is a rasonably close runner-up. |
| i found Turbo pascal 7 simple, i'm 14 (Score:1) by silg on Saturday May 27, @03:14AM EDT (#875) (User Info) |
| very simple |
| BASIC and Logo (Score:1) by gwalla (gwalla@__planetall.com) on Saturday May 27, @04:03AM EDT (#890) (User Info) |
I got started writing programs in BASIC too, on my dad's ancient Osbourne running CP/M. But this was mostly just copying out of books (I had a good one filled with games in BASIC..still have it, too, I think). I actually started programming in Apple Logo II, for my old Apple IIc. Logo, I think, is a better language for learning than BASIC. For one thing, the logic is much more like other languages, while BASIC is stuck with those godforsaken subroutines. It also has graphical capability, which I think is a must in a language for teaching children (text just looks too dull). --- Zardoz has spoken! (remove underscores from my addr to email) |
| On the other hand... (Score:1) by jpowers (powers.jason@jimmy.harvard.edu) on Friday May 26, @03:50PM EDT (#170) (User Info) |
| You don't want them growing up to become VB programmers. One word: LOGO -jpowers You Know You've Been Watching Too Much Ranma 1/2 When... |
| Re:On the other hand... (Score:1) by xtremex (sysadmin@spam_me_and_die!.mainnetworkcenter.com.an) on Friday May 26, @04:44PM EDT (#409) (User Info) http://www.mainnetworkcenter.com |
| Isn't LOGO really a dialect of LiSP? I remember alot of {{}} and [[ ]] in LOGO and that's what scared the crap out of me with LISP :) I would have to say Delphi (Pascal)..it's a practical language..alot of people put it in the same league as VB...but it's more solid, and is structured...it would be an easy step to C++ or Java This is a signature |
| Re:On the other hand... (Score:1) by ostrich2 on Friday May 26, @06:05PM EDT (#601) (User Info) |
| I second this! I learned on LOGO years and years ago. It's easy to pick up, has simple commands, and actually displays stuff to the screen. Of course, in these days of GUI-everything, that's not saying much, but 15 or 20 years ago, it was something special to me. Plus, a good way to teach them (at least, how my father taught me...) is to draw pictures on a piece of paper and make them duplicate it on the screen. It makes the tykes come up with their own solutions given a set of requirements, and isn't that the point of learning any programming language? |
| Re:On the other hand... (Score:1) by chocolate pi on Friday May 26, @06:19PM EDT (#614) (User Info) |
| yay! we got LOGO in elementary school starting from fourth grade. don't remember much of it, except that it wasn't presented as programming; it was just "this is how you make pretty pictures" (or noises, or whatever). Lego-logo, on the other hand, was true programming, which never worked on the first try but eventually made little primary-colored dinosaurs totter around. |
| Riiight... (Score:1) by Null_Void on Friday May 26, @05:56PM EDT (#590) (User Info) |
| I remember programming a C64 as a child. It was great for learning, but after a while I wanted something else. And I heard about Assembly. So I saved my pennies and bought a program which would compile my programs. I spent a lot of time trying to learn the language, which I didn't ever really understand. Then one day I finished making this program that would format a disk for you. I was so proud of myself. Then I made the mistake of leaving the disk holding the compiler in the disk drive when I ran this new format program... Oops. That was the end of my assembly programming experience until I got to college. Anyway, back on topic. Just for my 2 cents... Basic is a good starter language in my opinion. This could be because I went right from Basic to C++ and don't really know any others. Yes, I'm ashamed of myself. Guess what I'm trying to say is that, if you give them a simple programming language like that, and they at least find it interesting, they'll probably figure out a way to learn the more complicated languages later in life. Maybe ask them what they want to learn? Null_Void |
| Re:On the other hand... (Score:1) by Octorian on Friday May 26, @07:41PM EDT (#699) (User Info) http://www.logicprobe.org/~octo |
| I have to disagree. This might be true for idiot programmers, but not people with potential. I started programming in BASIC, then when I was around 12, I went away for the summer to "Computer-Ed High Tech Camps" (Newton, MA) There, I learned Pascal in a relaxing environment. I messed around with it over the year, and the following summer I learned C (and some C++). I am not a bad programmer, and I often write very clean looking code. Let's just say that I worked on writing an IRC client in 10th grade. I did it in Linux, for X Windows, using the Qt library. I'm in college now, and have probably been programming for much longer than most of my friends. C/C++ are definitely not for absolute beginners, however BASIC teaches spaghetti code. BASIC is good for starting, as long as it's treated as a "learning language" or stepping stone. LOGO is a joke. I was taught LOGO after I learned BASIC, then deemed LOGO a useless pain and went back to my AppleSoft BASIC coding. (The interesting thing is that I wound up majoring in Computer Engineering, not Computer Science. I guess I like electronics as well) |
| Re:On the other hand... (Score:1) by jpowers (powers.jason@jimmy.harvard.edu) on Thursday June 01, @06:49PM EDT (#1033) (User Info) |
| It was a joke: LOGO is a useless pain in the neck, and so is VB. -jpowers You Know You've Been Watching Too Much Ranma 1/2 When... |
| Not just BASIC. **Interpreted** languages is key. (Score:2) by root (root at megami dot org) on Friday May 26, @05:13PM EDT (#494) (User Info) http://www.megami.org/ |
| BASIC is good not because it's BASIC, but because it's an interpreted language. No compiling. No linking. No static libraries. No run time libraries. Instant. Gratification. Code stuff. "RUN". See stuff happening. Change stuff. "RUN". See new stuff happening. Unfortunately there aren't many other good (for kids) interpreted languages out there today. There's VB (not really BASIC and possesses few of the above qualities that made BASIC great). Anyone do LOGO anymore? (ooo! Turtle graphics!) There's the various scripting/batch files of DOS, the *nix shells, but these are text only and lack ***simple*** sound/graphics commands and ***SIMPLE*** ways to read input devices (keyboard, joysticks, mice, etc.) that kids will HAVE FUN[*] with. I really miss the SET() and RESET() block graphics of TRS-80 BASIC. and the commodore 128 BASIC's 'SOUND' statement. HyperCard for the Mac wan't bad for the older kid (16+ year old) programmer looking for new ideas, but I think that's dead now too. What creative tools does the SW industry give kids? Dress barbie or Choreograph the Spice Girls. Blargh. [*] Fun is really the key. Writing a pong game in BASIC for the C64 was fun because even at age 11, it was doable for me. If programming isn't fun, kids aren't gonna want to do it. |
| Re:Not just BASIC. **Interpreted** languages is ke (Score:2, Insightful) by AlainB on Friday May 26, @08:07PM EDT (#717) (User Info) |
| I'd go with PERL. It's almost interpreted. It's very powerful. You can use english like sentences and teach to test results of function calls as if it was fun: open JOKES,"jokes.file" or die; And you can run small programs directly from the command line. |
| Clay in the hands -Re:**Interpreted** is key. (Score:1) by Liberty BASIC Guru on Tuesday May 30, @09:53AM EDT (#1027) (User Info) |
| You hit something on the head here with the idea of instant gratification. What's important is not whether the language is interpreted (all languages are ultimately interpreted by something at some level), but whether the user gets that "clay in the hands" experience. One really great language which goes even further than "change some stuff, run, change some stuff, run" is Smalltalk. With that language you can just type any Smalltalk expression and "do it". You don't even have to have a program. I hope to simulate this kind of kind of experience my my next version of Liberty BASIC, which also lets you type a bunch of code and run just the lines you want by highlighting them, but it doesn't have the same sort malleability as Smalltalk. -Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
| Re:Hear hear! Basic!~ (Score:1) by wolf- on Saturday May 27, @12:03AM EDT (#813) (User Info) |
| If you cant find one, or not interested in setting it up and taking additional desktop space, there are a number of decent C64 emulators available for the PC. Frodo 64: http://www.burgoyne.com/pages/jaso no/frodo1.html Others: http://www.hut.fi/Misc/cbm/emulators.html |
| BASIC does what it says (Score:1) by lactose99 (wunderkid@SPAMMEANDIKILLYOU@jellydonut.org) on Friday May 26, @03:21PM EDT (#4) (User Info) |
| Maybe I'm a little old-fashioned, but I always thought that BASIC made a good initial lanaguage. Its relatively easy to learn, and it starts down the right track for learning good programming methodology (except for all the GOTO statement limbo), instead of using a clunky RAD-type language. I'd say that if your kids want to learn how to PROGRAM, not how to whip-up a quick-and-dirty app, then BASIC would be a good start. "What, me worry?" -A.Newman |
| Re:BASIC does what it says (Score:1) by shepd (moc.liamtoh@rezulaer) on Friday May 26, @04:14PM EDT (#285) (User Info) |
| >except for all the GOTO statement limbo Qbasic (free with DOS/Win 95+) or QuickBasic ($$$) fixes that. I think it makes a great beginner language, because you can make a half decent program quickly, with just enough code, and it is still readable -- if you take advantage of the sub/function statements. And it comes with games for the kids to play too... ;-) (My email address is reversed...) |
| Quickbasic might be a good option (Score:1) by Jason H. Smith (jhs@kmfms.com) on Friday May 26, @04:43PM EDT (#404) (User Info) |
| Quickbasic (a Microsoft product with which I never really had any problems) is a nice setup. It's the ease of learning BASIC, but line numbers are optional, and the language supports structure, subroutines, and functions. Thus one can learn a high-level language without picking up the bad habbits of a spaghetti language. |
| Re:BASIC does what it says... VB does more (Score:1, Insightful) by Anonymous Coward on Friday May 26, @04:43PM EDT (#405) |
It has always amazed me that C/Java programmers who have not looked at VB, think that it is the same as BASIC. When a C/Java programmer slams VB, what the well rounded programmer hears is is, "I program in C and don't know how to do anything else." Granted the the same holds true the other way around. The VB language syntax is good for kids because it does not use a bunch of unusual symbols to represent functions like C style languages do. I.E. The VB Syntax of: If A = 5 Then End If -VS- the C & Java Syntax of: if (A==5) { } do EXACTLY the same thing, but a kid will already know what the Basic code does, he will have to be taught what the heck == or {} means. Dont think so, How many times have you been bit by == vs =. And here is a test for you Die-Hard C programmers out there: In C/Java insert the statement "A=5;" after the end of the If block in the following code fragment: } } } What? You don't know which "}" is the end of the if statement? Ok then, try it in basic Next X End If Loop As far as the feared GOTO keyword, I never need to use it in VB, and Java does not even have it. But C.... What do you do when you need to break out of multiple blocks of code? Java has a break-to-label, VB can EXIT from a specific block, But C.... you have to do a GOTO or a least a stupid amount of re-checking the same condition! So much for C being structured! An even bigger argument to not start kids with C is the pointer. Sun was smart enough that when they used the C syntax to make JAVA, they left out pointers. VB never had them to start with. Ever get the blue screen of death? Guess what? Thats not a bug in windows, its a C programmer's bad pointer. You know... come to think of it... All these things are reasons why a pro would only use VB or JAVA. ------ Now LOGO (by MIT and used in LEGO Mindstorms) was created for kids. While other languages are created to use numbers, LOGO uses words. Instead of "SpinTire(5)" like you would in VB or C or JAVA, LOGO just states "SpinTire 5." Small difference in Syntax, Big difference in concept! Hard for a veterin programmer to see it, but easy for a beginner. Bring on the Flamers! |
| Re:BASIC does what it says... VB does more (Score:1) by Zordak (flyingtiger@freewwweb.com) on Friday May 26, @05:56PM EDT (#591) (User Info) http://SeanCrandall.homepage.com |
| Perhaps you are unaware of the break and continue keywords in C. goto is not necessary. However, I think the real flaw in your argument is that VB, Java and C are very different creatures with different applications. C offers a great deal of control for the experienced programmer because it does almost nothing to insulate you from the workings of the machine (hence, its reputation as "high-level assembly"). It's very useful for number-crunching type tasks. On the other hand, I wouldn't try to write a GUI interface with it. There are other tools for that, and in that case, I don't generally need the visibility that C offers. Java (which does indeed use pointers, but hides them from the programmer) is great for applets. There are lots of different programming tools for different tasks, so trashing C because it's not intuitive hardly sounds "well-rounded". And if you feel THAT strongly about VB, why don't you attach your name to your self-described flamebait? Gentlemen should not have to duel with strangers. I am Zordak the Flying Tiger |
| Re:BASIC does what it says... VB does more (Score:1) by Zaaf (Arjan.Bos@ISeeYou.nl) on Monday May 29, @04:30AM EDT (#1015) (User Info) http://www.euronet.nl/users/icu15180 |
| You forgot the father language of all administrative processes, COBOL Here you can use both COMPUTE x = x * 10 and MULTIPLY x BY 10 GIVING x [ON ERROR GO TO ] Though I like COBOL I would not recommend it as a first language. It has the advantage of reading like English, but it lacks the visual environment for Windows / *nix. (This is not strictly true, but the graphical COBOLs are not common) --- Change ISeeYou to icu to mail me |
| Re:BASIC does what it says... VB does more (Score:1) by kane_greylock on Friday May 26, @10:17PM EDT (#775) (User Info) |
| I completely agree with your views on VB. I think for someone just learning to program, VB would be very easy to learn, and very rewarding. Drop a button on a form, add a messagebox, "hello world", viola! Anyone who slams VB obviously has no idea how to program in it. Especially with API, there is pretty much nothing that can't be done in VB that could be done in other languages. It supports OOP, COM, DCOM, class modules, DHTML, you name it... If VB is available, let them use it. There are TONS of jobs out there paying in the upwards of 6 digit salaries for VB programmers, if you really know what you're doing. But, like I said before, it's also an excellent place to start. It's only as complicated as you make it. |
| Re:BASIC does what it says... VB does more (Score:1) by phliar (spm@drones.moc.reverse) on Saturday May 27, @12:05AM EDT (#814) (User Info) http://www.drones.com/unicon/ |
| BASIC 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
|
| Re: VB sucks so bad (Score:1) by phliar (spm@drones.moc.reverse) on Monday May 29, @10:59PM EDT (#1024) (User Info) http://www.drones.com/unicon/ |
Please work on your comprehension skills; I said the language (if you can call it that... where is the spec? MS changes it with every release of Visual Studio!) sucks, not that all code written using VB sucks. I was writing "elegant, consistant [sic], and robust code" in IBM 360 assembly and FORTRAN some 25 years ago. (Now I prefer Unicon).> stupid stuff with no evidence of design or consistency. (And I know what> Strange, but I have written lots of VB code too yet my code is elegantly -s
|
| Heh.. (Score:1) by BilldaCat on Friday May 26, @03:22PM EDT (#5) (User Info) http://www.frungy.com |
| Actually, when I was 14, I started running a WWIV BBS, and I was probably one of the few who actually registered their software and got the code, which was C or C++.. can't recall.. or was some mutated form of C, I remember people referring to it as "WWIV C" for some reason. Anyway.. I cut my teeth on that, learning how to make small modifications, installing mods around the net, and stuff.. it really wasn't that tough.. as long as you can find a subject that interests them, I think they'll be eager and willing to go through some code.. at least, that was the case for me, I -loved- running my BBS and tweaking with it. BilldaCat - http://www.frungy.com |
| Re:Heh.. (Score:1) by CMiYC (cmiycii@hotmail.com) on Friday May 26, @03:47PM EDT (#163) (User Info) |
| and I was probably one of the few who actually registered their software and got the code In our area, the people that wanted the code registered... And we all had the same idea that "hey, its worth the money." Besides, at the time, nobody was interested in 'source code' for the most part anyway. WWIV is how I started to learn..(pronouced: copy-paste) C. --- "Both players [MPMan and the RIO] were able to withstand a vigorous shaking with no skips whatsoever" --Matt Rosoff, C|net |
| Re:Heh.. (Score:2) by BilldaCat on Friday May 26, @04:08PM EDT (#260) (User Info) http://www.frungy.com |
| Where was that area, anyway? I remember seeing some article back in the day that listed the most popular BBS software by region, and like, only near Washington D.C. was WWIV insanely popular. Everywhere else, except for CA, it was hardly used at all. Mainly, I wanted the code.. I wanted to go in and change stuff around.. and man, $70 as a kid when I was 14.. that was a FORTUNE to me. A lot of lawn-mowing and snow-shoveling :) And when I had that code.. wow, I was so happy. I remember the long distance calls on my 2400 baud modem to the nearest WWIV distribution site in NC to get the latest version when it came out, as I couldn't wait to get at it.. proving if you are passionate enough for something, you will -want- to learn it, even if you are young and inexperienced. As a side note, if you were in the WWIV area, what BBS did you run? I ran The World's Address in Northern Virginia for some time, and started up a network called FearNet, that grew to like 3rd or 4th largest overall at some point - until everyone died and went off to the internet. BilldaCat - http://www.frungy.com |
| Re:Heh.. (Score:1) by jmaslak (jmaslak@mindspring.com) on Friday May 26, @05:36PM EDT (#550) (User Info) |
| Yes, I did the same, using Quickbasic and VBBS instead of WWIV (C compilers used to cost more than QuickBasic's compiler). In addition, it seemed to have more neat features, such as a built-in scripting language. That's probably more responsible than anything I did for learning how to program. I see there is a lot of talk about not using "toy" languages. I disagree. Part of programming is learning how to overcome limitations -- I program PL/SQL for a living, and working around PL/SQL problems is a critical skill! Here's how I did it: Age 5: Apple IIe, basic, hello world, that kind of thing. My dad said, "you can't program this until you learn to read." It made me want to learn to read *AND* learn to program! Age 7 or so: My parents bought me a portable computer. It ran on a bunch of AA batteries (I never used that) or wall power, had a 4 line screen, with 40 characters wide. Yes, very, very limited. Oh, 16K of RAM. But, it had built in BASIC and booted up without any "programs" running. You had to type everything in at a "basic prompt." The system then remember what you put in between uses. So, I developed 5 or 6 games, and linked them together with a menu system. No graphics, but I still enjoyed it. More Apple stuff, etc. Until age 15, when I became "cosysop" with a friend on a BBS. I did more than you would expect for a teenager -- we had formal "software upgrades", backup policies, etc. We used his computer to run the BBS, and my machine was the "development environment." Thus, it contained a duplicate of the "real" system and let us try things there first. When we switched to VBBS, I learned VBscript, and then we purchased the VBBS source code, so we could modify it. I learned a lot. Age 16: Pascal, C, Fortran. Did this at the community college. When you see "C", and are exposed to the raw power of it all, you only really appreciate it after dealing with the limitations of other languages. Sure, you learned a lot of esoteric tasks to work around toy machine problems, but, you still learned the basics of logic. Subroutines, objects, etc, can come earlier. When the kid wants to learn them, he will. The key is to make the kid want to learn it, let them learn it (remove the obsticals), and encourage them. This is the same for teaching a kid anything. |
| Re:Heh.. (Score:1) by Jackson on Friday May 26, @07:54PM EDT (#707) (User Info) |
| I started with FORTRAN, then later learned GWBASIC, then IBM Assembler, then Atari BASIC (8 bit on the 800XL) then wrote some BASIC on TRS-80 machines. I found "Deep Blue C" for the Atari, then bought "Lightspeed C" for the Atari, then got into C on the PC's, then C++. I am teaching a Programming Concepts course in a community college and using "Absolute Beginner's Guide to Programming" by Greg Perry, that uses QBASIC. The attractive part to me is that students can use QBASIC from a floppy disk, and code at home, in the lab, at their grandmother's house, etc. This beats students having to spend $50 - $100 for a compiler to get started. Also, many people can help them with simple BASIC programs. My experience is that the low cost, wealth of helpful info, and ability to code anywhere makes BASIC a good place to start. Those people who get the bug, will find their way quickly to languages that have greater speed and power, and you won't lose too many to an overly steep learning curve. I like C, but I believe the ability to get going quickly with BASIC, makes a difference. If a person can learn a different language, or has someone to show them, then by all means, that would be good too. |
| I'm a kid too (Score:1) by kingkai27 on Friday May 26, @03:22PM EDT (#6) (User Info) http://carldrawings.dk3.com |
| I'd like to know the best code to start programming in, one that would be simple enough to learn with little fustration, and would help in more advanced programming. help would be appreciated. thanks. Rock 'n Roll, Not Pop 'n Soul carldrawings.dk3.com |
| Re:I'm a kid too (Score:1) by Zordak (flyingtiger@freewwweb.com) on Friday May 26, @06:08PM EDT (#605) (User Info) http://SeanCrandall.homepage.com |
| You're not going to learn programming without frustration. However, overcoming those frustrations turns out to be very rewarding. My first structured language was Pascal (on old UNIX dumb terminals with VI no less), and I think it was a great starting point. There are lots of free tools and tutorials. Search the web. I am Zordak the Flying Tiger |
| Mindstorms? (Score:5, Insightful) by cprincipe (cprincipe@yahoo.com) on Friday May 26, @03:22PM EDT (#7) (User Info) http://www.smo.uhi.ac.uk/gaeilge/foclora/riomhaire.html |
How about Mindstorms? Good introduction to the relationship between programming and results. |
| Re:Mindstorms? (Score:1) by austad on Friday May 26, @04:06PM EDT (#249) (User Info) |
| I agree, Lego Mindstorms would be just the thing. While you're at it, have them build me a mindstorms robot that sits on my kitchen counter and sprays my cats with water when they jump up looking for something tasty to eat. |
| Re:Mindstorms? (Score:1) by CheesyPoof on Friday May 26, @04:09PM EDT (#265) (User Info) |
| There is a game out there called Mindrover. It is pretty cool and would seem like programming for the kids. Hell, you would probably like it. It only runs on Windows, which is why there hasn't been any /. story about it (at least to my knowledge). Check it out here. CP |
| Re:Mindstorms? (Score:1) by wik (wik@NOSPAM.rabidpenguin.org) on Friday May 26, @10:59PM EDT (#795) (User Info) http://www.rabidpenguin.org |
| Yep, I remember it! Unfortunately disk 2 had a few bad sectors, so I couldn't get too far in the actual game. However the little robot design modules worked like a charm. I spent hours just playing with little robots. I guess both disks have gone bad/are lost by now... too bad :( Bork bork bork |
| Lego! (Score:3, Insightful) by MS on Friday May 26, @04:15PM EDT (#287) (User Info) |
| I played Lego till the age of 18 and I thank god for it. Lego helps you very much to understand how to build and put together components, things can always be adapted, expanded and be made better in some way with intelligent composition of basic pieces and evolve to new structures, buildings, machines, robots, ... I'm not Linus, but I'm sure he played Lego too. And some day in the future my children will play Lego too. :-) |
| Re:Mindstorms? (Score:1) by goodviking on Friday May 26, @04:22PM EDT (#319) (User Info) |
| Mindstorms would be great. I first got interested in programming with (?)Turtle Basic(?) on the Apple II. The goal was make a small simple program that would make the turtle move around. As a kid, it was something that was cool and I just happened to learn from it. Mindstorms are the best equivalent that I know of today. |
| Re:Mindstorms? (Score:1) by punkrockgeek (jmeskill@libertydistribution.com) on Friday May 26, @06:25PM EDT (#627) (User Info) http://www.projectsanity.org |
| The program was called Turtle Tracks (or something close to that) and it too was my first introduction to programming... and changed my life... It successfully merged fun and programming into one (and that's what counts when you are a little kid :). I am now a professional programmer, and doing work on multiple FSF/GNU projects... Lego Mindstorms are probably a good modern-day equivalent to doing turtle tracks back in the 80's :) They are tons of fun too! :) |
| Re:Mindstorms? (Score:1) by DJStealth (djstealth@no.spammers-xyz.mindless.com) on Saturday May 27, @05:06PM EDT (#990) (User Info) |
| I think I remember LOGO.. wasn't that the language with the "TURTLE" and you drew lines or something by commands like 'MOVE FORWARD' or 'MOVE LEFT', etc.? |
| Re:Mindstorms? (Score:2, Informative) by Zebbers on Friday May 26, @04:27PM EDT (#343) (User Info) |
| I agree...or even a number of other robotics kits from companies like Parallax...most of Parllax's bots use microcontrollers programmable in basic. The ability to visualize your routines in a physical manner(such as an if-then-else for a robot's 'feeler' arm) can be a great tool. Along those lines there are many, many preassembled robotics kits that use very very easy to understand fuzzy logic...not so much programming but it's a great tool to teach kids(people) to think ahead and think in a 'programmers mindset'. This of course strays away from computers, and maybe your children don't like electronics or robotics at all...but I've found it to be a good tool. Like the posters above, Id have to say Python if its a strictly computer language...its a Very High Level Language(tm) and as you show a concern for Windows...the win32 version has tcl/tk support included and is very easy to use(and cross platform! ;) )...albeit not as point and click as VB is for constructing GUI's..but it certainly will teach them OOP easily enough. And like other posters have said...I wouldn't hesitate to throw BASIC at them...when you throw something with somewhat more restrictions in built-in ability into the mix, it forces you to think more creatively and ultimately to develop innovative ways of doing things...hell..you could even go grab them a couple of old Tandy1000's(what I learned on) or a C64 or an AppleII....if they don't already have their own computer to play and experiment with. G'luck ;) |
| Re:Mindstorms? (Score:2, Interesting) by plawson on Friday May 26, @04:55PM EDT (#438) (User Info) |
| In my experience Mindstorms works great. My son and I used Lego Mindstorms to build a mini-sumo robot and beat 17 other entries first time out! We have also built and programmed numerous run-around the floor robots and a bar-code reader/candy dispenser. Several things are good about Mindstorms. You can build active, interesting *fun* robots, and fun is *most* important. You see the results of your program in a real manifestation (show me a 10-year-old cares about "Hello World?"). The Lego programming language is very drag-and-drop visual, and is dead simple to get started with. Once you get going there are several other languages to use. I use NQC (not quite C) which has a very c-like syntax and a reasonable programming environment called the RCX Control Center. More info on NQC is at: http://www.enteract.com/~dbaum/nqc/index.html . There is also a Forth variant and another low-level language called, I think, LegoS. The last 3 all run under linux. NQC also works with Windows. If you get interested in robots, there are several systems based on a series of microcontrollers called BASIC STAMPs. These, as you might guess, are programmed in versions of BASIC (running under DOS). The advantage here is you can teach some electronics fundamentals along with the programming, again in a real-world environment. the Robot Store, http://www.robotstore.com/ has lots of resources. |
| What He Said! (Score:1) by Delf on Friday May 26, @05:27PM EDT (#524) (User Info) |
| I've spent the last year or so working with a 13-year-old who's been learning programming in exactly this way. He started with the visual programming language that came with Mindstorms and has moved on at his own pace to using NQC. He's learned a lot of the basic skills of programming, and he hasn't been held back by having to cope with the nasty details of syntax. (I think that the tyrrany of the syntax checker is the hardest part of beginning to program, especially for younger people who aren't used to having to express themselves so precisely.) Sure, he'll have to cope with syntax eventually, but he's learning useful general programming concepts like breaking a problem into pieces, control flow, multitasking and such; meanwhile, he's sneaking up on the detail-oriented parts of programming in a context where the need for the precision is clearer. It's a lot easier to understand why the compiler needs all that help with punctuation after you've seen how many ways a simple robot program can go awry. |
| Re:Mindstorms? (Score:1) by Rhys Dyfrgi on Saturday May 27, @11:43AM EDT (#960) (User Info) |
| I know a 13 year old that cares about "Hello World". He's been programming for years, and uses Windows, BeOS, Linux, BSD... prolly a couple of others I don't know about. So there must exist 10 year olds that care about "Hello World" as well. And I cared about "Hello World" when I was 8, and learning to program in QBasic on my 386 (first computer I had). So :P --- END OF LINE |
| Re:Mindstorms and "Hello World" (Score:1) by plawson on Tuesday May 30, @11:31AM EDT (#1028) (User Info) |
| I'm not saying there aren't kids into "Hello World." My son, at various times from maybe age 6, has tried different flavors of BASIC. He'd get interested for a day or two, then drop it. When I bought him Visual Basic he built a dice roller with a GUI for Dungeons and Dragons. But we could never get the help files to work, so he kept getting stuck, and I can't help much, because I use perl and python and the VB programming environment is terribly complex. The robot projects have really caught his interest. BTW -- anyone got ideas on how to "fix" help files in Windoze? |
| Re:Mindstorms? (Score:1) by t.p. on Friday May 26, @05:26PM EDT (#521) (User Info) |
| I have to disagree on the quality of the Lego Mindstroms. The interface and whole program is horrible. You might as well spend your time learning C++. Don't get me wrong I love legos and have had them all my life. They are great for building and learning how fit things together, but the computer programs made by Lego are horrible, with poor quality and can be quite frustrating. If they could only make better computer software combined with legos they could really hit it off. |
| Re:Mindstorms? (Score:2) by cduffy (cduffy at bigfoot dot com) on Friday May 26, @05:54PM EDT (#587) (User Info) |
| Yes, but you don't need to use the Lego software. The protocols and whatnot have been reverse-engineered, and third-party tools (like NQC) are available. |
| Re:Mindstorms? (Score:1) by plawson on Friday May 26, @08:07PM EDT (#716) (User Info) |
| Three points: (1) You have to go by the kids' reactions. The Lego software may not be attractive to an experienced programmer, and it has some frustrating limitations (no variables!), but kids get into it, and that is the first, hardest step. (2) The underlying hardware and software are remarkably sophisticated even though the user interface is dumbed down. Remember, this is for kids as young as 10. (3) As I pointed out, and others have commented, there are several more powerful languages to use with Mindstorms once you get started. |
| Re:Mindstorms? (Score:1) by t.p. on Friday May 26, @10:53PM EDT (#793) (User Info) |
| You have to remember i am not an adult i am not even old enough to drive, so i still consider myself young enough to understand how kids think. |
| How about MOO? (Score:1) by doop on Friday May 26, @05:39PM EDT (#555) (User Info) |
| Rather than splashing out on a load of Mindstorms kit, how about downloading and running a MOO server? The MOO (Mud Object Oriented) language is a full Object Oriented language which lets you customize an interactive text-based VR to your heart's content. You can make anything from simple hello-world objects, to eerily human bots which wander round and talk to people. The language is similar to Javascript: strongly OO in a funny sort of way, but simple enough to pick up very quickly. The fact that it all happens inside a world containing other people means (a) There are people around to help you, and (b) You can show off your code. (Other than that, I guess I'm with the python crowd) (There's a list of MOO tutorials here, amongst other places. Check it out, it's great fun.) |
| Re:How about MOO? (Score:1) by DavidTC (mush@cx.david) on Saturday May 27, @02:06AM EDT (#851) (User Info) |
| Along with MOOs, look at MUSHes and MUCKs, MOOs have a C-like language, IIRC, while on MUSHes you can use simple commands or almost LISP-like functions, and MUCKs have a version of Forth. Like the previous poster said, programming in an environment when other people are in the same environment as you, and can look at your code and help is very nice. As for the easiest, I think MUSH commands would be the simpliest: @create Cat |
| Re:How about MOO? (Score:1) by MikeFM (moc.liamhsuh@soimgom) on Saturday May 27, @03:47AM EDT (#882) (User Info) |
| You might try Cold MUD. It has all the benefits of MOO and is much more modern and clean of design. Either is a great introduction to object oriented programming (there is nothing like walking around your objects to get a feel for them), VR systems, text processing, and Internet programming. This might be a good second step after giving them a go on the Mindstorms. Coed Naked Netting: Pushing all the right buttons. |
| Re:Mindstorms? (Score:1) by thogard on Friday May 26, @11:21PM EDT (#798) (User Info) http://web.abnormal.com |
| Using Mindstorms is a much better idea than what I would have sugessted. It allows them to get to the level they want without hitting stupid limitations and teaches what is going on inside the computer at the real level. Things like VB and OODish things don't teach that. I started out at age 10 by building bit sliced comptuers to run my model railroad. This started out with simple hardware to flash crossing lights and grew into a general purpose 4 bit cpu that could do some basic switching operations and keep the trains from crashing into each other. It took about a year but by the time I gave up on the railroad, I had gotten into building biger and faster bitslice stuff out of any spare 74LS parts I could scavage. My first year in college I designed and built a 32 bit computer and a few years later had unix running on it. All the best programmers I know have a few things in common: 1) they were doing software and hardware from the start. 2) the were using assembly within a year of first dealing with computer. 3) none of them could stand CS classes. 4) They got into software to solve some other problem. Most of the best I know aren't CS people. Their trained field are things like chemistry, engineering and math. Most of the MSCE's I know started out with a well organized formal CS course of study and are clueless about what the computer has to do just to get a button to look like its depressing on a pretty screen. |
| LEGO LOGO (Score:1) by siokaos (siokaos.omitme@techie.com) on Sunday May 28, @12:25AM EDT (#999) (User Info) http://www.redrival.com/siokaos/index.html |
| Anyone remember LegoLogo? My 1st console-based language! Then there was good old QBASIC, then VBasic, the comes C++, then Java. Now Assembly... I wish I had learned a scripting language before Vbasic, and Assembly before C++ One Microsoft Way: Capitalism! |
| Re:Mindstorms? (Score:1) by Sq (mnalis-sd@voyager.hr) on Wednesday May 31, @10:35AM EDT (#1031) (User Info) |
| How about Mindstorms? Good introduction to the relationship between programming and results. What is needed is ability to play Quake III with them! |
| Teach the kids to program in Perl! (Score:2, Informative) by AltGrendel on Friday May 26, @03:23PM EDT (#8) (User Info) |
| ActiveState has Perl for Win32 boxen. Try www.activestate.com |
| Programming for fun or SE for profit? (Score:1) by #!/bin/allen on Friday May 26, @03:39PM EDT (#119) (User Info) |
| Programming for fun or SE for profit? If SE, don't start on programming, start on requirements documents and user focus groups. Perl is a great language for hacking. My son did some guessing games at 8 in perl and is still proud of them. There is mud code in perl called perlmud. That makes good hacking, especially if they have seen a mud before. And speaking of muds, what about mud programming languages? I haven't used them a lot, but they have the archanity ness that makes for a good experience. I think the main goals should be a body of hackable material and a feeling that their system makes sense to them but wouldn't to everyone. Allen Buck --- You can see where I'm comming from, but that doesn't mean I couldn't apreciate your views. Never trusta man who can only spell a word one way. (Andy Jackson) |
| Why? (Score:4, Informative) by binarybits on Friday May 26, @03:40PM EDT (#120) (User Info) http://www.tc.umn.edu/~leex1008 |
| I love Perl, but starting kids off on it is like teaching them to shoot by giving them a machine gun. I think the most important characteristics of a beginners programming language are simple, logical syntax, a reasonably small set of instructions and operators, and enough high-level functions to allow kids to do something useful. Specifically, you should be able to run a "hello world program" in a line or two, and you should be able to graphics and other fun stuff like that without knowing too much about OS internals. Perl's not a terrible language for this (it is interpreted and provides some high-level functionality), but its syntax is only logical if you're used to c, it has an ungodly number functions and operators, and it's not designed to do graphics or interactive functions. (Yes, I'm sure there are modules and such to do pretty much anything, but the whole point is that we're talking about beginners) I grew up with BASIC on the Apple II. I started in first or second grade, and spent the next 5 years programming games and stuff almost constantly. I moved on to other languages and platforms in high school. So I still think BASIC is a good choice. Not sure VB is quite the ticket-- I wonder if there are any good free BASIC interpreters. I guess Perl would be an OK second choice. A close third would be Java, which has some nice graphics capabilities and a less obfuscated and complex syntax. |
| Re:Why? (Score:2, Informative) by gaudior on Friday May 26, @03:57PM EDT (#203) (User Info) |
| I gave my son, who is 14 my old mac 575 and MacPerl: Power and Ease. He is stepping through the examples, and really starting to get it. I do not think Perl is a bad starting language. In fact I think it may be the best starting language, because you can be useful and have fun with a small subset of the language's features. After a while, you can extend your use with your knowledge. That isn't true of most languages. He is learning control structures, IO, scoping, regular expressions and simple data structures. This is all with some very simple programs, that don't do much of anything, yet. |
| Re:Why? (Score:1) by binarybits on Friday May 26, @04:03PM EDT (#234) (User Info) http://www.tc.umn.edu/~leex1008 |
| 14 is kinda old, and he probably has a longer attention span and more of an ability to grasp higher-level abstractions than an 8-year-old. I'm not saying that Perl is a terrible language. I just think that particularly for younger kids, BASIC is simpler and gives more instant gratification. |
| Re:Why? (Score:1) by AlainB on Friday May 26, @08:34PM EDT (#735) (User Info) |
| Perl: @animals = (Dog, Cat, Bird); foreach $animal (@animals) {print "$animal ";} Basic: $ANIMALS[0] = "Dog" $ANIMALS[1] = "Cat" $ANIMALS[2] = "Bird" FOR I=0 TO 2 PRINT $ANIMAL[I]," "; NEXT I Personally, I think PERL is easier to learn notwithstanding the fact that it's more powerlful. |
| Re:Why? (Score:2) by Suydam (brian@SPAMR00LZ.rickjames.sapien.net) on Friday May 26, @03:57PM EDT (#207) (User Info) http://www.have-a-brew.com/ |
| I would tend to agree most with your last comment. Regardless of how people feel about Java as a commercial development language, it's great for learning how to program concisely (from a functional standpoint.....even if it is wordy) and it's great for doing graphical stuff (which will solve the Asker's boredom fears). Finally, my advice to our asker is to remember that kids rarely find computer programming boring....don't worry too much if they'll lose interest. They will probably love it...most kids do. |
| No, Simple Languages Aren't (Good) (Score:3, Insightful) by Crutcher (dunna001ATbamaDOTuaDOTedu) on Friday May 26, @04:23PM EDT (#324) (User Info) http://resumes.dice.com/crutcher |
| Do not confuse yourself, languages like BASIC are NOT good for teaching children. You may have learned it first, but that doesn't make it better. The only thing that makes BASIC easier for anyone than C is that it is more like (bad) math. But this only helps if you've had lots of (bad) math. It doesn't really help those who haven't had the (bad) math. What a programmer really needs is Data Structures and Flow Control. Until these things are internallized, you are not a programmer, after they are, you will always be one. BASIC doesn't do either well, so your children will not learn either well. C does both well, so your children will learn both well. (Actuall I would use C++, it's a little more forgiving, but still doesn't let you cheat like perl does (which is something you don't want newbies doing (as the wont fully learn those two lessons))) Do not underestimate the flexibility of a child's mind. Look at baseball or pokemon stats. Give them a real language. After they learn it, even a little bit, it will stew in their brain. With many cognitive tasks, how LONG you have know something is more important than how WELL you know something, and they will NEVER need to have know BASIC for 20 years. (but if they are 10 year C/C++ veterans when they get to college?) Do not underestimate how very MUCH time children will spend working on something they find interesting, so even hard tasks are mastered. Think of video games, sports, TV, reading. They HAVE the time, let them work on something real. Also, C on UNIX is simpler than most things they can do on WinX boexen. File access and piping makes more sense, etc. If they have NEVER programmed, they have no legacy to overcome, so start them on the simpler system. --- "Elegant, Commented, On Time; Pick any Two" XYZZY: where Nothing Happens! |
| Re:No, Simple Languages Aren't (Good) (Score:2) by 198348726583297634 on Friday May 26, @05:07PM EDT (#475) (User Info) http://WWW.YELLOW5.COM/pokey/ |
| I disagree... BASIC is a great starter language, because it lets you do exactly what all programming is: tell the computer what to do - and it does it very, very simply. Data structures are important, yes, but only to us people. The real meat is that we tell the computer what to do; everything else is eye-candy and syntactic sugar. Trying to get kids interested in arranging their bytes is like trying to teach them good martial arts - they like the noise their fist makes when it slams into the focus mit, but they don't care about body positioning for better power; just like they will think it's neat if their POKE 54328,15 command changes the background color, but won't care about arranging their integers in a linked list. You can get kids to practice good body positioning, or make linked lists or whatever, but you can't make them care about it like adults... they are still kids, after all. |
| Re:No, Simple Languages Aren't (Good) (Score:1) by Spire on Saturday May 27, @03:13AM EDT (#874) (User Info) |
| You sound just like the condescending adults that I couldn't stand when I was a kid. Many adults treat all kids as if they were stupid. The fact is that just as there are smart adults and stupid adults, there are smart kids and there are stupid kids. |
| Re:No, Simple Languages Aren't (Good) (Score:1) by xee (xee@NOSPAM.trapezoid.com) on Friday May 26, @05:20PM EDT (#511) (User Info) |
| First off, when I get moderator stats again, I'm gonna mod this POS down!!! BASIC is an excellent language for children. I started programming in 2nd grade on the Apple-IIs in school and the C64 at home. IMHO, a programming language should not force a programmer to think in a certain way, rather, the language should allow the programmer to write progs the way he/she thinks. I am a programmer because I like to make my computer do things, not because I think in a structured way (I DON'T!!!) ------- I don't know how to spell ironic! |
| Programming is HARD (Score:2) by Crutcher (dunna001ATbamaDOTuaDOTedu) on Saturday May 27, @12:10AM EDT (#816) (User Info) http://resumes.dice.com/crutcher |
| Programming is one of the hardest things that we have ever asked the human mind to do. We are not built for the kind of internalization of flow and structure that it requires, and we are certainly not built for the level of perfection it demands. As such, not every one CAN do it, and most that CAN do it, CANNOT do it easily, or well. (this is true, how many gurus do you know? How many midlevel people do you know? I rest the case.) So we need help. And like everything else that people do, learning this task requires that we internallize certain things. If I am a golfer, I will be forced to internalize a representation of the ball and my club if I intend on getting good. This does not mean that I will be aware that I have done it, but If I want to be able to plan consequences, I have to have an internal model. So in programming, if I am to become a Programmer, as opposed to just playing with a toy language for a bit and dropping it, I have to internalize as accurate a model of how a computer works as possible, and that means Data Structure and Flow Control. I cannot do anything so rediculous as "Programming the way I think" because I AM NOT A COMPUTER. If I programm in a way that works, and seems to be "The way I think" then it is because I HAVE LEARNED TO THINK THAT WAY. So, In conclusion, it is not programming languages that *should* force a programmer to think in certain ways, it is Programming At ALL that DOES force a programmer to think in certain ways. And programming is what we want to teach. --- "Elegant, Commented, On Time; Pick any Two" XYZZY: where Nothing Happens! |
| Re:Programming is HARD (Score:1) by xee (xee@NOSPAM.trapezoid.com) on Saturday May 27, @12:21AM EDT (#819) (User Info) |
| Hmm, so than what you're saying is that I'm exceptionally smarter than most people (including most programmers)? It's funny, though, my teachers and parents have said the same thing, but I still don't see what the big deal is! Either way, I thank you greatly for the compliment, and wish the best to you too. Side note: I think the previous reply to my message is flaimbait. However, I do thank the AC, and Crutcher for reading my post and actually considering the points I made (even if it was to argue them). That's what makes Slashdot kick so much ass. ------- I don't know how to spell ironic! |
| Re:No, Simple Languages Aren't (Good) (Score:1) by Antipop (antip0p@home.com) on Friday May 26, @06:19PM EDT (#615) (User Info) http://users.drak.net/antipop |
| I agree. I started learning BASIC in the third grade and it didn't do me much good. Sure, playing around in it is fun at first, but when you want to actually write a program that you can use, forget it. I'm 14 now and am coding in C++. I love C++ because my programs can be much more powerful than anything I had ever dreamed of doing in BASIC when I was little. More importantly, the concepts you learn in a language like C/C++ can easily be applied to other languages, unlike BASIC where I had to unlearn many things. For example, GOTO loops are common in BASIC but everyone knows that they are bad programming practice. C/C++ is not especially hard for kids like some people believe. I haven't had any more trouble with it than I did with BASIC or HTML. No matter what language you choose to teach them, the concepts of loops, objects, and other things will still be there, the syntax will just be different. -Antipop In a world without walls, who needs windows and gates? |
| Re:No, Simple Languages Aren't (Good) (Score:1) by binarybits on Saturday May 27, @03:19AM EDT (#876) (User Info) http://www.tc.umn.edu/~leex1008 |
| I started learning BASIC in the third grade and it didn't do me much good. Sure, playing around in it is fun at first, but when you want to actually write a program that you can use, forget it. I think perhaps you're missing the point here. When you're in third grade, nothing you write is "useful." The point of programming at that age is to learn how to program. So I don't think it matters if you are able to write programs you can "use." More importantly, the concepts you learn in a language like C/C++ can easily be applied to other languages, unlike BASIC where I had to unlearn many things. And how hard was that? I didn't find it difficult at all. Really, the difference between a goto and a loop is trivial from a conceptual standpoint. And if you're programming in a language that doesn't have goto's, you're going not going to be using them. You also seem to think that you learned little of value from BASIC, which I'd bet money isn't true. The things you learned aren't things you think of as separate skills, but if you don't believe me, I suggest you try teaching c++ to one of your non-programming friends. They will be bewildered by things that you consider blindingly obvious. And don't think that c isn't going to give you any bad habits. Every language leads people to write code in certain ways, and so every language will lead to bad habits in some way or another. I haven't had any more trouble with it than I did with BASIC or HTML. OK, except that you're 14 now, and you would have been about 9 when you started on BASIC. You undoubtedly have a longer attention span, better disciplined mental abilities, and other advantages that you didn't have at 9. Most importantly, you *already know a language* which is a *huge* advantage. I know that if I had been given c in second grade when I started programming, I wouldn't have been as interested in it. |
| Re:No, Simple Languages Aren't (Good) (Score:1) by Antipop (antip0p@home.com) on Saturday May 27, @12:01PM EDT (#963) (User Info) http://users.drak.net/antipop |
| OK, except that you're 14 now, and you would have been about 9 when you started on BASIC. You undoubtedly have a longer attention span, better disciplined mental abilities, and other advantages that you didn't have at 9. The original post said that his kids were 11-13, not 9. My point is that BASIC has its limitations, why would you want to stunt a young programmer by giving him a language that is not powerful enough? A 12 or 13 year old can certainly learn a language like C/C++ with no other programming experience, one of my friends has done it. I have heard that Python is a wonderful language for beginners, and it is also very powerful, maybe this is a better alternative to C? -Antipop In a world without walls, who needs windows and gates? |
| Re:No, Simple Languages Aren't (Good) (Score:1) by binarybits on Saturday May 27, @03:07AM EDT (#872) (User Info) http://www.tc.umn.edu/~leex1008 |
| I don't think you understand the problems inherent in teaching programming to an absolute beginner. If you have never programmed before, the computer is a mysterious black box. Programs are dense lines of largely incomprehensible symbols. And when an absolute beginner is asked to write a program, the problem he has is not that he doesn't understand data types or flow control, it's much more basic than that: he hasn't yet grasped what exactly programming is. In order to understand what it is to program, he must understand the correspondence between what he types into his program and what happens when he runs his program. That means that the more direct and unobfuscated the feedback, the better. This is why "hello, world" is the traditional first program to write when learning a new language-- it provides the simplest possible program that still shows the relationship between a program and its output. Human beings learn in steps. We learn to crawl before we walk, and we walk before we run. BASIC allows you to write one- and two-line programs that print text output. In c, it requires several lines of headers, function definitions, and other junk. This creates an extra barrier to the direct feedback needed when learning a new language. In addition, it imposes unnecessary complexity in printing. printf is not the most elegant function. If you want to do something more interesting (say, graphics or sound) you have to link in extra libraries, make several function calls, etc. This clouds the crucial link between a program and its output. A programmer should be able to take a program and trace what exactly each line does. The more headers, type declarations, obscure functions callse, etc, are used, the less clear that is. Keep in mind that things that we take for granted are complete mysteries to most 8-year olds. Concepts like memory, pointer, variable, data structure, function, loop, etc (not to mention processor, disk, cache, and other hardware terms) are complete mysteries. They have no idea what is going on inside the box. So to expect them to learn about the details of what's going on inside at the same time they are learning how to use it is silly. It is much easier to understand how it does what it does if you have an intuitive understanding of what it does. The first step in learning to program isn't to master data structures or flow control. It's to get an intutive understanding of what a computer *does* from a purely functional point of view. It's to get a clear notion of what things the computer does for you and what things you have to do for yourself. To a beginning programmer, it doesn't *matter* if the array they are using is implemented as an array or a linked list. And at this basic level, the difference between a goto, a for loop, and a while loop are irrelevant. They affect the maintainability of code, but functionally they serve the same purpose. So a language that uses nothing but gotos, and doesn't provide any higher-level data structures is perfectly acceptable for this basic level of learning. You're not learning to write good code at this point. You're just learning to write code that works. I think you're underestimating how difficult it is to make code that just works. Most of us have been doing this for years, and so it seems easy to us, but if you watch a complete beginner, it really is difficult. This is because it takes time and practice to understand the requirements and limitations involved in programming. Once you teach a child to write code that works in one language, it will be fun enough that they will want to master more of that language on their own. And once you know one language well, learning a second language is much easier. I think it's counterproductive to try to get kids to write good code before they've figured out how to write functional code. Clean, elegant code that doesn't do what it's supposed to do is worthless. In other words, you are focusing on walking techniques before a child has learned to stand up. One must be able to walk around without falling down before one can start thinking about walking gracefully. To expect children to write perfectly structured OO c++ code right off the bat is absurd. |
| Re:No, Simple Languages Aren't (Good) (Score:1) by alleria (slu_2@altavista.net) on Saturday May 27, @09:33AM EDT (#940) (User Info) |
| Heh. C++ != forgiving. Just the existence of _Effective C++_ and _More Effective C++_ with non-obvious things like making sure your copy constructor doesn't clobber the object if it's getting assigned to itself convinces me of that. Perl, on the other hand, really isn't that bad. It's intuitive, and really does have a lot of that "do what I mean, damnit!" built into it. (take the $ matching at the end of line, \n or not thing). It's rich in the 'right' way -- gives you lots of functions that do stuff, unlike C++, where you get a huge handful of words like 'virtual' 'static' 'volatile' 'register' (okay, so noone uses that anymore, but still) that all do very non-obvious things. The syntax isn't completely consistent, but it scales well back up to C++ in many ways, and the RAD part of Perl means that kids get immediate results. So what if graphics aren't built-in? Install Tk for them, and then just tell them to put use Tk; at the top of their programs. Perl fits the ticket for a no-nonsense language that doesn't require 14 lines to print "hello world," and can do a GUI version of that in about 4. (last time I tried GUI Hello World in C++, I ended up with about 3 screenfuls of crap from Codewarrior. Ugh!) Smee |
| Re:Why? (Score:1) by jorbettis (jbettisOMIT@davesworld.net) on Saturday May 27, @10:12AM EDT (#944) (User Info) |
I first learned how to program in QBasic. I was in seventh grade at that time, and I wrote a rip off of the game 'pong'. It completly maxed out my 386 computer. After that, I jumped immediently into C. It took me years to get good at it, but once I was, I could apply what I learned to just about any other language, for the simple fact that language writers use C. I would suggest to start them on a very easy and limited language, then let them desire the much more powerful and more difficult languages on thier own. Jordan Bettis BTW: Omit the OMIT (jbettisOMIT@davesworld.net) |
| Re:Why? (Score:1) by Ames (dhayward@bigfoot.com) on Saturday May 27, @01:16AM EDT (#838) (User Info) |
For teaching kids, much of the responsibility This is true no matter the subject and no matter the age of the student. The biggest question that I would have for the original poster is "Where do your intentions lie? Will you be actively teaching, or are you looking for a language that the children would pursue on their own?" If the former, then I would say pick something that you know well and feel capable of teaching to someone of that age. I have seen more teachers fail because they are trying to teach the way that they are "supposed to teach". If the latter, it should be fairly simple, and have lots of examples at hand. In my experience, most programmers that learned without the benefit of a formal teacher, took example code and decided to "enhance" it, which is pretty much the same thing as the previous poster recommends, but without the formal teacher. Some teachers just teach. The good ones encourage their student to learn first. |
| Don't teach Perl; *do* teach regular expressions (Score:2) by sethg (sethg@ropine.com) on Friday May 26, @04:11PM EDT (#272) (User Info) |
You can teach the basic concepts behind regular expressions (just using letters and *?[-]()^$) in a few minutes, and then challenge kids with questions like:
-- "But, Mulder, the new millennium doesn't begin until January 2001." "Nobody likes a math geek, Scully." |
| Re:Teach the kids to program in Perl! (Score:1) by ante_up on Friday May 26, @04:33PM EDT (#363) (User Info) |
| I would start them off with HTML. HTML offers instant gratification, as one only needs to reload a browser window to see the results of their coding. Single line text output from the command line will bore most kids. Building web pages with pictures, color, and different fonts is visually rewarding and would likely hold their interest much longer. Once they are somewhat familiar with HTML, move them into PERL and CGI programming. PERL may seem awkward at first, but if they understand just a little bit of HTML, they will be able to build web pages using PERL and learn a very powerful computing language at the same time. PERL is one of the most supported computing languages (if not the most supported), which is why I would want to teach the kids to program with this language. However, I would probably start them off with something that would likely hold their interest beyond the output of the hello world script. |
| Re:Teach the kids to program in Perl! (Score:1) by gr8matt on Friday May 26, @04:48PM EDT (#416) (User Info) http://www.fatspider.com |
| Good advice ante_up... Also to add to this, and excellent book to start with is Sams Teach Yourself Perl in 24 Hours. I have spent literally hundreds of dollars on Perl books trying to learn until I got the Sams book and within a few weeks, was programming some pretty high level stuff. |
| Re:Teach the kids to program in Perl! (Score:1) by Vagatech (root@127.0.0.1) on Saturday May 27, @04:27AM EDT (#895) (User Info) |
I have to agree with you here. Perl is a great programming language to get started on. It gives almost instant gratification (its amazing what you can do with just a very limited knowlage of the language. Especaly in the CGI programming arena) and coupling it with HTML gives the visual feedback that kids need to keep interest. There's also the "hey billy! go to http://insertaddress.com and check out what I just made" thing as an added bonus. The nice thing about starting a kid out in programing by doing simple CGI's in perl is that to do something realy usfull and cool you don't need to know much of the language. For example the first program I ever wrote in perl was a script to read in a flat text file, pipe delimited database of names, e-mail addresses, etc. and display them on a webpage. At the time I had never programmed in any language (exept HTML if thats loosly considered a programming language) but all I needed to know to implement that was how to read in a file, split up the fields and use print to insert them into the page. Just a few lines of code, a simple format, no high level consepts to work out, but it gave instant gratification and feedback. That small script was what gave me the confidence and the drive to actualy sit down and start learning how to do more complex tasks. The thing is a kid isn't going to find anything interesting about printing out "Hello World!" a million times or even learning how to do more complex tasks at a command line (and as for basic that language should be allowed to rot and die off in a corner somewhere...we were all forced to learn it in school and we hated it so why punish our kids the same way). They need some kind of visual feedback and the ability to show off there hard work that can get them worked up and encurage them to keep at it. The combination of HTML and perl is a perfect starting point that provides a lot of growing room. -- "Never include a comment that will help someone else understand your code. If they understand it they don't need you" |
| Anonymous Coward (Score:1) by ante_up on Saturday May 27, @05:11AM EDT (#901) (User Info) |
| For my first draft I alternated each character with a different color and adjusted the font type and size, but when I tried to upload the post, Front Page said /. wasn't running the server extensions! LOL! You are too funny :-) I like the command line and perl very much, but for an 11 year old kid that has unfortunately fallen in love with windows, HTML with active perl might be the way to go. That's all I'm saying :p hehe |
| Re:Teach the kids to program in python! (Score:1, Interesting) by Anonymous Coward on Saturday May 27, @05:33AM EDT (#907) |
| Instead of PERL, teach them Python. Python is very _readable_, OOP from the ground up, and IMHO would be on of the best programming languages to learn _first_ if you are in the mentality of "high level first - low level next". I personally learned 80x86 assembler first, followed by C, C++, (etc.etc.etc) -- and finally, (finally!) python. Python is how a programming language "should be". And it is actually doing a very good job of finding more and more use in the 'real world'. Python _does_ have a good choice of interfaces with the Win32 API as well. |
| Try Python (Score:1) by rjones on Friday May 26, @03:23PM EDT (#9) (User Info) |
| I/m writing this on a Win 98 machine at Work, I have Python on here. You can try it. Download all you need from python.org. It's a pretty easy language to learn, and fairly powerful too. |
| Re:Try Python (Score:1) by Happy Monkey on Friday May 26, @04:05PM EDT (#241) (User Info) |
| Actually, at www.alice.org, there is an entry-level 3D graphics programming environment using Python as a back end. It is extremely easy to use, and also extremely powerful. It's worth checking out, even if you aren't a beginner. ___ Length 17, Width 3 |
| Re:Try Python (Score:1) by dgph on Friday May 26, @04:57PM EDT (#443) (User Info) |
Yes, I had a quick look at alice a few years ago. It's a lot of fun; and because it's graphical, it should appeal to kids. Forget Basic, kids should be learning OOP. Alice is good because it has a very approachable use of objects. Basically the idea is, you have graphical objects in a 3D world, and you can do things to the objects. Apart from that, Python is a very nice, low cruft language. |
| Programming in Python (Score:1) by smiller-time (smiller@nospam.com) on Saturday May 27, @12:45PM EDT (#969) (User Info) |
| I myself am a fourteen year old high school student. I am a recent Linux convert, and have searched for a powerful, flexible, simple programming language for years. I tried BASIC, hate it. Tried to learn C++, and will take it in a course this summer and next year. But what I really like is a book I hust got, entitled Programming In Python. It is really good and simple. Good luck. Smiller "If there's a will, There's a programming language" |
| Python - designed for teaching (Score:5, Insightful) by Insyte on Friday May 26, @03:24PM EDT (#10) (User Info) http://www.emergimail.com |
| Python, which also happens to be my personal favorite language, was designed from the ground up to be easy to learn but to teach proper programming fundamentals. In fact, the almighty GvR is actively developing an IDE designed for classroom use. http://www.python.org is the main home page, and http://www.python.org/cp4e/ is the home page for his educational projects. |
| Re: EDU-SIG created for this (Score:1) by kurowski (kurowski at marlboro dot edu) on Friday May 26, @03:44PM EDT (#142) (User Info) http://penguin.marlboro.edu/ |
| A special interest group for education has sprung out of the Computer Programming for Everybody initiative. Check the SIG section of the Python site for more details. Of particular interest should be the mailing list archives. They contain a lot of discussion on this very topic, along with tales of personal experience teaching kids how to program. Good luck! |
| Re:Python - designed for teaching (Score:1) by frlord on Friday May 26, @03:53PM EDT (#189) (User Info) |
| You stole my comment! A couple of other good reasons why Python is a great starter: - you can teach OO concepts, but you don't need to to use it - it's easier to teach than Perl, because there is a clear "right way" and "wrong way" - kidz can almost immediately do cool stuff with web pages (cgi). |
| Re:Python - designed for teaching (Score:1) by hecroce on Friday May 26, @04:09PM EDT (#264) (User Info) |
| I recommend the May issue of LinuxJournal. It brings a "Python Suplement" with it |
| Re: Python - designed for teaching (Score:1) by ajjfk on Friday May 26, @04:22PM EDT (#318) (User Info) |
| Scheme with DrScheme, a "smart programming" environment designed for teaching. See the TeachScheme project at http://www.cs.rice.edu/CS/PLT/Teaching/ Also worth a look: Squeak. See http://squeak.cs.uiuc.edu/ |
| Re:Python - designed for teaching (Score:2, Interesting) by tmick on Friday May 26, @04:24PM EDT (#327) (User Info) |
| And if you are going to start them on Windows then you should look at Mark Hammond's WIndows extensions. Particularly PythonWin, a nice IDE. You can compare it with IDLE (that is Guido van Rossum's crossplatform IDE). http://www.python.org/windows A good Python book for beginners is David Ascher and Mark Lutz's _Learning Python_ Trent |
| Re:Python - designed for teaching (Score:5, Interesting) by Rainy on Friday May 26, @04:26PM EDT (#337) (User Info) |
| I absolutely agree that python is perfect for studying programming - it's easy and at the same time it'll scale down to C. It has been said that it bridges the gap between RAD languages like perl and serious languages like C. One interesting project based on Python is 'computer programming for everybody' (cp4e). Parent article links to document with details. In short, the idea is to eliminate difference between a programmer and a user. Right now there's probably .1% users who participate in development and 99.9% users who don't and therefore have only indirect influence on development. If the language was easy enough for let's say 60% of users to be able to go and make minor changes/tweaks, that would be quite a revolutionary change. That's what cp4e is trying to accomplish, in a nutshell. Python highlights: * Free, OpenSource * Simpler and more elegant than Perl (subjectively) * Mature - started in '89 - before Linux. * Unix/Win/Mac/etc * Some big organizations like NASA and Yahoo use it. * Core philosophy is KISS (keep it simple stupid) vs Perl's 'There Is More Than One Way to Do It'. -- ATTENTION: do not read this sig. It doesn't say much. |
| Re:Python - designed for teaching (Score:1) by dwhall on Friday May 26, @05:31PM EDT (#535) (User Info) |
| In addition, the Python core lib includes a Turtle class that uses Tk. Once the kid graduates (get frustrated with) the turtle, take him/her straight into Tk's Canvas and then simply Tk. |
| Re:Python - designed for teaching (Score:1) by Khalid on Friday May 26, @07:19PM EDT (#683) (User Info) |
| >Right now there's probably .1% users who >participate in development and 99.9% users who >don't There is three kind of people, those who can count, and those who can't ;) |
| Re:Python - basically a poor man's Smalltalk (Score:1) by X on Friday May 26, @05:40PM EDT (#557) (User Info) http://www.xman.org/ |
| It's sad that people don't remember that Smalltalk has been specifically targetted since it's inception for teaching young kids. All the traits of Python that make it good for teaching come from Smalltalk. While Python is actively being developed for the classroom, Smalltalk has a proven track record with kids as young as kindergarten age. Smalltalk also has a more mature class library for kids to learn from and more mature tools. I posted a reference to Squeak Earlier but it's not as "sexy" in the hacker community as Python, so I'm not moderated up to 5. I could care less about the moderation points, but I REALLY hope people try introducing their kids to programming through Squeak. I know both languages and my SO teaches young children, and I can tell you Smalltalk is the better way to go. |
| Re:Python - basically a poor man's Smalltalk (Score:1) by RoninM (dkoepke-at-california.com) on Saturday May 27, @12:20AM EDT (#818) (User Info) |
| Well, you may think Smalltalk is being unfairly maligned or ignored in this discussion because it's not as "'sexy' in the hacker community," but I'm more inclined to place the blame on the large syntactic differences between C and Smalltalk. That is, Python translates well to C syntactically, whereas many of the Smalltalk constructs (such as ifTrue) are only tangently related with C. C/C++ are the dominating languages of our time, so the education naturally is focusing on simpler implementations of these languages. Python, then, is a natural choice. Most of its syntactic constructs are borrowed from C/C++. If you train them young in Python, then introduce OO in Python, by the time you get to C/C++ it's a simple matter of explaining the minor syntactic differences to get them up and running in C/C++. In other words, you can concentrate more on teaching them about the C/C++ libraries, templates, data structures, etc., by the time they're Sophomores in high school. That seems to me a better migration path than going from a language like Scheme or Smalltalk, which are syntactically at odds with the target languages. If a corporation is a personhood, is owning stock slavery? |
| Re:Python - basically a poor man's Smalltalk (Score:2) by X on Saturday May 27, @02:34AM EDT (#862) (User Info) http://www.xman.org/ |
| If you think syntax is the major thing you need to learn when picking up a new programming language, you are sadly mistaken. All the college when I was introduced to a new language I was given roughly a day to learn the syntactical structure. Scheme and Smalltalk are much more than syntactically different. They are different in terms of the fundamental underpinnings of the language (although less so with Smalltalk). Here's the huge syntactic difference you're refering to: aBoolean ifTrue: [ b = a; ]. vs. if (aBoolean) { b = a; } Are you telling me that the average human being can't learn the syntactic difference is a matter of seconds? Certainly, there are larger conceptual differences underneath the hood, but the syntax is not what's killing you. If you to concern yourself with the syntax, you should know that's Smalltalk's syntax was chosen to make it easily accessible for children, so to the extent that it's relevant it's BETTER suited to this particular task. The presumption that young children of today are going to be doing C/C++ programming tomorrow is also pretty misleading. Based on the history of language cycles kids of today are as likely to be using C/C++ when they get out in the work force as I am of using Fortran and Cobol today. |
| Re:Python - basically a poor man's Smalltalk (Score:1) by Lord of the Fries on Monday May 29, @02:26PM EDT (#1021) (User Info) |
| Yes, yes! While your at it, I think it's also important to stay in line with the current trend of sticking with a command line interpreter. And that file based program model that's eons old is also a good thing to stick with to. Much better than a Smalltalk system whose syntax actually forces them to think and learn objects. Much better than an interactive image based model like Squeak where the programmer is in amongst and part of the program. These things are bad! By all means, educate them so that they deal with all of the nuances that had to be bolted on to C++ and fighting with preprocessors, etc. Puh-Leaze! I always love to see the arguments that go along the lines "The mob is doing it, so it's good, right?" |
| Re:Python - designed for teaching (Score:3, Informative) by TimeHorse on Friday May 26, @05:49PM EDT (#575) (User Info) http://www.timehorse.com/ |
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. Time Lord, Dark Horse: The Techno Mage of Gallifrey |
| Re:Python - designed for teaching (Score:1) by Jaime Herazo B. on Friday May 26, @05:52PM EDT (#580) (User Info) |
| I suggest looking at the links on the EDU-SIG page at python.org. Look specially at the links "How to think like a computer scientist" (is at this address), and the one called "livewires" (at here). The last one includes a module that makes even turtle graphics!. "Now you can see that evil will triumph, because good is dumb!" Lord Helmet in Spaceballs |
| Re:Not Python, they need to learn babytalk first. (Score:1) by mazur (mazur@sara.nl) on Friday May 26, @07:39PM EDT (#698) (User Info) http://www.xs4all.nl/~mazur/ |
| Or at least, I did. Now I'm no Linus Thorvalds or Alan Cox, but I can program. And I like programming. Pity my work doesn't need it more than it does. As it went for me it was first: my dads HP-25, then, my own HP-67, then Sinclair Spetrum basic, an interpreter, which is very useful in telling you made a mistake right after you made it, and then, machine code (spectrum), which taught me to think about what I was working with, and what it could do. If I had kids, I'd first show them a basic interpreter, which gets some basics of programming done, and then, if they kept being eager, either machine code or assembly, so they would learn about the machine. The next step would be a higher language, if they'd still be interested. It's like: you can't run, if you never learned to walk. And, though I most certainly have forgotten everything I ever learned about hardware in my youth, I'm sure it must still have an influence on my terse, commented and (usually) almost faultless coding. But in the end, if they truly want, all paths lead to Rome. Stefan. |
| Re:Not Python, they need to learn babytalk first. (Score:3, Insightful) by Chalst (cas-at-achilles.bu.edu) on Friday May 26, @10:21PM EDT (#776) (User Info) http://achilles.bu.edu/cas |
I'd say the main features a first language must have are:
I think in all of these respects Python is as good as BASIC. Plus it has GUI IDE's which really help with polishing I/O, plus one is learning good programming habits from day one. It doesn't hurt to have the powerful features there: on the contrary it's nice when one wants them not to have to learn a new language. Coding machine language is nice, but it's not so easy now as it was |
| bring 'em up right...on Unix (Score:1) by Mindcrym on Friday May 26, @03:24PM EDT (#11) (User Info) |
| Raise your kids on Unix and C(++). Windows may not be around by the time they're old enough to hold jobs as programmers. Unix and C are going to long outlive any OS from Microsoft. |
| Re:bring 'em up right...on Unix (Score:1) by Oscar26 on Friday May 26, @03:47PM EDT (#155) (User Info) |
| Yes, you can bring them up on Unix, but Windows will be around for a long time. Face it, it's the future (with thousands of errors). People love GUI, even Linux has it's own. The average user does not want to learn C, they just want e-mail and web surfing. To back up this statement, look at statistics of graduating computer science majors. You will see since a peak in 87-88, it has steadily declined. Why do you think we make so much money? Major labor shortage. |
| Re:bring 'em up right...on Unix (Score:1) by Snaller on Friday May 26, @04:21PM EDT (#315) (User Info) |
| Unix and C are going to long outlive any OS from Microsoft. and play second fiddle to what ever replaces it :) -- The sequel to Babylon 5 - "Crusade" was slaughtered by 'suits' who didn't understand. Help save it |
| Re:bring 'em up right...on Unix (Score:1, Funny) by Anonymous Coward on Friday May 26, @05:07PM EDT (#471) |
| Give 'em wheat chaff and grits. And I do not mean grits that has been cooked. They'll either learn to love it or take up smoking pot or something else. Either way, you'll be able to keep up a surly gruff attitude that will keep the little pests from bothering you again about computers. |
| Re:bring 'em up right...on Unix (Score:1) by nightdog on Saturday May 27, @06:34AM EDT (#913) (User Info) |
| i started learning C when i was 12, mainly because of the portability and the fact i had almost on limitations, i wanted to do everything. i started opening a free shell account to start being used with unix. unix is the system with better programming resources...i think it would be good for your kids to learn about the opensource... and if they want to make the system do something the way they want, just let them hack the kernel :) well, i'm now 14 and i learned assembly and c++.. but i never used them (except asm for optimizing some codes for speed) and i'm still learning new things about C. i think C is "medium dificulty"(c'mon, it's not _that_ hard), but the fact is that you almost don't need to learn new languages, because you have a different machine or want to do something your language doesn't let you to. i used to know a very simple-english C tutorial, but that grasps almost all the subjects on the language. i still have it on my hard drive, when i remember the url, i'll post it |
| good question (Score:2) by rjamestaylor (rjtonlineAToneboxDOTcom) on Friday May 26, @03:24PM EDT (#12) (User Info) http://home.earthlink.net/~thetaylorfamily |
| How did you get started as a programmer? I liked my Apple II+ a lot, but got bored of AppleTrek and Lemonade Stand, so I started reading the Apple Basic book and loved it!. I made a Christmas card in Basic and ... that was it. I was hooked. Then, in High School, we had a SWTPc Uni-Flex multiuser computer donated to our school. It was great! Many of my best friends were made in the computer room before, during and after school. When I started thinking about a job, it was not hard to decide what path to take...
I lived through the IPO Rush of '99-- T-Shirt c.2034 |
| My start (Score:2) by EricWright (dont_mail@me.com) on Friday May 26, @03:30PM EDT (#52) (User Info) |
| Lessee... Around 8-10, it was BASIC on a TRS-80. Then, as a HS senior, a semester of C that was all but forgotten. Next, as a sophmore in college who was beginning an undergrad research project, it was FORTRAN 77 on VMS (later HP-UX). As a grad student, it was an eclectic mix of F77 and F90, with an intro to C++ thrown in. Then I picked up PERL so's I could do some personal web projects. Finally, when I got a job as a software engineering consultant, it was on to (PL/)SQL. I can't think of a one of them that I'd want to START on... Maybe FORTRAN. It's a very straight forward language for the most part. Eric Linux -- the Ultimate Windows Service Pack |
| Re:good question (Score:1) by umrgregg (n_m_g_@_u_m_r_._e_d_u) on Friday May 26, @04:08PM EDT (#259) (User Info) |
| I liked my Apple II+ a lot, but got bored of AppleTrek and Lemonade Stand
I still play Lemonade Stand on my Apple IIc! :) Now there's a program that will teach your kids big business. --- "An eye for an eye would make the world blind." --Ghandi "A tooth for a tooth would be great for Jello stock." --Nick G. |
| Re:good question (Score:1) by Anonymous_Hero on Friday May 26, @04:33PM EDT (#362) (User Info) |
| My first programming epiphany occurred when I found the CALL -151 command on the Apples that drops you into the assembler. That was around 6th grade -- my brain has never fully recovered. |
| Re:good question (Score:1) by Darkfell on Friday May 26, @04:49PM EDT (#421) (User Info) http://www.geocities.com/darkfell/ |
| BASIC on the TRS-80 at the age of 10. commodore BASIC and 6502 assembler around 11. mix in some apple BASIC between there and the end of highschool. C/C++/FORTRAN etc. in college. i think one of the most important things to teach kids who are just starting is the problem solving aspect of programming. how to break a problem down into simple to handle components, develop solutions to those componenets and then implement those solutions in the LanguageOfChoice(tm). regardless of wether or not they stick with it, the skills of problem solving will be useful every day of their lives. |
| Re:good question (Score:1) by Paranoid Diatribe (paranoid_diatribe@hushmail.com) on Friday May 26, @05:10PM EDT (#483) (User Info) |
| (Nostalgia mode on...) When I was in 4th or 5th grade, I woke up Christmas morning to find a TI-994/A, complete with TV, cassette deck, and joystick. On it was a cheesey demo of a bunch of colored bars cycling through the color pallete. I was hooked. For months, I would bang in BASIC programs and examples from the manual (a huge, ugly green, 3-ring binder), modifying the examples, and later "stealing" bits of code from small programs into larger ones that I dreamed up. I then got a large book of generic BASIC programs (to discover they were for 80-column screens, when I only had 40), which included classics like Eliza, and Hunt the Wumpus. I outgrew that pretty quickly, and I got the Extended BASIC cartridge. I could do sprites! (oooooh!) I eventually peaked out, though, as the interpretted environment got too slow for the "huge" programs I began writing. Had I known someone with a clue, I may have learned just how to make use of those mysterious PEAK and POKE commands, and I might have learned assembly at an early age. In retrospect, I suspect I might have become a true code hacker (in the awe-inspiring sense) had I had a mentor for emulate. :-( But I soon lost interest in my slow little TI. It wasn't until my senior year in high school, where I was forced to take a "keyboarding" course (PC's for Dummies), which I breezed through. Taking notice of my obvious non-interest in basic DOS and WordPerfect asignments, the instructor asked if I would like to jump into the next semester's AP Pascal class. I took him up on the challenge, and subsequently got my first glimpse of the interenet (this was 1989/90), as the course was taught via email correspondence from the U. of Michigan (I was stationed overseas in Germany on an Army base). It was that stupid high-school course that re-sparked my interest in computers. I ended up at Purdue, where I took some C and FORTRAN and learned to love the Unix command line. I failed out of numerous engineering courses due to many late nite "hacking" sessions, and I eventually found my calling as a unix admin (I never did graduate). I don't program for a living, but I like knowing how to bang out 1-page quickies to get grunt work done, be it in perl, c, awk, or whatever... Hmmm... What was the questions again??? |
| Lemonade Stand... (Score:1) by kill -9 $$ on Friday May 26, @06:21PM EDT (#621) (User Info) |
| Wholly <enter favorite four letter explitive> I completely forgot about that game. The best is when the thunderstorm came through and trashed your stand.... Incidentally, I followed a similar path into BASIC as well on my IIc. Wow, thanks for the memories.... |
| Re:good question (Score:1) by rjamestaylor (rjtonlineAToneboxDOTcom) on Friday May 26, @07:00PM EDT (#663) (User Info) http://home.earthlink.net/~thetaylorfamily |
| Here's some links to the things I mentioned:
SWTPcAnyway, that's how I got started programming. I credit my dad with not buying the Atari game machine and forcing us to use the (clunkier) computer. That computer became a learning tool after I was tired of the games. But the whole thing was fun -- making a machine do what you told it to do and finding out why it isn't doing what you want it to do. *Sigh* I still enjoy it.
I lived through the IPO Rush of '99-- T-Shirt c.2034 |
| Re:good question (Score:1) by Chris Hiner (chinerj@quark.vpplus.com) on Friday May 26, @10:06PM EDT (#768) (User Info) http://http://http://http://http://http://http://http://http://http://http://http://http:/ /http: |
| I got my start in programming with Lemonade Stand on a Commodore PET. (No, I don't remember the model) A little manual reading taught me LIST, and soon thereafter I discovered that people will pay a huge amount of money for Lemonade if it's 10000 degrees outside. |
| Hypercard (Score:2, Interesting) by zeck on Friday May 26, @03:24PM EDT (#13) (User Info) |
| If your kids have access to any sort of Macintosh, they should definitely start out using Hypercard. If not, visual basic is the next best thing. It will teach them basic programming concepts in an environment which is not too complex for them to understand or too boring for them to continue with. There will always be time for them to learn more complex, non-visual languages later, but start them off with something simple. After all, the goal here isn't for them to write some specific useful program, but just to learn basics and develop an interest which will serve them well later on. |
| Re:Hypercard (Score:1) by paulschreiber (slashdot@paulschreiber.com) on Friday May 26, @06:58PM EDT (#661) (User Info) http://paulschreiber.com/ |
| One thing that's nice about HyperCard is that it'll teach them OOP without them even knowing it. You get stuff like line 1 of field "foo" of card 6 ... which might translate to document.forms[6].foo[1].value in JavaScript :-) Paul |
| Re:Hypercard (Score:1) by Frymaster on Friday May 26, @09:55PM EDT (#764) (User Info) http://homepage.mac.com/ghorwood |
| Atually, a better choice than Hypercard would be (to my mind at least) AppleScript. Dig this: 1. It's syntax is simple It's a winner.... if you have a mac |
| Re:LlamaCard, Hypercard for Perl (Score:1) by zeck on Saturday May 27, @03:41AM EDT (#880) (User Info) |
| Why not Llamacard? Because it's not the same thing. Hypertalk is special and unique, and makes programming fun and relatively easy to understand, almost like speaking English. A Hypercard button script to go to the next card (Hypercard is designed like a Rolodex) could be written "Go to the next card". Or for the advanced user, "go next" would suffice. That's all you need. Yet at the same time that it provides that simplicity, it also provides enough power create somewhat useful (or at least fun) software, and expandability in the form of XCMDs. It teaches youngsters (or oldsters who never learned) basics of programming such as objects, variable scope, calling functions, and general logic in a way that's not too complex but easily translates to more utilitarian languages. There's really nothing like it. (Except Supercard.) |
| Why not Java? (Score:3, Interesting) by GrayMouser_the_MCSE on Friday May 26, @03:24PM EDT (#14) (User Info) |
| Since object oriented programming seems to be the major direction in programming and e-commerce, why not start them off with java? Its no more difficult than any other language to learn (remember, kids have nothing to unlearn), except for the grasping the object concept. And that may actually be easier for them to start with, since it models the real world. Its also reasonably platform independant (just stay away from j++ *cringes in terror*) Of course I use Microsoft. Setting up a stable unix network is no challenge ;p |
| Re:Why not Java? (Score:2, Informative) by Li Pipoca on Friday May 26, @03:33PM EDT (#72) (User Info) |
| Agreed. Educators are switching to Java left and right. Your kids can start out by doing cool GUI stuff and then moving on to cool server-side stuff and make their parent proud :-). It seems to be especially suitable for you, since in some ways you can think of Java as sugar-coated C. I recommend a book by Deitel & Deitel, which is great for beginning programmers. Can't remember the name tho. |
| Re:Why not Java? (Score:1) by Taco Prophet on Friday May 26, @03:58PM EDT (#209) (User Info) |
| True enough, educators are switching to Java all over the place, but I'm not sure that's really proof that you should start off with it. When I was in college, we cut our teeth on procedural languages, and picked up OO after we'd gotten the hang of basic programming. About the time I was graduating, they were swapping the intro programming courses to Java and OO in order to lower the number of students enrolling in the courses. Seems they were having a lot of trouble with indecisive people who thought computer science was easy enrolling in the courses. The more difficult early curriculum flushed a lot of the lollygaggers out of the pipes quick. The Deitel & Deitel book you mention, though, IS an excellent book for beginning programmers. It's called Java: How To Program if I remember correctly. I have a copy lying around somewhere from my beginner days if you'd like the ISBN. |
| Java tutorial for kids(WAS Re:Why not Java?) (Score:2, Informative) by Yosemite Sue (perlGrrl@yahoo.com) on Friday May 26, @03:39PM EDT (#115) (User Info) |
| A resource for those interested in introducing kids to programming - last year, we held a conference for Grade 9 girls, and the sessions I led made use of "The Virtual Family". This applet (and tutorial) was designed to interest junior high school kids in programming, and teach them some fundamental Java concepts while allowing them to mess around in the code, make changes and see the effects. Most of the kids enjoyed it, and several of the really keen ones requested copies for home. You can The Virtual Family applet from the SWIFT site. They will send you a cd containing the source code and the tutorial (which is the coolest part IMHO) if you sign a NDA. YS "... Everywhere I go, I see teachers driving Ferraris, research scientists drinking champagne ..." -- Krusty the Clown |
| Re:Why not Java? (Score:1) by GoodDoug on Friday May 26, @03:59PM EDT (#214) (User Info) http://www.cse.ucsc.edu/~whitmore/ |
| I agree that Java would be a good language to learn. It's a Turing complete language, and can be used to (somewhat) easily make GUIs. And with the Java2D API and simplified networking, making simple multiplayer games should be easy and fun. Start with a card game or any other turn based type of game and move on from there. And, given the ridiculous number of books on Java programming, it should be trivial to find one that your kids will read and can use. |
| Re:Why not Java? (Score:1) by Omicron (jdost223@spammers.should.die.uwsp.edu) on Friday May 26, @04:01PM EDT (#230) (User Info) |
| Java is pretty simple. A good book that I used was Java By Dissection, by Ira something or other. It was way too oversimplified in my opinion for a college level course (but hey, what did I expect from college anyway) but it gave great introductions on the basics of programming using Java as the tool to implement these basics. It explained iteration, flow control, arrays, objects, all that good stuff in pretty easy to understand terms. Heck, I've still got the book. If you want, send me an email and we can work something out where I could send it to you. I've probably got a couple of CD-R's w/ the Java SDK from sun too. Don't let them start coding with a development tool - it cheats them of knowledge. Java is a great way to learn event handlers and placing items in a GUI - building menus, selection boxes, all kinds of good stuff. Once they learn that and understand what's going on behind the scenes, then let them switch over to an IDE. I think this loop is infinite - gads. |
| Re:Why not Java? (Score:1) by roban (roban@sccs.swarthmore.edu) on Friday May 26, @04:15PM EDT (#291) (User Info) |
| I would have to agree. I did a small amount of Qbasic, but I got my real start in Java. I think beginers have no trouble grasping OO concepts, and indeed find them intuitive and usefull. |
| How about Visual Age for Java? (Score:1, Informative) by Anonymous Coward on Friday May 26, @05:19PM EDT (#509) |
| I agree with the posters who suggest Java as a first language. It's a good language, there are plenty of good books on it, (even some on writing games in Java, which might be ideal) and when the kid is ready for *nix his apps can go with him. Why not download the free version of Visual Age for Java from the IBM website. It's good for 500 classes, which should be plenty for beginner's programming projects, and if you like it you can get the Professional version for about $50. Its a really great IDE, and its available for Windows and Linux too. With this IDE Java is no more difficult than VB, and it's MUCH more powerful. |
| Re:How about Visual Age for Java? (Score:1) by Locutus on Friday May 26, @08:11PM EDT (#722) (User Info) |
| That is just what I said in another post. I found that learning a GUI system was soooo much work because you had to get thru all the muck just getting a GUI up to print 'hello world'. With Java and VisualAge a kid can drag and frop icons around to build the UI and then add the connections to make the UI come alive. Then they can learn how to biuld a object or add a method so they can turn around and connect it graphically to do something. I second the motion for VAJ. "Anyone who stands out in the middle of a road look like roadkill to me." --Linus |
| Re:Why not Java? (Score:1) by telekon (crumpet at bigfoot dot com) on Friday May 26, @05:51PM EDT (#578) (User Info) |
| Java's probably actually a great choice... If you're afraid that they'll lose interest with command-line gcc, then why not give them something where you have swing and the awt to handle the gui, doing nifty little animation effects is a breeze, and they can also put lots of stuff on the web to show their friends? Forte for Java CE is a nice, free IDE and its available for windoze, linux and solaris. Personally, i think python is easier, but if i was starting all over again right now, i kind of wish i had started with java. but that's just me. ---- It's more fun to compute. |
| Re:Why not Java? (Score:1) by |deity| on Friday May 26, @07:55PM EDT (#708) (User Info) |
| Java would be a good start. C/C++ style syntax, although not as complex for most tasks. Another good reason for using java is that they can create applets for web use. Lots of sample code and examples all over the internet as well. When I started, I started with basic, moved to qbasic, then C, assembly, pascal, and more recently java, C++, and I've just started with python. Qbasic is good for quick results. Maybe something even easier like javascript or one of the other scripting languages. |
| Re:Why not Java? (Score:1) by The Snowman on Saturday May 27, @12:47AM EDT (#829) (User Info) |
| I think the best thing to do is start of teaching programming concepts and not languages. For example, in college my first programming class used Java, but we didn't get to any syntax or code until the second half of the quarter. The first half our professor talked about OOP in very basic terms (this major was designed for people with no experience whatsoever), about objects as lego blocks (made me proud :-)) and cookie-cutters as classes, etc. Teaching children programming should take the same approach. Teach them concepts, talk about building a program as a bunch of objects working together and use an OOP language such as Java, *then* start talking syntax. No matter what, don't use a book. I've learned from books and I've learned from professors, and I can honestly say I much rather have the personal attention of a professor that can answer questions, explain things in different ways, etc. even if (in class at least) I had no control over the pace of instruction like you do in a book. Going one on one with someone is the best way to teach. Oh, be sure to teach good coding style from the start. In college I would get an answer wrong if a single code block didn't have a comment or my indentation was off or any other style problems. That taught me good coding style VERY quickly! |
| Re:Why Java? (Score:1) by AnotherCodePoet on Monday May 29, @12:01PM EDT (#1020) (User Info) |
| I favor recommending BASIC for kids for its immediacy and simplicity, however, Java would seem to be a more modern and 'internet ready' language. Has anyone out there known a child to learn programming in Java, if so at what age? I would guess that older kids\young teenagers would be able to grasp Java concepts but younger ones would find it tricky and 'boring'. |
| Web programming (Score:2, Insightful) by boysimple on Friday May 26, @03:24PM EDT (#15) (User Info) http://www.rackmounted.com |
| I'm sure you'll get a ton of posts on this, but start them learning Perl or PHP. Both are nice and platform independent so that when they want they can move to a non-MS system (or they can stay). and plus they can show their skillz off to their friends online. E West Philly born and raised |
| Re:Web programming (Score:1) by theFerret on Friday May 26, @03:37PM EDT (#94) (User Info) |
| I would agree. The first places that I refer people who are interested in web development is Perl and PHP. I've written tons of both of these languages and I think that they've got a very low barrier to entry and yet they're both incredibly powerful. These two are not limited to just web development, however. As we all know, Perl can do damn near anything and PHP can even be used to control the OS now whether it be Unix or Windoze (http://phpbuilder.com/columns/darrell20000319.php3). |
| Re:Web programming (Score:1) by killmenow on Friday May 26, @04:07PM EDT (#252) (User Info) |
| I agree. But, I would start by teaching them some basic HTML. The greatest advantage is they can post the results so their geek friends can check it out and see how cool they are. Then move into some combination of Perl, PHP, JavaScript, and Java for adding real use to those HTML pages they just created. Consequences, monsequences...as long as I'm rich. |
| Re:Web programming (HTML is a bad idea) (Score:1) by Antipop (antip0p@home.com) on Friday May 26, @06:27PM EDT (#629) (User Info) http://users.drak.net/antipop |
| No, no! Teaching HTML is not a good way to start. Yes it's simple and easy to learn and the results are instant and pretty, but do you actually learn much about programming? No! I've done HTML for about 3 years now and can say that HTML is great for what it does (mainly, format text) but the things learned in HTML cannot be applied to most other languages. None of it applies to C/C++, Perl, Python, or hell, even BASIC. Just because it's a quick and easy way into programming does not mean it's a good idea. -Antipop In a world without walls, who needs windows and gates? |
| Re:Web programming (Score:1) by mail11325 (mail11325REMOVETHIS@earthlink.net) on Friday May 26, @04:09PM EDT (#263) (User Info) http://home.earthlink.net/~mail11325/index.html |
| I made up a small web page in html. http://home.earthlink.net/~mail11325/simpsons.html I e-mailed the link to my son. He doesn't live with me. His mother and I are divorced. Kids like games and funny sounds. If he's interested, I'll work with him to change the page using his ideas. I only use GNU Emacs, ftp, and Netscape. It's not much, but there's a hugh learning gap just to post a simple webpage. |
| Re:Web programming (Score:1) by guisar on Friday May 26, @05:54PM EDT (#586) (User Info) http://www.penguinpowered.com/~seiferth |
| Absolutely- teach them PHP or even TCL/TK. Interpreted languages esp ones that let them put something on the Web (teach them HTML?) allow them to show off to their friends and what better motivation to continue programming can there be? My kids (5 & 8) love it. |
| Python! (Score:1) by vulgrin on Friday May 26, @03:24PM EDT (#16) (User Info) |
| Check out the latest Linux Journal, with its Python supplement. There's an article in there by Guido about using Python in education, and he's a HUGE supporter of it and is pushing it in my local area schools. (Washington DC Metro) I haven't done python yet myself, but just from that supplement, I'm ready to dive in. :) Vulgrin the MAD |
| Start small (Score:1) by BenLutgens (blutgens@usinternet_NOSPAM_.com) on Friday May 26, @03:24PM EDT (#18) (User Info) |
| Put them on a linux box. teach them the shell. Then teach them shell scripting. Show them emacs and vim. Get them to use it for daily activities. But I would say never start them with windows...YUCK! Use Debian, cause it's the right thing to do. |
| Lisp and/or Scheme! (Score:3, Insightful) by PHroD (flickinshit@yourhead) on Friday May 26, @03:25PM EDT (#19) (User Info) |
| i really think that Lisp, or better yet, Scheme, is the way to go for teaching kids to program. it teaches algorythms etc, rather than structure (which changes from language to language) check out www.schemers.org for more information ------------------------------------------- HACK THE PLANET OF THE APES! |
| Re:Lisp and/or Scheme! (Score:1) by VultureMN (jcaseATuswestDOTnet) on Friday May 26, @04:27PM EDT (#340) (User Info) |
| Anyone who starts their kids out programming on Lisp or Scheme should be arrested for child abuse. Yuck. You want it easy, and with instant gratification. You don't want them getting bored with the concept of programming 'cause they spend all their time counting freakin' parenthesis. BASIC would be a good start. Just to get them used to the concept of flow and variables but easy enough not to be frustrating. Then onto something procedural so they can understand how to divide a big task into smaller chunks. Then onto something OOPish after they're completely comfortable. ---- quark. I like to say "quark." |
| Re:Lisp and/or Scheme! (Score:1, Insightful) by PHroD (flickinshit@yourhead) on Friday May 26, @04:51PM EDT (#426) (User Info) |
| thats the secret of Lisp tho... you really dont have to worry about parenthesis... obeying good indentation rules and the whole program source code just FLOWS (more Lisp editors have parenthesis matching functions while you type (as most IDEs do for C, C++, etc)). Lisp programs can be so short that almost no typing gives instant gratification, but thats not what programming should be about. A properly taught Lisp course in a Jr High could get the students WAY ahead of the kids trying to obey syntax rules in C, Pascal or BASIC. They will have already learned the algorithms for, asy, parsing lists (or whatever) and can apply these lessons to their C programs, their C++, their Java, etc. Chances are they will come back to Lisp/Scheme often though because of its simplicity. ------------------------------------------- HACK THE PLANET OF THE APES! |
| Re:Lisp and/or Scheme! (Score:1) by atlasheavy on Friday May 26, @05:35PM EDT (#548) (User Info) |
| i really think that Lisp, or better yet, Scheme, is the way to go for teaching kids to program. it teaches algorythms etc, rather than structure (which changes from language to language) I just finished a scheme class at my college, and in my opinion scheme is simultaneously one of the worst and one of the best languages ever invented. Scheme users are forced to write really gorgeous code. If they don't, their programs are pretty much doomed to failure. Scheme is a lot less forgiving in this sense than C, for example. Scheme can be a _very_ difficult language to get into. However, if your kids can figure it out, they'll be really well of in terms of learning other languages. There're two books you'll want to check out if Scheme is something you want to pursue. The first is called Simply Scheme (I don't remember who wrote it), and the second is the standard Scheme book at every college and university in this country: Structure and Interpretation of Computer Programs by Abelson and Sussman. Good luck! |
| Re:Lisp and/or Scheme! (Score:1) by Romen (stobin@bates.edu) on Friday May 26, @10:09PM EDT (#771) (User Info) http://bur-jud-118-039.rh.uchicago.edu/ |
| My first real language was Scheme, the summer before high school. (I had written a little in Turbo Pascal previously). Scheme made me a programmer. Despite what some people have commented, the syntax is amazingly easy. You could write the scheme syntax in less than ten rules, and only about 3 are necessary to start programming. And as people have said, it causes you to write good code. But it's not that it forces you. Instead, once you start thinking in scheme, your code just flows properly. If you have the scheme mindset, your code will most likely be good, especially at the beginning stages. I know it made me a better programmer to learn it first. To learn it, just check out the Schemer's Guide (which is designed for classroom instruction). It's from schemers.org, which is mentioned above. Use Scheme!!! Sam TH AbiWord Developer |
| Don't underestimate them (Score:5, Insightful) by otterboy on Friday May 26, @03:25PM EDT (#21) (User Info) http://www.seaotter.com |
| Don't underestimate your kids by teaching them something that you consider sub-par. If they want to learn to program like their old man, there is nothing that should prevent them from programing in a shell account from their windows box. I think it's great that they want to learn, so give them the best tools you know. Believe me, they'll learn faster than you can teach them if they decided they like it! |
| I'll second that (Score:1) by Crag on Friday May 26, @03:31PM EDT (#61) (User Info) |
| I started with Turbo Pascal 3.0 on MS-DOS 2.2. I was 10. Don't assume they won't be interested. Admittedly, I didn't have a lot competing for my attention, but I spent a lot of time pouring over the manual figuring out how to draw lines, read the mouse, make linked lists, parse input, and of course draw fractals. Show them the command line, show them hello world, show them Debian, show them gnome, show them Python and C. If they don't like it, they'll tell you. |
| Re:Don't underestimate them (Score:1) by johnnyb (johnnyb@wolfram.com) on Friday May 26, @03:51PM EDT (#177) (User Info) http://members.wri.com/johnnyb/ |
| I agree. Kids adapt amazingly well. They will learn whatever you expect them to learn. I would put them on a Linux box. Don't start them out with "hello world", start them out programming GNOME applets. Give them a short applet, tell them how it works, how to compile and link it, and they will learn faster than you can imagine. I did basic when I was 6, and Apple assembly language when I was 10 or 12. If you have faith in them to learn it, there is no limit. Just make sure its interesting (that's why I suggest starting with GNOME). Also, be sure to do Linux, because then they have the whole system to mess with. "When Christ calls a man, he bids him come and die" -Dietrich Bonhoeffer |
| Kids & Programming (Score:1) by Roceal on Friday May 26, @04:12PM EDT (#275) (User Info) http://i.am/roceal |
| I taught myself Apple Basic on my Apple IIe when I was 7, and at the time I thought PRINT "Hello, " + $name was the coolest thing in the world, because it was like I was telling the computer what to do! How fun! Somebody I could finally boss around myself! ;) I'd say start with a simpler programming language, like Basic or Pascal, and see how they like it; then build up to C. Don't underestimate kids, but also, start out with something closer to what they already know (since the older and more rudimentary languages are much more like English than C/C++). But it also depends on how they learn, too. I liked Basic because it seemed like a variation of English, and I was good at English/writing/reading. Perhaps if your kids are more math-oriented, they'd like something more symbolic, like C or Java. -ARJ "Failure is not an option. It comes bundled with your Microsoft product." -Ferenc Mantfeld |
| Re:Kids & Programming (Score:1) by mikpos on Friday May 26, @04:50PM EDT (#425) (User Info) http://mikpos.dyndns.org |
| I disagree generally, though BASIC might not be a bad choice. Choosing a language on how English-like it is seems like a pretty horrible idea. If anything, it'll hinder them because they'll expect it to be like English in ways that it's not. C would be fine, except its pointers are a bit difficult to grasp. I would say either do one end or the other (high or low), such as Python or BASIC or Assembly. Anyone who says that it's hard to code in assembly language has obviously never used assembly language. It's much easier to follow and much easier to understand than, say, C or Pascal or something like that (IMO). Once you get into those "middle languages", like C or Pascal, you really have to know what's going on behind the scenes (e.g. what pointers are, how they're stored, how they're used, how the stack works) in order to do anything serious with it and make sense of it. Although, as in all forms of education, it depends on the kid. -- yay for 6 ish!! |
| Re:Don't underestimate them (Score:3, Insightful) by Golias on Friday May 26, @04:22PM EDT (#320) (User Info) |
| I totally agree. 10 or 11 is the perfect age for a motivated young geek to get started. This is not just a hunch, I have a degree in education, and know from studying childhood development models that the pre-teen and the "terrible twos" are the two periods of life when the human brain is growing the fastest... and they were too busy learning to talk to write code when they were toddlers. :) You do not want to waste these years. Give them the most powerful tools they can handle. Kids at this age don't just love the feeling of power, they crave it. They have no control over their voices, bodies, emotions, or sex drive... that's why kids often go for weird or elaborate haircuts at that age (one of the few things they can control is their hair). Put one of these kids in front of a flexible CLI and let them hack away at it! One of the best things my parents ever did for me was buy my my first computer (a Vic20) and insist that I figure it all out for myself. With all the web information out there these days, your kid might even know more than you in a couple years. :) I never said I was afraid of dying. |
| Re:Don't underestimate them (Score:3, Interesting) by drix on Friday May 26, @07:22PM EDT (#687) (User Info) |
| Oh, I heartily disagree. There are certain fundamentals you need to get down before you start toying with the "most powerful" tool available. You don't throw someone into the middle of the Atlantic Ocean to teach them how to swim. People need to be learning procedural programming before they jump into the quagmire that is OOP. I saw a lot of people on this thread telling the guy to start them right out with object oriented fundamentals, Python, Java, C++, etc. This is just totally wrong. I know this because I tried; I have been learning C++ from age ten until present (17) and I still don't have a clue what I'm doing half the time. It's not like I had bad teachers or anything; there are just a few things that kids are too young to get. I don't think I've ever met an 11-year old that could fully grok on the concepts of operator overloading, data hiding, and (especially) inheritance and polymorphism. I'm sure that there are a few that do, but these are /not/ the things to be learning as a first foray into programming. Give the kids BASIC or Logo and allow them to learn at their own pace. Hell - give them Algebra. I can't think of a more valuable skill to know that understanding the significace of variables, functions, return values, and the like. -- Slade. |
| Re:Don't underestimate them (Score:1) by Nater (inkblot at geocities dot com) on Friday May 26, @09:47PM EDT (#759) (User Info) http://movealong.dhs.org/~inkblot/index.php3 |
| If C++ is all you've used as far as OOP goes then there's a whole world you haven't explored. Most of the problems with C++ derive from the fact that it is a superset of a procedural language with wild features like templates and such that just turn into a mess if you decide to use them. A language like Java or Python that does OOP nicely is fine to start with. Procedural programming is useful, but not for a lot of things one would expect a kid would want to do (think lots of visuals in a nice looking GUI). "You laugh like a donkey. I like it." |
| Re:Don't underestimate them (Score:2, Interesting) by WillWare on Friday May 26, @10:24PM EDT (#781) (User Info) http://world.std.com/~wware/ |
I saw a lot of people on this thread telling the guy to start them right out with object oriented fundamentals... I don't think I've ever met an 11-year old that could fully grok on the concepts of operator overloading, data hiding, and (especially) inheritance and polymorphism.I think your own bad experiences may have resulted from the kinds of teachers you had. I'm an old fart compared to you, and we old farts had OOP foisted upon us as one in a series of "programming methodologies", each of which was supposed to save the day and end the "Software Crisis". Because it was introduced to me late in my CS education (long after I left college), I was very slow to internalize the ideas. If somebody had taught me inheritance and polymorphism when my brain was still supple and non-judgemental, and had shown me better examples, I might have been a lot more accepting of it. I bet your teachers might have had experiences a lot like mine. Maybe we need to wait another generation before we have really good OOP teachers. Kids have enormous mental flexibility, and if you can hold their interest, they can learn an awful lot. Having hacked Python for a few years, I now find OOP totally natural, and I'm not unusually intelligent. It would astound me if it proved to be really impossible for kids to get this stuff. |
| Do take it easy! (was:Re:Don't underestimate them) (Score:1) by earthy on Monday May 29, @06:42AM EDT (#1017) (User Info) |
| As not such an old fart that has been "programming" since he was nine, I must say that at the age of 15, when I tried to learn OOP, I had much difficulty grasping the concepts. This may have had to do with the very limited set of articles the library had on it, but I really do think I wasn't able to comprehend it at that time. On a side note, a lot of the concepts in programming are inherently hard. The concept of a variable is definitely not trivial. In the past year I've been teaching a group of 6 12 and 13 year olds to program. We started out teaching them recursive refinement (which is really easy and they really grasped quite well). Ofcourse, next you have to introduce variables. This is HARD. It took us wel over a month to get the kids to internalize the concept of a variable. And even now they occasionaly miswrite assignments, with the destination and source of the assignment swapped. For those of you that might think teaching OO before teaching what a variable is: DON'T! We've tried that at the university with second year chemistry students. They really had trouble following the course, until we reclarified what a variable is. |
| Re:Don't underestimate them (Score:1) by MostlyHarmless (jlee@diespamdie.sidgames.com) on Sunday May 28, @08:36AM EDT (#1002) (User Info) http://www.sidgames.com/ |
| First, to disagree with you: Sorry. I'm 14. And I do C++ and Python (among other languages), including inheritance, polymorphism, operator overloading (albeit not in python), and dada hiding. I learned C when I was about 12, moving on to C++ a year or so later. But now, to agree: I started wtih BASIC in fourth grade and didn't move on to C until two years later, in sixth grade. Once one is trying to read the mouse port or get in-line assembler to work from BASIC, it's time to move on. I probably should have done C a year earlier; however, BASIC _was_ a great starting point. My point being, start with "Hello World" on BASIC or Python, but move them on to C/C++ or the OOP stuff in Python as soon as they're ready. Don't waste time fooling around with BASIC past its useful lifetime, which could be anywhere from 2 to 6 months after you start learning it. nuclear cia fbi spy password code encrypt president bomb Echelon must die. |
| Re:Don't underestimate them (Score:1) by micahjd (spam_tastes_bad-micah@homesoftware.com) on Friday May 26, @08:10PM EDT (#720) (User Info) http://www.homesoftware.com |
| Yes, that sounds about right. I was doing little graphics and sound programs in True BASIC in DOS at the age of 5 or so. At that age, graphics keeps a person's attention pretty well- my dad basically just handed me the manual for BASIC and I figured it out myself. I never really understood the 'essence of programming' (data structures and stuff) until 10 or so. I only wish I didn't learn to program on DOS. Of course this transitioned into a Wintel environment :-( If I had started programming on a unix-ish environment or with a CLI instead of an IDE maybe I wouldn't have had to do so much catch-up work in the last few years. Rest assured though, now that I know the power of a good CLI I wouldn't touch Windoze or DOS for anything worth doing. Your average IDE in windows just isn't as flexible as emacs and a makefile. |
| Re:Don't underestimate them (Score:2, Insightful) by geoffeg (geoffeg@nispam.sloth.org) on Friday May 26, @04:26PM EDT (#335) (User Info) |
| I think this is a little harsh, like throwing a kid into the river to learn to swim. Although they may learn to swim, their attitude towards you and swimming may not be as desirable. I think the post about mindstorms is a good idea. Most children have a short attention span, C, C++, Java, etc is not something you can correctly grasp and understand in half an hour while the programming interface that comes on the Mindstorm CD is. Once they get bored of Mindstorms (a few days) you can talk to them and get a feeling for where they want to go from there. Most hardcore or mediocre programmers are going to say "Eww, the mindstorms graphical interface is horrid." while most programmers don't seem to want to admit or remember that they didnt know how to program in a split second. I started off using BASIC when I was 4 and moved onto Hypercard on the Mac when I was 6 or so followed by perl and C then Java. I imagine if my dad had thrown a C book at me I probably would have handed it back to him and loaded lunar lander back up.. Also, don't push too hard, if they don't want to be programmers, let that go. If you push too hard they may retaliate and view programming as something they never want to try again... Good Luck, Geoff |
| Re:Don't underestimate them (Score:1) by pjpII on Friday May 26, @05:29PM EDT (#532) (User Info) http://geocities.com/pjpII_2000 |
| I have always had a love of programming(I'm 16 now)- when I was nine, I tried to learn basic, but all I could read were awful books that had dozens of sample programs and little structural theory. When I turned 11 or 12(don't remember), my mom took me to the store to buy me a compiler. Arbitrarily, I chose Borland Turbo C++ 3.1(ya, pretty dumb to be arbitrary with the kind of money that costs, but I didn't really mind). I spent weeks trying to learn it, and even tried to program a quick program. Everything I'd learned soley from the manuals- not a single real beginners book. I was discouraged by the weird ; syntax, and by mispelling my variable names. However, 2 years later, I set back to working on learning it, and voila! I finally had figured it out. However, I think that if I'd been given instruction at age 11, I would have learned it then. No one I knew was a programmer, and I didn't have any internet access, so I didn't have any way to answer my questions. I think in the end, that if the child is willing(as you said, if they don't want to be programmers, don't force them) then they will be able to learn just about anything they like. If I'd had formal instruction of some kind in C, regardless of applications, I would have learned it instantly(or nearly). Another thing- as much fun as it is to program, kids need structure(hell, many adults do as well). Be sure to give them assignments of some sort if they don't have any ideas for what to program, and if they do have an idea, help them out with it as much as you can. Repititio est mater studiorum. "Force is but might," the teacher said -- "That definition's just." The boy said naught but through instead, Remembering his pounded head: "Force is not mig |
| Re:Don't underestimate them (Score:2) by divec on Friday May 26, @04:58PM EDT (#447) (User Info) http://3334130452/ |
Don't underestimate your kids by teaching them something that you consider sub-par. I quite agree. But graphics feels more cool when you're 10 or 11 so be sure to get them doing something interesting like that. (Mandelbrot set? Just tell them the rules they don't have to understand the maths). Also, make sure there's plenty of example code around for them. I got really frustrated when I was 10 cos I couldn't get scanf working properly. Some example code would've been great. What I would've done for some free software code like there is now! Gah, kids have it easy these days ... :-) [Sig obliterated ;-) ] |
| Don't overestimate them, either.... (Score:2) by Super_Frosty (slashdot@^H^H^Hblah^teambakken.com) on Friday May 26, @04:59PM EDT (#449) (User Info) http://63.225.139.3 |
| I think that it's a bad idea to overestimate them, too. Give a kid a linux box that he can't understand, and he might just become frustrated and use NT. That would be very sad. SO, my advice is to challenge children in moderation. Just my two cents. No comment at this time |
| Re:Don't underestimate them (Score:2) by TheMeld (msg2@NOSPAM.po.cwru.edu) on Friday May 26, @05:04PM EDT (#466) (User Info) http://cheetah.cwru.edu (N.A. over summer) |
| Absolutely. I started to learn to program in logo on an apple 2e when I was in 4th grade (10 years old). Logo was the only language we had. By the end of 5th grade I was already banging my head against the limits of the language and the computers. Go ahead and start them out with C or Pascal. Visual Basic, for all its simplicity, has some severe limitations. C, for all its supposed complexity, has a very concrete and clear, if abbreviated, syntax. You don't have to, and absolutely shouldn't, try and teach them all about pointers until they have learned some about programming. By that I mean how to think through the algorithm and structure the program so that it works and is understandable. I think that was the most important thing I learned from the logo teacher I had in middle school. She knew how to teach the programming, completely independent of the syntax. If you're kids are itching to get into programming, then they're probably smart enough to learn it. One other thing to remember: It was years (YEARS!) before I ever wrote a useful program. Don't worry about thinking up useful programs at first. Think up programs that will teach the programmer how to program better! -Matt remove nospam for e-mail |
| Re:Don't underestimate them (Score:2) by Mr. Penguin (drj@trivergent.net) on Friday May 26, @05:07PM EDT (#474) (User Info) http://mrpenguin.org |
I agree, but programming from a shell account has it's downfalls. One of the things that would have to draw kids to programs is being able to see their output. This isn't as easy in Windows as it is in Linux. I think the best thing would be to get them doing some GTK+ stuff, some QT stuff, maybe a little Motif stuff, that way, they can see what's going on. Making it more visual is only a bonus. I started doing BASIC when I was 5, and that was cool. But when our instructor showed us how to draw things on the screen based on our input, that's when it really blew my mind! That was what made me want to program. Brad Johnson --We are the Music Makers, and we are the Dreamers of Dreams --Arthur William Edgar O'Shaughnessy |
| Re:Don't underestimate them (Score:1) by Bootsy on Friday May 26, @05:41PM EDT (#558) (User Info) |
| i started with LOGO(?) drawing program, then BASIC, then PASCAL, and when I finally got to C, I wished the education system hadn't wasted so much of my time! I suggest: Python, and C, in that order. I wish I had got my feet wet in OO sooner as well... |
| Re:Don't underestimate them (Score:1) by Antipop (antip0p@home.com) on Friday May 26, @06:47PM EDT (#653) (User Info) http://users.drak.net/antipop |
| I agree. Limiting your kids with a simple language is killing it before it ever got started. Show them C/C++ and get them started with simple programs. Then show them how to make GTK+/QT to keep it interesting. Making cool-looking programs is important to keep them interested. "Hello world!" isn't very impressive, but a GTK+ one that does the same thing is more so. -Antipop In a world without walls, who needs windows and gates? |
| games games games (Score:2, Interesting) by EnderWiggnz (hettar@SPAMORAMA.nni.com) on Friday May 26, @03:25PM EDT (#22) (User Info) |
| get them hooked on computer games... all of them, but especially the classic brain-bending ones... Like Zork or Enchanter or any Infocom games, Ultima III,IV, etc. These games challenge young minds and make them want to further explore computers... Get them hooked on the games, and they will want to learn how to code. Alternatively, get them hooked on music, there is a strong correlation between good coders and music. Slashdot at whistle3? You betcha... ThuddaThuddaThudda Thud |
| Re:games games games (Score:1) by ^_^x on Friday May 26, @03:38PM EDT (#105) (User Info) |
| Wow... have you read any studies on that? I used to play the old Space Quest games (like 1-3) when I was little. The first thing I learned on computers was moving around in DOS so I could get to the games. (Our XT was blessed with a 40MB HD, so we could actually fit quite a few games and stuff on there.) The comment about music is really interesting though... Right now I'm hooked on the Japanese "Beatmania" game series. (Beatmania, Pop'n Music, DDR, BM98 on the PC, etc etc...) and I wonder if there's a kind of proven corelation. (I've also found that after all that coding I did in BASIC in my early days, learning Japanese was very easy... of course you can only learn so much in 4 years...) |
| games & programming (Score:1) by EnderWiggnz (hettar@SPAMORAMA.nni.com) on Friday May 26, @03:42PM EDT (#129) (User Info) |
| well ... I havent read any studies on it, but if you can get someone to spend time acquiring a skill in a way that they enjoy and challenges them, it should make sense that they will eventually learn how to do stuff on their own. The classic games were an excercise in exploring the game creator's minds, and by doign that, you learned how to think like he did, liek a programmer... Scary, aint it? Slashdot at whistle3? You betcha... ThuddaThuddaThudda Thud |
| Oh and about the music bit... (Score:1) by EnderWiggnz (hettar@SPAMORAMA.nni.com) on Friday May 26, @03:47PM EDT (#159) (User Info) |
| I have read a study correlating the two, but cant remember it at the time... If you start working on electronic music real heavy, it resembles a very deep hack mode... TIme kindof warps, and all of a sudden it 4 in the morning, and you have to be at work in 4 hours :-) The connection has to do with the mathematics behind both Slashdot at whistle3? You betcha... ThuddaThuddaThudda Thud |
| Re:games games games (Score:2) by Analog (analog@webwidgets.net) on Friday May 26, @03:59PM EDT (#216) (User Info) |
| The connection is mathematics. Most people don't realize it, but music is based entirely on mathematics (Mozart was a math prodigy as well ;). My kids currently attend a school that has a mandatory music program because of studies that show kids with music education learn math more quickly and easily. Since programming is also largely a mathematical pursuit, it should come as no surprise that the two are related. Most of the engineers I know are also musicians... |
| Re:games games games (Score:1) by Antipop (antip0p@home.com) on Friday May 26, @06:58PM EDT (#660) (User Info) http://users.drak.net/antipop |
| Most of the engineers I know are also musicians... The connection between music and math is very, very close. Music, like you said, is based entirely on math. Every programmer that I hang out with at my school is a musician that plays at least one instrument, most of them two or three. I personally play both the guitar and clarinet. -Antipop In a world without walls, who needs windows and gates? |
| Re:games games games (Score:1) by SlightlyMadman (sligShtPlyAmaMdman@ySahPAoo.cMom) on Friday May 26, @03:39PM EDT (#114) (User Info) |
| You know, this actually reminds me about one of my major inspirations into the programming world, ZZT. I checked recently, and saw that some people coded an updated game that's similar (although the name escapes me). Are there any projects going on now that take this approach to a more modern gaming environment, though? Maybe something where you could create a fully functional and graphical game with some simple object-oriented scripting? It seems like this would be a great way to teach kids code (I dont think they'd get near ZZT's ASCII graphics). |
| Re:games games games (Score:1) by richieb (richieb@netlabs.net) on Friday May 26, @03:42PM EDT (#130) (User Info) http://www.netlabs.net/~richieb |
| ZZT Next generation is called MegaZeux. It's still ASCII graphics, but you'd be amazed what some of the MegaZeux programmers can come up with in this restricted environment. ...richie |
| Re:games games games (Score:1) by Danny Ra (fomdox@hayoo.com) on Friday May 26, @04:37PM EDT (#380) (User Info) http://homepage.dtn.ntl.com/dominic.fox/ |
Better still: get them hooked on text-based adventure games, and get them a copy of the INFORM compiler used by Infocom. Why? Because the code you write with it is object-orientated, compiled, and runs on a virtual machine (the "Z"-machine). This introduces some interesting ideas about compilation, emulation and so on - things which are fascinating, and also very tough from a beginner's viewpoint, so you can go on thinking about them for a long, long time... Also because writing INFORM code means - usually - setting puzzles for other people to solve, which introduces a social element into the coding process from day 1: you have to think about how an "end-user" is going to interact with what you write, and you will be dealing with design issues at several different levels. When they're not coding, they can be designing level maps, plotting adventures, finding ways to diagram puzzles and getting hopelessly lost in some of the most literate and witty adventure games ever written - games like CHRISTMINSTER and CURSES. The programming language, the compiler, the "Z"-machine and the rudiments of game design are all generously documented, and it's all free! Here's a URL for starters: The Inform 6 Homepage, maintained by Graham Nelson. Good luck! "Knowledge is the continuation of ignorance by other means" |
| Re:games games games (Score:1) by nutsy (mattm@infinetSPAMKILLER.com) on Friday May 26, @07:46PM EDT (#703) (User Info) |
<nitpick> Rather, the Infocom implementors used an internal compiler (which, as far as I know, has been lost to the four winds) which generated bytecode for a virtual machine (the Z-Machine, it's called) which every Infocom interpreter 'emulates'. Inform is an independently-developed compiler which also generates Z-Machine bytecode. |
| No, no - The trick is.. (Score:1) by Medieval (acow@REMOVE_ME_TO_MAIL.home.com) on Friday May 26, @05:15PM EDT (#498) (User Info) |
| The trick is to set up a Windows machine and give them some games, then let them install the games themselves and spend 6 hours on the phone with tech support. The ordeal will either drive them away from computers forever, or force them to explore the computer on their own, since tech support isn't often helpful. =p |
| Re:games games games (Score:1) by NI3 on Friday May 26, @06:20PM EDT (#619) (User Info) |
| Well, it's my nephew's birthday next week, and I've got a bunch of games and a copy of the 'Giant Black Book of Computer Viruses' for him. If that doesn't do it... |
| My vote - Perk/Tk (Score:1) by Mad Ivan (MadIvan@"america off line".com) on Friday May 26, @03:26PM EDT (#23) (User Info) |
| I would recommend Perl/Tk. Portable (Win9x, W2K, *nix, at least). Graphical. Gives a (fairly gentle) introduction to object-oriented programming. May even have some utility in the "real" world. ;-) "You may be right, I may be crazy, But it just may be a lunatic you're looking for" - Billy Joel |
| Java with a good class library (Score:1) by SlightlyMadman (sligShtPlyAmaMdman@ySahPAoo.cMom) on Friday May 26, @03:26PM EDT (#24) (User Info) |
| Java can be an incredibly easy language to learn and work with, if you have a sufficciently functional and well-designed class library. Write some classes that take care of everything they'll need to do, quickly and easily, and focus on teaching them the basics of logic and OOP. That way, they wont have to unlearn all the nasty coding techniques they picked up from BASIC down the line (like I did). AND, you get the advantage of platform independence. They can learn in in win32, but still be able to use it in *nix. |
| Re:Java with a good class library (Score:1) by Locutus on Friday May 26, @08:06PM EDT (#715) (User Info) |
| They could use VisualAge for Java and point and click their way thru application building til their hearts content. You could build little beans for them to get started with and then teach them how to create a class with one member to hold that state of a slider and is then used to set the state of another slider or change a color. Very visual all the way to connecting object into applications. The great part about VAJ is that they don't need to learn the GUI initially but can learn how objects can store state and the cause/effect of todays event driven computer interfaces. Like someone else stated, a application builder will get them going right off the bat with just alittle handholding by dad. You can even download it for free for OS/2, Windows and Linux systems. "Anyone who stands out in the middle of a road look like roadkill to me." --Linus |
| I always liked LOGO and Pascal (Score:2) by Mark F. Komarinski (markkATcgipcDOTcom) on Friday May 26, @03:26PM EDT (#25) (User Info) http://www.cgipc.com/ |
| But then again, all I had was an Apple II (not even the +). Delphi is close enough to Pascal that it might be good - structered language, some OOP. BASIC gets you into that GOTO thing, which is really poor programming. Better to start kids off with a good simple, yet structured language. |
| Re:I always liked LOGO and Pascal (Score:2, Insightful) by Kinthelt on Friday May 26, @03:54PM EDT (#192) (User Info) http://www.undergrad.math.uwaterloo.ca/~db2nesbi |
| I would have been about 6 or 7 when I got on my TRS-80 (Model I) and entered: 10 PRINT "HI THERE" 20 GOTO 10 The is apparent in everybody's first BASIC program. But the problem is only if it is overused. There is absolutely nothing wrong with GOTOs if used responsibly (i.e. the code is still readable). I think for infinite loops, a GOTO is more than justified. And to think that after using GOTOs for loop control, that a kid won't be able to take the plunge into structured programming is just bunk. I had my TRS-80 until I was 16 and learned Pascal in high school. I must say that my early BASIC programming experience was a *huge* advantage over the other students, who largely had no previous exposure to programming. The gap between BASIC and a structured language like Pascal was a very small one. If you want someone to learn a language fast, and keep them entertained for a while, give them an old TRS-80, or Apple II, or C-64 along with a game programming book from the mid-80s. Once the need for more power comes around, it's time to haul out Pascal for some structured lessons. Finally, once the need for "real programming" rears its (ugly) head, it's time for Java's introduction. "Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs) |
| Re:I always liked LOGO and Pascal (Score:1) by Canar (canar AT hehe DOT com) on Friday May 26, @08:33PM EDT (#734) (User Info) |
| I've always been mystified as to why all you "experienced" hackers shun GOTO so much. Sure, it can make for very confusing code, and doesn't teach "proper" loop coding, but in actuality it's what the computers *doing*. Ever done any ASM? Remember JMP? Where would computers be without JMP? Sure, there's LOOP, but that's a CISC novelty. (Yeah, I know. There is no CISC. But the mentality is what I'm driving at.) Let 'em use GOTO. Let them puzzle out the little problems with their _present_ knowledge, without browsing through the help files. A very close friend of mine and I are both in a programming course at school. I took it for something fun to do rather than a spare, he picked it for science credits. Now, get me straight, this is a group of _quite_ intelligent people, (least of all the teacher. Blech.) but learning VB is absolutely destroying any talent they might be able to have. Having to worry about different events and where to place code is the last thing you want kids to worry about. I'm not a jack of all languages, but QBASIC is where I'd start someone. It is, IMHO, at heart BASIC*English, and allows loop structure, line numbers and no line numbers, an interpretive structure, etc. I know, it's a product of the Shaft, but it's damn easy. OOP, "form" (Oh how I hate it), data structures, proceduralization, modularity... Let them start simple. If they start complex, they'll get nowhere, only frustrated. I know. Let them run up against the _limitations_ of the language before showing them a new one. Make them feel free to use the language they want to use. They'll go from BASIC, to probably pascal, then on to Java and C, and without that difficult of a time! |
| Re:I always liked LOGO and Pascal (Score:1) by escalation746 on Monday May 29, @10:10AM EDT (#1019) (User Info) http://www.execulink.com/~robin/ |
I would have been about 6 or 7 when I got on my TRS-80 (Model I) and entered: I would prefer the young ones to be typing: while 1: ----- A rich couple found their ideal pet in a dog that makes e-mail programs. |
| Re:I always liked LOGO and Pascal (Score:1) by eel (eel@theeel.com) on Friday May 26, @03:58PM EDT (#208) (User Info) http://www.theeel.com |
| Boxer is the new incarnation of LOGO. It is OO. Scary good and even easyer to learn than LOGO. |
| Re:I always liked LOGO and Pascal (Score:1) by Duane Dibbley (duane_dibbley&at;catlover˙com) on Friday May 26, @05:22PM EDT (#518) (User Info) http://www.reddwarf.co.uk/ |
| Delphi is close enough to Pascal that it might be good - structered language, some OOP. Actually, Delphi probably isn't a good first language for precicely the opposite reason that BASIC sucks -- Delphi is too object oriented for beginners to understand basic program flow. My vote is for Turbo Pascal 7.0. That is the absolute best teaching language there is, and IIRC, it was originally designed as an instructional language -- teach kids about structured programming, functions, OOP, memory management, disk access, etc. Go with TP 7.0. It's free, too. You should be able to find it and other older, free programming stuff here (apologies - couldn't verify the link because their DNS appears to be acting up). --- "Duane Dibbley?" -- Duane Dibbley |
| BASIC (Score:1) by CaptSwifty (swifty(at)swifty(dot)org) on Friday May 26, @03:26PM EDT (#26) (User Info) http://www.swifty.org |
| I learned to program with BASIC, specifically, QBASIC on an MS-DOS machine. I don't think that Windows 98 comes with QBASIC anymore, at least mine didn't. It's a relativly easy language to learn, and once they become proficent, they'll want to be able to do more things, and that will lead them to higher level languages. |
| Re:BASIC (Score:1) by Allicorn on Friday May 26, @03:56PM EDT (#201) (User Info) |
| Qbasic isn't bundled anymore, but a quick FTP search will soon find you a copy of QBasic 4.5 and... *shock*... it has a compiler ;) |
| Re:BASIC (Score:1) by Clived on Friday May 26, @04:34PM EDT (#367) (User Info) http://www.geocities.com/Broadway/2207 |
| I think Basic is a good choice. I went from BasicA to commercial Business Basic real fast in a neccessity situation. BasicA was a good place to pick up the concepts, no matter how simple. My two bits :) Clive DaSilva Email: clived@techie.com Slackware 3.6 Kernel 2.2.15 |
| Re:BASIC (Score:1) by ArcticChicken on Friday May 26, @04:35PM EDT (#373) (User Info) |
| Both Windows 95 and 98 do come with QBasic (not that the majority of people here would probably care). I guess many people never bother looking around their install CD: On your Win 95 CD, QBasic is located in: \other\oldmsdos On your Win 98 CD, QBasic is located in: \tools\oldmsdos I still find QBasic useful if I have to do some quick processing with a text file, or need a quick method of gaining some control over a serial port. |
| Liberty BASIC as a QBASIC alternative - Re:BASIC (Score:1) by Liberty BASIC Guru on Friday May 26, @06:55PM EDT (#658) (User Info) |
| Windows 95/98 does come with QBASIC, but you have to dig for it on the CD. QBASIC is a great way to start. On the other hand, QBASIC won't let you take advantage of Windows. Consider Liberty BASIC, which is designed for Windows and is meant as a language for learning. It even has support for LOGO-like turtle graphics, and there is a tremendous online community built up around it. Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
| Better than QB/VB (Score:1) by Dwonis (dlitz[IBoycottSpam]@cheerful[spamsucks].com) on Friday May 26, @09:23PM EDT (#753) (User Info) http://dlitz.homes.adopedia.com/ |
| AmigaBASIC. Get an old Amiga, if you can, and get them using AmigaBASIC. It's incredibly simple (no SCREEN statement needed to do graphics), but it's also incredibly powerful, with full access to OS system calls, sound, graphics, windowing, etc., and it's not anywhere near as brain-damaged as the was VB does it. You could actually program the AmigaBASIC interpreter within itself. If you're not game for that, then maybe try MC68000 assembly language (Mac, Amiga, Atari, etc.) or something. It'll let you understand the deeper workings of a computer, without dealing with the quirks of the Intel junk. And then there's the Commodore 64-type stuff... -------- "I already have all the latest software." -- Laura Winslow, "Family Matters" |
| Microsoft was cool once... (Score:1) by ^_^x on Friday May 26, @03:26PM EDT (#27) (User Info) |
| I remember I got started with a copy of MS QBASIC. It was awesome, forgiving of little mistakes, and the online help system was the best I've seen for any programming interface yet. I think I was about in grade 4, but I took right to it and made all sorts of little beginner apps. (Screensavers, practical jokes, joystick scribbling programs...) It helped out immensely when I took the C++ programming course in grade 12 because I already had the theory down for writing a program, and the right train of thought for laying out the code. I only lost marks for things like not writing out a planning sheet, or failing to document my code in an easy to follow manner. I'd say start with some kind of BASIC for sure... It also made my TI-83 calculator easy to use straight out of the box. ^_^ |
| Delphi (Score:2, Informative) by bmabray on Friday May 26, @03:27PM EDT (#28) (User Info) |
| Delphi would probably be a good choice. The underlying code is Pascal, which is designed to be a teaching language. Being able to create visual & interactive programs will keep their interest more than commmand line stuff would. If they enjoy that, move them up to C++ Builder, so they can learn a language that will be useful later on. human://billy.j.mabray/ |
| Re:Delphi (Score:1) by SanjuroE on Friday May 26, @03:46PM EDT (#152) (User Info) |
| I agree. You should learn them a up-to-date language, so no Basic. Pascal, designed for teaching, is very easy to read. I think Java would be to difficult to read. Because of all the { and } and private/public statements. Delphi/Pascal is easier to read with "begin" and "end". Also the compiler is very struct, like in Java it doesn't allow for out-of-range operations and such things. Another advantage: There are some Pascal interpeters for Linux. I didn't come across any for Basic (doesn't mean they aren't there). |
| Re:Delphi (Score:2, Interesting) by theviper007 on Friday May 26, @04:20PM EDT (#309) (User Info) |
Delphi is a wonderful programming language, and best of all it CAN be used later on it life. Delphi is great for doing anything from simple applications to complex, multitiered DB applications to 3D engines. I have written many of the first and second types listed, and am currently working with a group on writing a 3D engine. More and more people are not defaulting to C++ simply because thats what the older generation of programmers did, and are realizing the value and increased efficiency of developing with Delphi. Also, Borland will be releasing Kylix (Delphi for Linux) in a couple months. As long as your code wasn't API dependent, you should be able to just load your code and recompile! And even if your code doesn't easily recompile, it would only mean adding a couple conditional defines and porting a little to get it there. |
| Re:Delphi (Score:2, Informative) by omibus on Friday May 26, @05:10PM EDT (#484) (User Info) |
| I will 3rd that. Delphi is a wonderful language. Top that off with the fact that it is being ported to Linux and you have the best of both worlds. A easy to read language with all the power of C++ in the desktop enviornment of your choice. Code Junkie |
| Win32 Perl (Score:1) by pnevares (pnevares@DON'T.LIKE.SPAM.mail.mc.maricopa.edu) on Friday May 26, @03:27PM EDT (#29) (User Info) http://www.gforces.net |
| I say install perl on their win32 machines and teach them Perl for Win32. Then show them how to adapt it to *nix, and go from there. It starts them in their native enviroment and moves them over once they're comfortable. Good luck! Pablo Nevares, "the freshmaker". |
| BASIC worked for me (Score:1) by tbo (trbeals@interchange.ubc.ca.nospam) on Friday May 26, @03:27PM EDT (#30) (User Info) |
| I taught myself BASIC from a book called "Kids to Kids: BASIC on the C64" when I was about 8 or 9. I think any simple language would work. Scripting languages are a good start for a GUI-based OS. You could even try them with Java. The simplicity of creating UI would probably appeal to them. Of course, then they might be making more than you by the time they're 16 ;-) |
| Logo (Score:4, Interesting) by algae on Friday May 26, @03:27PM EDT (#31) (User Info) http://www.netspace.org/~algae |
| I don't know if it's around anymore, but I got a really good start using logo. It's good for learning basic programming skills (loops, etc) as well as applied logic and geometry. For those who aren't familiar with it, you basically have a cursor (called a Turtle) that draws a line behind it. There are commands to move the turtle, change the color of the line, in a friendly programming environment. I've seen everything from games to really wicked fractals done in Logo. This was, admittedly, over ten years ago, on an Apple IIe. Anyone know if it still exists? --Alex -- Reverse engineering is not a crime. |
| Logo isn't dead; Methods for teaching Children.. (Score:5, Insightful) by swdunlop (swdunlop@hotmail.EVILEMPIRE.com) on Friday May 26, @03:54PM EDT (#193) (User Info) |
It isn't dead, by a long mile.. It's just quiet. There's a free interpreter for most platforms called 'UCBLogo', and its derivative for windows environments, called 'MSWLogo'. I've been using MSWLogo as an environment for introducing elementary school children to procedural thinking and logic, and we plan to use Python for a second phase for students who show a desire to continue learning how to program. We use Logo, first, because it's got a very high work-to-results ratio for the children. That kind of visual feedback is priceless, for getting them to think in a methodical fashion about a problem. Python requires a bit more of a learning curve before the children get 'interesting' programs that they enjoy, which is why we teach it to them, second. The idea is, get them addicted, and identify the ones who want to learn more, then switch them onto a professional, albeit gentle, language. I'm still debating whether I'd rather use Pascal than Python, because it's strongly typed, but the quick turnaround for type-it, eval-it environments is nice for teaching. But I agree with earlier comments. The first rule, is never underestimate your students. The second, is to never slow them down. Once you've given them a foundation, hand them a list of projects to do, and let them move at their own pace in accomplishing them. Younger students prefer praise as a motivator, older students will find their own motivations, and will want a more mentor-like relationship. Good luck! |
| Re:Logo isn't dead; Methods for teaching Children. (Score:1) by eel (eel@theeel.com) on Friday May 26, @04:00PM EDT (#221) (User Info) http://www.theeel.com |
| boxer Is the next genereaton of LOGO |
| Re:Logo isn't dead; Methods for teaching Children. (Score:1) by jafac on Friday May 26, @05:28PM EDT (#526) (User Info) |
| My 12 year old son is using MSWLogo in his school. He's in for a suprise when he comes to visit this summer, I'm giving him a PC and a copy of Caldera Linux. And a copy of The C Programming Language. I just remembered this old Metallica song. . . -OOPS! time to cut Lars another check! |
| Re:Logo isn't dead; Methods for teaching Children. (Score:2) by ContinuousPark (cp@strangedomainname.com) on Friday May 26, @05:42PM EDT (#561) (User Info) |
| You also might be interested in MicroWorlds. It's a commercial product by LCSI. It's based on Logo and includes a great IDE for multimedia-web-authoring; there's also a Pro version for older kids. Their approach to children education is constructivist, meaning that students will have more meaningful learning experiences when they work on projects that interest them and have a cross-disciplinary approach. It's basically learning by doing not by listening to some boring teacher. There are tons of projects for kids to pursue on the LCSI website. So your kids will not only learn programming but multimedia authoring, project management and, of course, math, biology or whatever science(s) their project is based on. There are English, French and Spanish versions of the software. I highly recommend checking LCSI products out. One last and important note, LCSI was founded in 1981 by professor Seymour Papert. "All the things one has forgotten scream for help in dreams". Elias Canetti |
| Re:Logo isn't dead; Methods for teaching Children. (Score:1, Interesting) by Anonymous Coward on Saturday May 27, @01:52AM EDT (#848) |
| "I'm still debating whether I'd rather use Pascal than Python, because it's strongly typed, but the quick turnaround for type-it, eval-it environments is nice for teaching." Hmm, how about haskell and get the both of both worlds? Actually, for both the original post and your dilema it would suit nicely. It is THE strongly-typed, purely functional language, it has free (speech and beer) interpreters (like hugs) and compilers (like nhc98), and plenty of libraries (including graphics and OpenGL). Lastly, there are a number of places where it is taught as a first language or as a second language; it is very much worth checking out. |
| Re:Logo (Score:1) by Tassleman (dschuetz at ausam dot com) on Friday May 26, @03:55PM EDT (#198) (User Info) |
| Logo(writer?) was a great start for programming - we did it in the 5th grade. Did anyone else's have the attachment that you could place on the floor with a marker, and a big piece of paper, and the commands you put into the program make it draw what you have on screen on the paper? Way cool. |
| Re:Logo (Score:1) by alanw (alan.nospam@glaramara.freeserve.co.uk) on Friday May 26, @03:55PM EDT (#199) (User Info) http://www.glaramara.freeserve.co.uk |
| Logo and Turtle graphics are my recommendation too. Even better if you can make a real turtle (out of lego mindstorms perhaps?). Plenty of hits on Google, and they even give a metasearch link to: This link |
| Re:Logo (Score:1) by eel (eel@theeel.com) on Friday May 26, @04:02PM EDT (#232) (User Info) http://www.theeel.com |
| boxer. One of the guys that wrote "Turtle Geomoty" is behind this OO LOGO on crack! Check it out. very neet stuff. |
| Re:Logo (Score:5, Interesting) by Azog (thoffman1 at hotmail) on Friday May 26, @04:44PM EDT (#407) (User Info) |
| YES! LOGO! It is a real programming language, designed specifically for children for learning. It is a real programming language, with functions, parameter passing, etc. It is very graphic-oriented, so it's a great way to begin. Bugs in your code are very obvious as problems with the drawing. The inventor of Logo, (Seymour Papert??) wrote a great book on Logo. I don't remember the name of it, but it is definitely worth reading. The design of Logo was influenced by research into how children learn. One of the main goals is that children program the computer, rather than most so-called educational programs, which are more about the computer programming the children. Bugs are recognized as an opportunity to learn, not as mistakes to be punished. On a personal note, I got my start in programming using Logo on an Apple II way back in grades 3 and 4. It was a great way to start. In the twenty years since then, I've programmed in dozens of languages. It's my career now. But I'll always remember commands like "FORWARD 20", "RIGHT 90", "PENUP", and "COLOR BLUE". In fact, back around 1992 I started writing a Logo interpreter in Turbo Pascal for Windows. (Hey, it's what I knew at the time.) If I had kids, Logo is where I would start them. However, for older kids there's other possibilities. One interesting one off the top of my head: UnrealScript, for older kids who like games. It's also a real programming language, and kids can learn to customize Unreal and Unreal Tournament and do all sorts of neat stuff. Torrey Hoffman (Azog) "HTML needs a rant tag" - Alan Cox |
| YES to Turtle Graphics (Score:1) by elad (elad@cs.bgu.ac.il) on Friday May 26, @05:30PM EDT (#534) (User Info) http://www.cs.bgu.ac.il/~elad |
| Yes! LOGO and Turtle Graphics are indeed a great way to get into programming. In fact, my CS BSc project was a turtle graphics enabled version of Scheme for Win32. It even has multithreading (with multple turtles!) that are wasy enough (I think) even for children. |
| Re:Logo (Score:1) by sugarman on Friday May 26, @06:01PM EDT (#595) (User Info) |
| However, for older kids there's other possibilities. One interesting one off the top of my head: UnrealScript, for older kids who like games. It's also a real programming language, and kids can learn to customize Unreal and Unreal Tournament and do all sorts of neat stuff. That's probably the best idea I've seen yet. It's interactive, it givces the kid instant, feedback, and it is definetly something they can relate to. I haven't had the chance to use UnrealScript, but the definetly sounds like it could have potential. Of course, the drawback is that your scholld computer lab would need to have some serious horses in it, and this may not be an option. Home scholling, of course, is completely different. Along those lines though, I think I'll go you one better: QuakeC. Quake has been opensourced, so they can get right in and view the guts of it, it's been ported to damn near every OS on the planet, and I recall running it on my lowly P75 many moons ago (not running well, mind you, but running all the same). Designing a course around Quake & QuakeC, and then letting the kids muck aorund to their hearts content might be just the thing. The artistic kids could channel themselves to doing textures or something, and they all might have some good fun with the project. --sugarman-- |
| Re:Logo (Score:1) by alcubierre on Friday May 26, @06:24PM EDT (#623) (User Info) |
| The book by Papert that you are thinking of is called "Mindstorms." This sort of thing is very interesting to me. I'm actually working under a grant at the Center for Engineering Educational Outreach at Tufts University to integrate programming and discrete math into the 6-8 grade curriculum at a local school district. |
| Unrealscript!!!! (Score:1) by Atma` (dweller@NOSPAM.gmx.net) on Friday May 26, @10:12PM EDT (#773) (User Info) |
| uscript is AWESOME! check out http://unreal.epicgames.com/UnrealScript.htm for a doc that describes the language (written by the author). It's a great language - elegant, simple, and very high level - but doesn't have much use outside of Unreal/UT or Unreal engine games :( "Hark! The song of a Slashdot newbie.." |
| Re:Logo (Score:1) by adpowers on Friday May 26, @08:20PM EDT (#728) (User Info) http://go.to/adpowers |
| At my school we use Logo. It is a program called StarLogo for the mac and it seams to work well. I didn't want to take the time to learn the language, though. Time is a waste of life, life is a waste of life, so lets get all wasted and have the time of our lives. |
| Re:Logo (Score:1) by Keithel (kkyzivat@cSsP.uAml.eMdu) on Friday May 26, @09:53PM EDT (#762) (User Info) |
| Anyone know if it still exists? YES! It exists in many forms. The most interesting form I have seen is done by some folks over at MIT. It's called StarLOGO. It takes the LOGO concept to the extreme -- where you don't just control one turtle in the environment, you control an arbitrary number of them, into the thousands. Each turtle has a duplicate set of instructions -- and interacts with the other turtles, and the environment that its in. This has been used in a number of graduate research projects, and it's most noted for exploring emergent systems. Higher levels of order coming out of relative chaos. It is quite interesting. It is more advanced than the LOGO us 20 somethings remember, but still may be good to start kids off with -- maybe after they've had a bit of experience with regular logo. You can find it over at the MIT StarLOGO site. Originally it was only for Macintosh, but just recently they released a Java version that seems to work quite well. The Java version works quite well under solaris, linux, and windows 98 (my experience with it). As they quote it on their website, StarLOGO is a PG-13 rated LOGO, and the others are G rated LOGOs. --Keithel |
| How About StarLogo??? (Score:1) by cosmicaug on Friday May 26, @10:40PM EDT (#787) (User Info) |
Available at http://starlogo.www.media.mit.ed u/people/starlogo/ as a Java interpreter (or, in what appears to be an older version, as a Mac application). Never played with it but appears to be a sort of LOGO implementation where you control a multitude of turtles instead of one. The purpose is to explore decentralized systems. Quoting the site: "With StarLogo, you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies." Anyway, I think it sounds kind of cool and their suggested ages are 13 and up. As for LOGO, a starting point might be http://el.www.media.mit.edu/gro ups/logo-foundation/ which includes some links to various implementations including some for Windows. |
| Re:Logo (Score:1) by Invisible Panther (cpl_pez@SPAMmeNOT.usa.net) on Saturday May 27, @01:49AM EDT (#845) (User Info) |
| i know that UCB logo is being developed by my professor Brian Harvey. I suggest the books that he's writen, I haven't seen them myself, but the man is a very excellent teacher. At UCB he teaches begining computer science in scheme because The Structure and Interpretation of Computer Programs by Abelman and Sussman is so damn good. So Brian's web page: |
| Superlogo (Score:1) by Free Bird (verwerjREMOVE-THIS-CRAP@flashmailREMOVE-2.com) on Saturday May 27, @02:05AM EDT (#850) (User Info) http://come.to/free.bird |
| In The Netherlands, someone released a series of books called Programming for Children (well, actually it's Programmeren voor Kinderen), based on Superlogo, which is probably a logo dialect. The source I've seen also uses a turtle and very high-level concepts, so it's probably an ideal language to learn the programming fundamentals. However, the books and the language are in Dutch. I don't know if it has ever been translated, so I suggest checking it out. |
| Re:Logo (Score:1) by tregeagle (spreadeagle@tregeagle.com) on Monday May 29, @02:06AM EDT (#1013) (User Info) http://www.tregeagle.com |
| Yes it does still exist and I'm pretty sure you can get it from the Logo Foundation at http://el.www.media.mit.edu/groups/logo-foundation/ "Non-cooperation with injustice is a sacred duty." Mahatma Gandhi |
| Something like LOGO on win32? Try "Drape" (Score:1) by Arleo (arleo@apexmail.com) on Tuesday May 30, @08:08AM EDT (#1025) (User Info) |
There is this Dutch guy who made this drawing program called Drape. It's inspired by Logo and L-Systems. It's completely visual oriented. You "drag and drop" drawing actions (draw line, change direction, change color, go back etc) on a time line. You're able to define subroutines and variables. You can run your drawing in "debug-mode" (step by step). It's freeware, it's very funny and it has a lot of basic concepts regarding programming, without the troubles of typing textual languages. You can find it at this guy's website. Arleo BTW, XP-LOGO implementations are still being made by the MIT, called Starlogo |
| Re:Logo in College! (Score:1) by Keithel (kkyzivat@cSsP.uAml.eMdu) on Friday May 26, @09:57PM EDT (#765) (User Info) |
| Would this possibly be at the University of Maine at Orono? Class taught by George Markowsky? :) That class was the reason that I transferred to UMass Lowell :) -- Keithel |
| Re:Logo in College! (Score:1) by Reylox (ten.dnyk@xeh) on Saturday May 27, @09:52AM EDT (#942) (User Info) |
| COS 250 - Discrete Structures...that class was the bane of my existence for 15 excrutiating weeks a year ago. I managed to get through it in one try, not the usual two or more it takes. This semester seemed to be extremely bad, only 3 of 30 made it out. (reverse my email address to email me) |
| Games! (Score:1) by MeanGene on Friday May 26, @03:28PM EDT (#32) (User Info) |
| Tell them they can play computer games for as long as they want - but they'd have to code those games themselves. ;-) |
| Re:Games! (Score:1) by roca on Friday May 26, @03:36PM EDT (#85) (User Info) http://www.cs.cmu.edu/~roc |
| That's how I got started in programming! For my first computer, my dad lugged home an old DTC-80 machine from work. The 8" floppies that came with it had exactly two useful programs on them: MS-BASIC, and a Fortran compiler. Of course no-one I knew had ever heard of this thing so there was no hope of "trading" software. So I started playing around with MS-BASIC and trying to clone the stuff I'd seen on other people's machines, in magazines, etc. Unfortunately, today there are so many games, and they're so good, that there's little incentive for kids to do anything but use what's there. |
| Don't dismiss VB (Score:5, Informative) by vlax (vlax@yahoo.com) on Friday May 26, @03:28PM EDT (#33) (User Info) |
| Like many of the others, I started out in BASIC on an ancient 8-bit machine. But what really got me started in serious programming was scripting languages and VB. I realise VB is an incoherent mess, and perhaps Delphi is better (I've never used it) but the biggest advantage of VB is that you can quickly and easily produce visual applications. You can see results, right there on your PC, even with simple projects. Learning something more structured like C involves having to deal with too many complicated issues of programming theory and structure, and unless you're willing to sit through complicated stuff like X or Windows GUI coding, all you'll get is some boring text program. There may be better ways to do this than VB. Tcl/Tk for example, or tkperl, or even javascript/HTML. But I think the place to start with children is something that produces highly visual GUI output in short order. |
| Re:Don't dismiss VB (Score:1) by fuckface on Friday May 26, @04:37PM EDT (#378) (User Info) http://web.they.org/RAThaven |
| Yeah, that's all we need: some boring text program.... like the Apache webserver or the Linux kernel or IRCd. Every program without a GUI chained to it is worthless. |
| Re:Don't dismiss VB (Score:1) by mikpos on Friday May 26, @04:55PM EDT (#439) (User Info) http://mikpos.dyndns.org |
| Oh yes, don't you know? Kids today are losing all their senses except sight (which is why they need to play that Satanic music so loud). Their sense of sight is so important that their brains are entirely devoted to it except for small regions devoted to sexual indecency and Satanic behaviour. Leave them without flashing colours for five minutes and they'll undoubtedly turn to pornography rings and serial killing. -- yay for 6 ish!! |
| Re:Don't dismiss VB (Score:1) by god_of_the_machine (slashdot.SPAM.ME.NOT@ryanthiessen.com) on Saturday May 27, @11:53AM EDT (#962) (User Info) http://www.ryanthiessen.com |
| I don't think that the poster said (or implied) that text programs are worthless... just not as flashy, which is what him kids seem to be looking for to start. I think its reasonable -- I know I started programming with simple games in Delphi and VB. You can write very little code and quickly see the results. -rt- ** Evil Canadians are taking over the world. Learn about the conspiracy here ** |
| Re:Don't dismiss VB (Score:1) by Ravagin on Friday May 26, @06:13PM EDT (#612) (User Info) |
| I posted soemthign along these lines, but it doesn't look like it'll get moderated up... anyway, amen, comrade! Right on! VB was the transtition, for me, between Qbasic(which still reigns supreme, by the way) and what I'm learnign now (Perl, C++, possibly Python). It's not an incoherent mess, though. The problem is the meshing of the "unstructured" BASIC (which is a great, intuitive language) with the structure imposed by event handlers from controls. With VB, I was forced to give up GOTO (except for my internal error handlers) and finally learn how subs and functions really work. And VB made that easy. Plus, with VB (unlike QBasic), you can legally make .exe's of your programs. ;) ps. This is OT, but anyone know why QBasics 4.5 and 7.whatever still aren't freeware? === -J "I say those who fear communism lack faith in democracy." -- Henry Wallace |
| Re:Don't dismiss VB (Score:1) by Money__ (hallada at msgto dot com) on Friday May 26, @08:06PM EDT (#714) (User Info) file://c:/con/con |
| This is OT, but anyone know why QBasics 4.5 and 7.whatever still aren't freeware? Because Microsoft ia a bunch of money grubbing snakes. |
| Re:Don't dismiss VB (Score:1) by Ravagin on Friday May 26, @08:22PM EDT (#730) (User Info) |
| Because Microsoft ia a bunch of money grubbing snakes. There's always a logical explanation. === -J "I say those who fear communism lack faith in democracy." -- Henry Wallace |
| Re:Don't dismiss VB (Score:1) by Ravagin on Saturday May 27, @04:54PM EDT (#989) (User Info) |
| QuickBasic, AKA Qbasic 4.5? I think they're the same thing... === -J "I say those who fear communism lack faith in democracy." -- Henry Wallace |
| Don't dismiss kids intelligence (Score:1) by Rares Marian (rmarian@winblowsstart.com) on Friday May 26, @06:51PM EDT (#654) (User Info) |
| Unix is way closer to lego blocks than VB Caught signal SIGSIG read this comment again. |
| Re:Don't dismiss VB (Score:1) by Jimmy_B (jimmy_b.NO@SPAM.posmark.net) on Friday May 26, @08:32PM EDT (#733) (User Info) |
| I, myself, started early in programming. I'm 13 now, and consider myself somewhat of a pre-larval hacker. One of the languages I started early with was Visual Basic. Now, I regret it. Like all things Microsoft, it is VERY hard to migrate away from. Once you go far with Visual Basic, I think for me learning the Bitblt API was the big thing, it's not easy turning back to C. It is also very hard to do the important little things. What would be routine memory management tasks in C are often nearly impossible in Visual Basic. Doing anything low-level yields painfully bad performance. Dealing with strings as byte arrays is complicated by unicode-standard differences. The addition and string concatenation operator symbols are ambiguous. Sure, it's a good learning platform because of how you can draw forms, but if you want your child doing Visual Basic, don't wait too long to guide them away. Jimmy_B .sig under construction |
| Re:Don't dismiss VB (Score:1) by bwoodring (bwoodring@email.com) on Saturday May 27, @01:20AM EDT (#841) (User Info) |
Unless his kids want to be "plumbing programmers" they should stay away from C. It is a good language for operating systems and device drivers, but not much else. If they want to program high level applications they should use a high level language. The lingua france of business development will for the next generation will be Java. Only a small percent of next-generation programmers will be "plumbers". Most programmers will be developing web applications or business logic. For these projects, C makes no sense (neither does C++). "Truth Against the World" -FLW |
| Re:Don't dismiss VB (Score:1) by Fittysix on Friday May 26, @09:03PM EDT (#746) (User Info) |
| Yah i started with basic back on a Radio shack TRS-80 A.K.A. COCO 1/2/Dragon then i easily moved to basic then more or less easily to VB but now i'm preety good with c(g)++ ---------------------------------------------- I'm a social drinker... i drink to socialize with my drunken friends. |
| Allegro solves this problem (Score:3, Informative) by yerricde (slash©pineight.8m.COM) on Saturday May 27, @01:18AM EDT (#839) (User Info) http://www.rose-hulman.edu/~yerricde/sd.html |
something more structured like C involves having to deal with too many complicated issues of programming theory and structure, and unless you're willing to sit through complicated stuff like X or Windows GUI coding, all you'll get is some boring text program. There's a very easy library for graphics and sound under C. It's called Allegro, and it has the advantage of being available on most important platforms; it currently works on DOS, Win32, Eunuchs/X11 (even on non-Intel such as linuxppc), and BeOS. You don't have to wade through that WinAPI bullshit; Allegro is a simple layer around GDI or DirectX. Kill viruses. Kill hamsters. Infringe patents. |
| Re:Don't dismiss VB (Score:1) by PeterBecker on Saturday May 27, @03:59AM EDT (#886) (User Info) http://www.PeterBecker.de |
| Daddy, daddy -- why do I have to use brackets sometimes and sometimes not? Really: VB is awfully designed IMHO and shouldn't be used to teach programming. Use an OO-language not a language that has some OO-features. This dismisses C++, too. It would be like teaching word processing with MS Word -- the kids won't learn the concept of dividing content and format in Word and they won't learn goos style and the Right Way to think in VB. Peter CAUTION: Don't read this posting. |
| Re:Don't dismiss VB (Score:1) by StrawberryFrog (Strawberryfrog(at)webmail.holdthespam.co.za) on Saturday May 27, @07:06AM EDT (#922) (User Info) |
| I hereby dimiss VB. Pah! > I realise VB is an incoherent mess, I do too, that's why I don't use it, that's why I wouldn't let kids near it. *They will learn bad habits*. > and perhaps Delphi is better (I've never used it) I'm proud to say that I am a Delphi bigot who uses Delphi every day. It has all the same GUI builder tricks as VB. If you are going to teach your kids with a proprietary, GUI RAD tool, then consider that Delphi is an OO language, and has been from version 1. The last time I used VB was version 3 and it sure as heck wasn't OO then. I believe it has been kludged in that direction in the meantime. Yuck. The main criticism leveled at Delphi's Object Pascal language here on Slashdot is that it is a stongly typed, bondange-and-dicipline language (BTW, this is *far* less true of Delphi than it is of the original pascal language). IMHO this is appropriate for teaching children, once they have got past the LOGO stage. Don't forget that Pascal was originally designed as a teaching language & the strong typing was deliberate in this goal. > But I think the place to start with children is something that produces highly visual GUI output in short order. Agreed. ribbit StrawberryFrog |
| Re:Don't dismiss VB (Score:1) by alleria (slu_2@altavista.net) on Saturday May 27, @09:14AM EDT (#936) (User Info) |
| I realise VB is an incoherent mess, and perhaps Delphi is better (I've never used it) but the biggest advantage of VB is that you can quickly and easily produce visual applications. Indeed. And if you're using ActivePerl, you don't even have to do much actual coding in basic. Just make a call to PerlEZ.dll and fire up an instance of that interpreter! :-) Smee |
| Re:Don't dismiss VB (Score:1) by kjeldar (jhobbs#mail/orion/org) on Sunday May 28, @04:10PM EDT (#1006) (User Info) |
| Even though the discussion will be archived before long, I'll still toss my hat in. My first experience with hacking was on a brand-new state-of-the-art Apple II in kindergarten. The school had a game for it called Math Maze, where the kid controlled a fly that moved around the maze, eating numbers. The idea was that the game gave the kid a number n, and the kid had to make the fly eat two numbers, the sum of which would be n. I thoroughly impressed my teacher with a hack that changed the maze from black on green to green on black. *grin* Hey, I was five. My parents noticed all I talked about was the computers at school, so for my eighth birthday they scraped together some USD and I got a secondhand Mattel Aquarius (anyone else remember that thing?), powered by a Z80, with 'Microsoft Basic (C)1981' burned into ROM. If I wanted it to do something, I had to code it myself, and I had to do so in one sitting thanks to the lack of any form of mass storage. *grin* I still know that crappy BASIC better than any other languages. Don't be so quick to sneer at BASIC. Yeah, it uses GOTOs. However, it gives a foundation just as well as anything else, without overwhelming a kid. Oh, and I built with Lego since age 2. Read Coupland's Microserfs, if for no other insight than how Lego shapes the mind of a future hacker. J |
| Obvious answer: Mindstorms! (Score:3, Redundant) by Enoch Root (elijah[at]hushmail[dot]com) on Friday May 26, @03:28PM EDT (#34) (User Info) |
| I remember when I started playing with Lego Minstorms, I couldn't help thinking, 'Hell, I wish I had THAT when I was a kid.' I can't think of a better way to teach a kid how to program, and do Object-Oriented Programming, no less. It's very easy to understand, and you see a direct relationship between the code and the result. For instance, you'll be able to physically illustrate a FOR or an infinite loop with insane ease. And really, it's a toy that evolves with you. If 30 year-old jaded programmers can still get a kick out of it, imagine a kid... He'll probably wear it down before he gets tired of it! Lego Mindstorms Website |
| LegoKAREL (Score:1) by albamuth on Friday May 26, @03:39PM EDT (#116) (User Info) http://www.piratemotel.org |
| Ah! Mindstorms are awesome! There must be a way to combine the KAREL API with Mindstorms to make a physical KAREL, if someone hasn't done it yet. $ chmod 666 soul.tar.Z |
| Re:Obvious answer: Mindstorms! (Score:2, Informative) by Bigtoad on Friday May 26, @05:18PM EDT (#504) (User Info) |
I'm in total agreement here -- Lego Mindstorms is an ideal way to start a child with programming. The only drawback I can see is the expense. The programming environment that comes with the system is a very simple GUI that runs under windoze. That programming environment is fairly limited, and your child will probably outgrow it fairly quickly. Once that happens, you can introduce him or her to the more advanced methods available to program the system, including Visual BASIC, pbForth and the various Gnu compilers under *NIX using legOS. There's also a web page at http://www.crynwr.com/lego-robotics/ that has links to lots of other programming environments for Mindstorms. |
| LOGO/Turtle Graphics for Mindstorms .... (Score:2, Interesting) by taniwha on Friday May 26, @05:33PM EDT (#538) (User Info) http://www.taniwha.com/nospam.jpg |
| it seems so obvious - has someone done this? is there a Mac or Linux front end I give to my kids? |
| Re:Obvious answer: Mindstorms! (Score:1) by GenCuster (Natecuster@no__spam.hotmail.com) on Saturday May 27, @07:42PM EDT (#993) (User Info) http://scnc.yps.k12.mi.us/~robotics/ |
| If you are interested in seeing kids learning with Lego Mindstorms check this out. I was part of the First robotics competion, for high school students this year. It was well run, and a blast. I am sure the lego league is just as good. Best regards, Nate Custer "The poet presents his thoughts festively, on the carriage of rhythm; usually because they could not walk" Nietzsche, The Wanderer and His Shadow. |
| Karel the Robot (Score:1) by albamuth on Friday May 26, @03:28PM EDT (#35) (User Info) http://www.piratemotel.org |
| is what I started playing with in school. http://www.mtsu.edu/~untch/karel/ Karel is programmed in Pascal, which in turn is an API done in C. So a good way to proceed is have them master Karel, then program in Pascal, then C, then C++, Perl, Java, etc. My father once tried to teach me ALGOL and COBOL but being mainframe languages they were not very accessible. You can do a lot with just Pascal, however, and anyway the APCS test in highschool I took was in Pascal. After that, they'll either get into by themselves or just kinda lose interest in programming (like I did). $ chmod 666 soul.tar.Z |
| Re:Karel the Robot (Score:1) by Chrome3 on Friday May 26, @03:48PM EDT (#168) (User Info) |
| I had to write a karel the robot interpreter in snobol. This is a pretty easy language to learn. I took about 2 days to learn karel, learn snobol and write the interpreter. snobol would also be a nice language to learn. Its a very simple syntax, but there isn't much you can do with it so it won't be much fun |
| Re:Karel the Robot (Score:1) by hubrix (spam-my-monkey@spoofmail.spamdomain.ru) on Friday May 26, @05:35PM EDT (#547) (User Info) |
| There is a newer version that is used for the humanities majors at CMU that is C++ based, http://csis.pace.edu/~bergin/karel.html Screw realty just hook me up another monitor! |
| C would be the perfect starter (Score:2) by tcd004 (tdaub@ceip.org) on Friday May 26, @03:28PM EDT (#37) (User Info) http://www.lostbrain.com |
| Someone should put together a set of wooden blocks with common programming marks, as well as the alphabet painted on them. tcd004 |
| Visual Basic == Fisher Price (Score:1) by PanDuh (panduh@orgsyn.com) on Friday May 26, @03:28PM EDT (#38) (User Info) http://www.originalsyn.com |
| Visual Basic is sort of like a Fisher Price "My First Programming Language" The drag-and-drop methodology keeps it simple for the kids to pick up, and the object-based nature gives them a headstart on true OO programming. Visual Basic also tends to have more non-esoteric keywords (unlike perl) so it might be more intuitive and a little easier to follow. Once they master Visual Basic, then can move on to more advanced languages like Perl, Java, and C. BTW, you should start weaning them onto UNIX. Maybe you can install Enlightenment Window Manager, and show them how much cooler it looks than Windows. They'll slowly gravitate to it after that. |
| Re:Visual Basic == Fisher Price (Score:2) by Golias on Friday May 26, @04:33PM EDT (#365) (User Info) |
| Visual Basic is sort of like a Fisher Price "My First Programming Language" Which makes it great for very young children or MCSE's. ;) This guy said his kids really want to be programmers. If that is true, they are probably math geeks that can take on raw code without the pretty pictures and not get scared. I was their age when I was hacking on Commodores and Apple II's, and I loved it. Starting out with near-WYSIWYG object programming might actually take some of the fun out of it. I never said I was afraid of dying. |
| Re:Visual Basic == Fisher Price (Score:1) by PanDuh (panduh@orgsyn.com) on Friday May 26, @05:43PM EDT (#566) (User Info) http://www.originalsyn.com |
| This guy said his kids really want to be programmers. If that is true, they are probably math geeks that can take on raw code What you're forgetting is that all these kids have ever been exposed to is Win98. They're whole lifes have been WYSIWYG-GUI. Unlike you and me, who started out on computers and OS's where CLI was the default, these kids don't know anything besides the Micro$oft start bar. You don't want to shell shock these kids out of programming altogether by throwing into gcc, perl, or even the antiquated Borland Turbo C++ IDE. By slowly weaning them through simple-to-use programming languages, you are lowering the learning curve, which is a good thing. |
| Re:Visual Basic == Fisher Price (Score:2) by Golias on Friday May 26, @06:40PM EDT (#641) (User Info) |
| You don't want to shell shock these kids out of programming altogether by throwing into gcc, perl, or even the antiquated Borland Turbo C++ IDE. Sorry, but I still disagree. Any kid that goes out of their way to express a desire in programming probably wants to get their fingernails dirty with the real thing. Mastering CLI concepts will make it much easier for them to understand what is really happening when they work with a GUI-based object language. To tell a new hacker to start out with VB would be like telling a young gear-head that his first hot-rod should be a Honda Civic. Sometimes you can get away with that, but I say you give that kid a rusted-out junk-yard Ford Mustang to restore, and harness that youthful enthusiasm to its full potential. I never said I was afraid of dying. |
| JavaScript (Score:1, Interesting) by mikol on Friday May 26, @03:29PM EDT (#39) (User Info) |
| It's not the most elegant technology, but it will certainly get anybody started programming. For kids, it will allow them to do something interesting with web pages. It's fairly trivial to start with more interesting feats than "Hello, Word!" They can make clocks and background changers, etc. Also not limited to Windows, or *nix for that matter. |
| Re:JavaScript (Score:2, Insightful) by roca on Friday May 26, @03:47PM EDT (#162) (User Info) http://www.cs.cmu.edu/~roc |
| I haven't tried it, but I too think that HTML/Javascript might be a good idea. It has some features that are good for beginners, if not for more mature programmers, like not having to predeclare variables. It also scales nicely: you can start writing straight-line "global" code, then introduce functions, then introduce objects. It also teaches C syntax, which will help get them into Java and C later. You can build displays in HTML/CSS, which don't really require programming skill, and then script them with Javascript. That's a nice learning curve, and gives you nice concrete structures to manipulate with your programs. You can build interfaces and graphical stuff (very COOL graphical stuff soon, with SVG), and do lots of other things, using the powerful libraries built into modern browsers. Another nice thing is that when you've done something, you can put it on the Net and show all your friends, or email the results around. Also, these skills are very useful and marketable. |
| Re:JavaScript (Score:1) by hartsock (cmdrZarf@Hotmail.com) on Friday May 26, @04:31PM EDT (#357) (User Info) http://i.am/hartsock |
| Unfortuantely I have to agree that JavaScript is most likely the best way to start kids 'gramming. This is because it is both instantly accessable and readily available. The kids get instant gratification and instant feed back from the experience and parents don't have to shell out for an IDE or figure out an SDK until they know that their kid is committed to programming. I have some friends who asked me how to get their kids into programming... they are a very poor family and can't afford much in the way of hardware or software. I'm using gcc on linux almost exclusively now so I'm giving them my old copy of MS VC++ 5.0 but some how I think this is a bit over the kids' heads. I figure that I could hook the kids with HTML, JavaScript, and then slide them into C++ and OpenGL/Glut in time... with VC they can stay comfortable on Windows until they are "31337" enough for Linux. Well, these are 13 year olds. They won't be professionally programming for a while... just amature programming... so I guess they aren't PRO-'grammers they are AMA-'grammers! --// Hartsock // Live to Code, Code to Live! |
| Re:JavaScript (Score:1) by John_Booty on Friday May 26, @04:00PM EDT (#225) (User Info) |
I think Javascript is a sloppy programming language. I don't think it's good for beginners (or anyone for that matter). Why?
I think a better choice would be Java. It's a nice, easy-to-use programming language that will teach your kid good object-oriented programming concepts. Also, you can get him/her started writing command-line programs and quickly graduate to GUIs. I think Sun has a nice Java IDE called Forte that's available for free on their website. I played with the release candidate and found it to be cool... only problem? Total resource hog... you want at least 128MB ram to run that bastard! Perhaps later versions aren't so hoggish. |
| Re:JavaScript (About Java/Forte) (Score:1) by Drone-X (jonas.devuyst@advalvas.be) on Friday May 26, @04:34PM EDT (#366) (User Info) http://www.drone10.com |
| If you want to learn Java you're better of with a non drag-and-drop IDE like Forte. I always thought of CodeGuide to be a good IDE. It has syntax-checking, autocomplete, auto-indent, an integrated debugger and it shows errors on the fly (much better than VB does this). Help the Unfortunate please - http://www.thehungersite.com |
| Re:JavaScript (Score:1) by mr_burns (tack@oSpamNay.robot6.com) on Friday May 26, @05:01PM EDT (#453) (User Info) http://www.pulsemedia.net/tack |
| This is how I learned the relationship between the interface and the code, how info flows between them. I learned c, and it got me nowhere until I learned how my code fit in the scheme of things. By teaching javascript form handling, you teach i/o between your code and the UI, which is important. Also, javascript is garbage collected and only has one kind of variable, "var", so it's easy to get loops and other stuff down, and build from there without getting discouraged by memory and variable quirks. With mozilla, javascript has a lot of potential for doing some serious development, so it's an easy language to learn were you see immediate results, and potentially accomplish a lot of great stuff....just the thing to keep a kid motivated. Since the syntax is a lot like c, and it's object oriented, it isn't a big jump to java and c++ after you've mastered js. "Let him go, Ralph. He knows what he's doing." --Otto Mann (simpsons) |
| Re:JavaScript (Score:1) by nathanm (nathanm@earthling.net) on Friday May 26, @05:28PM EDT (#527) (User Info) |
I agree! JavaScript would be a great first language. Here are some reasons:
Makes me wish I was 12 again. I started learning BASIC on an Apple II+ in 4th grade. If I'd had all the resources available online today, things would've turned out a lot different. |
| Back in the day (Score:1) by Jordan Block on Friday May 26, @03:29PM EDT (#40) (User Info) http://www.blacksphereentertainment.com |
| I learned my first bits of programming (if you could call it that) in Hypercard for Mac (EWWW) way back when I was 8 or 9. I then moved on to BASIC, which is probably the best "begginers" language. VB really isn't much of a language, IMO, but lets not start a flame war today, although it may work ok as an intro, although it will give your kids an unrealistic perspective on programming, same thing goes for Delphi. C/C++ are pretty boring at first, but maybe you could write up a little graphics lib in inline ASM that they can learn to use, that way they can make something graphical without having to learn the nitty-gritty junk in windows programming. |
| Turtle (Score:1) by Joe_NoOne (joe_noone[at]mail.com) on Friday May 26, @03:29PM EDT (#41) (User Info) |
| I remember somewhere when I was kid in the late 70's they had something called "turtle" to hook younger kids. You had a turtle on the screen and you wrote code to make it move around. I also remember (what I got hooked on) for TRS-80's was "Dancing Demons" which you wrote scripts to make dance routines for the daemon. The thing to remember is "instant gratification". They want to see something really cool happen with not alot of effort. That gives them the confidence to delve into the harder languages/tasks.. |
| Re:Turtle (Score:1) by stx23 (stx23@i.am) on Friday May 26, @03:36PM EDT (#87) (User Info) |
| Don't you mean Logo? 'save keys to open doors' - From the book of Videogame Koans. |
| Re:Turtle (Score:1) by megcass on Friday May 26, @03:42PM EDT (#127) (User Info) |
| I used two different programs - LOGO, and one called Turtle Tracks. The both did the same thing - you directed a cursor around that drew a line behind it. Turtle Tracks had a slightly more "kid-friendly" interface than LOGO, and the commands were opposite - to make the cursor turn right, it would be RT (right turn) in one (can't remember which is which!), and TR (turn right) in the other. |
| How about Lego Mindstorms (Score:1) by bornholtz on Friday May 26, @03:29PM EDT (#42) (User Info) |
| I'm sort of teaching my 7 year old son about programming using the graphical development environment that comes with the Mindstorms. He is still in the early stages of programming it and learning basics like conditionals and loops. I figure that when he outgrows the graphical environment I can get him a C compiler or any of the other environments to create Mindstorm programs. |
| What about VBScript for starters? (Score:1) by stx23 (stx23@i.am) on Friday May 26, @03:29PM EDT (#43) (User Info) |
| OK, if they are likely to be using Win98, you could start with WSH/VBScript for a basic understanding of the innards of the computer, then from there scale up to web type stuff with VBScript in Active Server Pages, and from VBScript to VB. OK, it's quick and dirty, but it's pretty easy to throw a small program together, and fairly easy to debug. If they can get to that point and still be interested, I'm sure you can hook them into a 'real' programming language & operating system... 'save keys to open doors' - From the book of Videogame Koans. |
| Re:What about VBScript for starters? (Score:1) by bmabray on Friday May 26, @03:38PM EDT (#97) (User Info) |
| Just be careful if you get an e-mail from them on Father's Day that says ILOVEYOU... :-) human://billy.j.mabray/ |
| Re:What about VBScript for starters? (Score:1) by Frizzle Fry (anon_user@NOSPAM.bigfoot.com) on Friday May 26, @03:52PM EDT (#183) (User Info) |
| I wonder every time I see your sig: what is this book of video game koans? I've searched on barnes & noble and amazon as well as searching the web and I can't find any mention of it. The bus came by and I got on That's when it all began There was cowboy Neal At the wheel Of a bus to never-ever land -Grateful Dead |
| Re:What about VBScript for starters? (Score:1) by stx23 (stx23@i.am) on Friday May 26, @04:46PM EDT (#414) (User Info) |
| I'll need to finish writing it... #8^D 'save keys to open doors' - From the book of Videogame Koans. |
| Re:What about VBScript for starters? (Score:1) by Frizzle Fry (anon_user@NOSPAM.bigfoot.com) on Saturday May 27, @01:06AM EDT (#834) (User Info) |
| Do you have any others you'd like to share? I like the one in your .sig a lot. The bus came by and I got on That's when it all began There was cowboy Neal At the wheel Of a bus to never-ever land -Grateful Dead |
| My favorite experience with early programming... (Score:2, Informative) by OdinsEye on Friday May 26, @03:29PM EDT (#44) (User Info) |
| My dad showed me a little BASIC and I played with HyperCard at the school, but neither really quite got me feeling I had any real power, and I quickly lost interest with writing essential the same thing over and over (since I didn't know arrarys, structs or other useful data management)... Problem with my dad is that he only taught things I asked him about (and not knowing much, I know realize I asked a lot of wrong questions). However, my favorite programming experience was with Hypercard (mostly cuz I could manipulate my doodles in a 'game'), even though I realized it was rather weak as a general-use language. But, I did a maze game (pretty limited one) and even allowed for a couple of creature combats. Whatever you choose to show your kids how to do this, (and if they're interested) I'd recommend working on a dungeon-maze type game. It's fairly fun, and you get to show the use of variables, arrays, calculations for leveling/combat systems and the rest. Of course, that's just me as a kid. I liked Final Fantasy and drawing, so making a mini-RPG was a natural choice for me. But, trudging through all the nuances of 'programming' (Hypercard, remember?) was a lot more rewarding when I took just a couple of steps forward in making my game. |
| *toy* languages for kids (Score:3, Insightful) by cybertad on Friday May 26, @03:30PM EDT (#45) (User Info) |
As a lot of other posts concur, any of the BASIC dirivatives are a good idea. VB, although poor at developing high-availability, cross-platform applications, is just fine for a youngster to start out in. There are also those *toy* programming languages based on eiffel and Smalltalk put out by Lego and others. Those are great. Hell, Smalltalk is pretty wonderful as it is, and quite easy to pickup. Just because we as professional developers know of a languages limitations, doesn't mean it isn't *programming*. Remember, what's basic to us, is still quite a bit over their heads! Unless you had kids just to turn out a team of software engineers, I would start them out with something simple. If you try to through a command line compiler and debugger at them and expect any results, you have another thing coming... especiialy if they are heavy into games and graphical stuff... the guy who is sleeping with my neighbor's wife said I was an ass.... |
| Re:*toy* languages for kids (Score:1) by chompz (spam@mu0.net) on Friday May 26, @03:51PM EDT (#180) (User Info) |
| *toy* languages are not a good idea IMHO. They seem to push bad programming practices. Maybe a Lisp dervative would be a good choice. They are kinda try, but you will get to explain all the details of recursion, memory allocation, etc. That would be as good of a learning experience as anything else. scheme intrepreters are fun... |
| Re:*toy* languages for kids (Score:1) by kjeldar (jhobbs#mail/orion/org) on Sunday May 28, @04:16PM EDT (#1007) (User Info) |
| Here's a thought. Give 'em Mindstorms and/or a toy language to introduce them to the concepts, and after they've played with that for a little while, let them know that they can play in an environment just like Daddy's bad-ass command line whenever they think they're ready for it. Kids that age know when they're bored with 'kid stuff' and ready for grown-up stuff. LEGO! Lego is key! Buy them tons of Lego! Every kid who played with Lego to the exclusion of other toys has the potential to be a hacker! J |
| Java (Score:1) by Desdicardo on Friday May 26, @03:30PM EDT (#46) (User Info) |
| I would suggest starting them with Java. It's a well thought out language, has a good library base, and you can get graphical programs up and running quickly. |
| Re:Java (Score:2) by binarybits on Friday May 26, @03:50PM EDT (#172) (User Info) http://www.tc.umn.edu/~leex1008 |
| I'll agree that Java's a decent choice, but I think the big problem there is that there's too much overhead in making it work. You need to declare objects and functions, learn to use the compiler, declare all your variables, and other fun stuff like that. Graphics are also kind of a pain. On my apple ][, I could do a hline 2,50,3, and it would make a line across the screen. WIth Java, you've got to create a Window, create a painting object and put it into it, and do other stuff I don't remember at the moment before anything appears on the screen. So I think Java is probably an excellent second language, and it might be a good choice for high school kids. But before that I think something like BASIC is a better starting point. |
| Cross platform if possible (Score:1) by GregFoster (jedigreg@rogueSPAMmail.net) on Friday May 26, @03:30PM EDT (#47) (User Info) |
| Well, if you need to restrict your choices to something that runs on Windows (due to a limitation such as the games example you mentioned), then at least make sure it is / soon will be a cross platform tool. Like Delphi, or maybe Perl/Python and a graphical IDE/shell. Python might just be a really good choice, since one of the audiences for Python is supposed to be beginning programmers (Not to imply that if you use Python you are a beginner, BTW - I think it is pretty cool tool myself). That way, if they get into it, you could eventually switch them over to Linux or *BSD and they could still have similar, if not the same, development tools. And by that point, there should be even more games for Linux, so maybe you can wean them totally from Windows. Just a thought. Best of luck, regardless of of what tool you end up choosing. |
| Give them Squeak (Score:5, Interesting) by X on Friday May 26, @03:30PM EDT (#48) (User Info) http://www.xman.org/ |
| Squeak is your answer. It a free version of Smalltalk available on whatever platform you want. It's got excellent support for multimedia stuff, and it's nice and graphical. Kids get very immediate support. Smalltalk is actually very easy for kids to learn (they've introduced it in kindergarden classes) and allows them to define their own language and functions. Furthermore, it would instill in them good OO development practices from the beginning. OO is actually very intuitive to young kids, just not to programmers who've been hacking away at functional programing for n years. ;-) |
| Re:Give them Squeak (Score:3, Interesting) by afsd on Friday May 26, @03:48PM EDT (#166) (User Info) |
| Squeak. Definitely Squeak. Definitely Squeak. My son tried it for his graduation project in Gr. 8, and despite his a _bit_ different interests, loved it. At Disney, they set up a class - 1.5 HRS every week with 4-5-graders. Going well. But, that's where OO the way we know it started (I mean, Imagineering Group - Kay et al.) Wondering, why only 1 post on Squeak out of 50? |
| Re:Give them Squeak (Score:1) by Lord of the Fries on Friday May 26, @03:59PM EDT (#213) (User Info) |
| Wondering the same thing! Scrolling down thru the suggestions, I thought I'd find Smalltalk (esp. Squeak) all over the place. I did the Basic thing. Squeak would be much better. Lots of good research gone in over the years about teaching children Smalltalk (esp. Adele Goldberg's work). Many Smalltalkers have taught their kids Smalltalk and reported favorable results. Squeak is especially wonderful because of the Morphic stuff; allows kids quick gratification/feedback. |
| Re:Give them Squeak (Score:2, Insightful) by Anonymous Coward on Friday May 26, @04:01PM EDT (#228) |
| I'll second that!!! In fact, many self-proclaimed OO programmers should try Smalltalk BEFORE trying languages like Java. The fact is that after C(C++) people are so messed up that rarely can write correct OO. Smalltalk is a two-thumbs-up for anyone wanting to program in OO. (At least it'll put your thinking on the right track.) Finally, it's simply lots of fun! |
| Re:Give them Squeak (Score:1) by conradwt on Tuesday May 30, @07:25PM EDT (#1030) (User Info) |
| Yes, I would agree that Squeak Smalltalk would provide kids with an excellent foundation to both programming and object orientation. It has a self contained and easy to use development environment. Also, it provides the user with rich set of classes to build from. Last but not least, it provides one with a platform to build stunning multimedia applications. Go Smalltalk, -Conrad |
| It's open source. (Score:2) by X on Friday May 26, @06:01PM EDT (#594) (User Info) http://www.xman.org/ |
| Oops, I forgot to mention... it's also open source. |
| Re:Give them Squeak (Score:1) by sittidae on Friday May 26, @06:39PM EDT (#640) (User Info) |
| Squeak, VW NC, Dolphin, or any of the other free Smalltalk distributions is a perfect place to start. They can have instant gradification and have the power to control the entire environment (including the IDE). Of course they may get spoiled with the elegance of the language and look at you incredulousy when you tell them that there are languages that don't remember what type they are when you pull them out of a container :) |
| Re:Give them Squeak (Score:1) by algebraist (demiourgos@smalltalk.org) on Friday May 26, @11:27PM EDT (#801) (User Info) http://algebraist.com/ |
| I heartily second this opinion, both because Smalltalk logic is simple and consistent and because anything about Smalltalk or OO with Smalltalk easily transfers to other OO languages, and even non-OO: May the class libraries be well done and with you! Now, if, instead, one opts for Dolphin Smalltalk, as an implementation -- not Squeak and relatively free, I understand -- it has a package which programs and controls Lego Mindstorms Bots already. With Squeak, of course, you have Morphic and a 3D build/control/modeling package that's heavily cross-platform. Ah, heck, try 'em all. --jtg algebraist, Walk tall, talk Small, see http://www.smalltalk.org/ |
| Re:Give them Squeak (Score:1) by RalphEJohnson on Saturday May 27, @07:42PM EDT (#994) (User Info) http://st-www.cs.uiuc.edu/users/johnson |
| I learned to program with Basic, and spent 7-8 years programming in C, but Smalltalk is an order of magnitude better. It is much easier to teach to new programmers than C, a even more powerful. There are lots of different versions of Smalltalk. Squeak (http://www.squeak.org) has a very non-standard GUI but has flashy multimedia support including 3D animation, kid-oriented visual scripting, and a very active open-source support group. Documentation is weak, but some books are supposed to come out soon. If you want very close Windows integration, you should use Dolphin (http://www.object-arts.com/Home.htm) or Smalltalk MT (http://www.objectconnect.com/). There are a lot of different implementations of Smalltalk. All of them feature live objects that you can reprogram in the middle of the debugger. Smalltalk is much more dynamic than Java, and all the implementations of Smalltalk have programming environments that put most others to shame. Smalltalk is simple and easy to learn, though the class libraries are often big and so take a while to learn. It is ideal for learning by exploring. |
| Re:Give them Squeak (Score:1) by Phos on Sunday May 28, @12:51AM EDT (#1000) (User Info) |
| I'm surprised that it took this long for Squeak to be mentioned... I just jumped in to Squeak about a week ago (For a class at school). If you use Squeak to teach your kids programming, and I recommend it, you also get to (have to) spend some time helping them out. They could probably figure out some of it on their own, but no matter how "intuitive for kids" it is supposed to be, they are going to need some pointers. Good luck, and check out http://minnow.cc.gatech.edu/squeak for a good Squeak source. Phos |
| Don't flame me for this... (Score:4, Informative) by kimflournoy on Friday May 26, @03:30PM EDT (#49) (User Info) |
| ...but why not HTML and JavaScript? There's the instant gratification of seeing your creation alive and being able to show your friends something cool you just did. Most web-savvy kids nowadays have some concept of mouseovers and forms, and maybe have their own homepage already, so adding functionality to something they're already interested in would be easier than sticking them in front of a prompt and saying "Oh, look, you printed 'hello, world' to the screen!" IMHO, of course. |
| Re:Don't flame me for this... (Score:2) by binarybits on Friday May 26, @04:00PM EDT (#224) (User Info) http://www.tc.umn.edu/~leex1008 |
| The problem I see with this is that it doesn't really teach *programming.* Sure, you can make it print "hello world," but you can't do the sorts of things that kids generally want to do-- games, screensavers, etc. Basic concepts like loops, variables, etc, exist in Javascript, but they are generally de-emphasized in favor of more practical how-to knowledge. That's not the end of the world, but I'm not sure it's all that useful when it comes to learning programming skills. You can have an encyclopedic knowledge of HTML tags and JavaScript rollover tricks and still know nothing about coding, whereas playing with basic can teach you many of the conceptual foundations of programming (even if it does stunt your ability to write nice modular code: one of these days I'm going to go look at the BASIC programs I wrote back when I was 10. I can only imagine the spagetti code I must have written.) |
| Re:Don't flame me for this... (Score:1) by ctembreull (chris@SPAMMEN.VERBOTEN.syl.sj.nec.com) on Friday May 26, @04:55PM EDT (#437) (User Info) |
| You're correct when you say that HTML doesn't teach "programming" per se. But it does teach something else of equal value to programmers: structured thinking. HTML shows them how to order the elements of their program - i.e. the <HTML> comes before the <HEAD>, the <TITLE> comes after the <HEAD> and you have to be sure to close that line with a </TITLE>. Yes, it's pattycake. But it's also instantly gratifying - all the child has to do to see the result of his work is hit the "Reload" button on a browser. And it provides a good springboard into Javascript, which has the benefit of teaching how to augment that very basic HTML "program". If he's really learned his HTML, then he'll know the significance of the <BODY> tag, and will be able to comprehend the meaning and function of the "onLoad" event. HTML and Javascript are very much like Legos, really. HTML is the basic square blocks that make a structure, Javascript is all the neat glassy pieces and special bits and little lego people that add life to a creation. And once a child has got the hang of creating a webpage and adding interactivity - by hand, mind you, with a text editor instead of with a GUI editor - he or she will be *very* well positioned for making the transition to a high-level language, whether that would be Perl, C, C++, PASCAL, or what have you. If you ask me, the most important thing a programmer must be able to do is order and arrange his thoughts, to comprehend the flow of data through a program. HTML is a wonderful tool for teaching those skills.
63,000 bugs!? I'd hate to see what they call unstable!! |
| A bit unfair to JS (Score:1) by NickFitz (merlin@nickfitz.idps.co.uk.nospam) on Saturday May 27, @08:36AM EDT (#932) (User Info) http://www.nickfitz.free-online.co.uk/ |
I have to disagree. JavaScript is a pretty neat language; although it is most commonly encountered in a web browser, it would be important to ensure that a beginner understood the separation between the language and the environment in which it was hosted. I feel that being made aware of the distinction between the DOM and the core language would help take a beginner a long way down the road to understanding the principles of OOSD. Although it is true that JS is a prototype-based language rather than a true OOL, I always use it in an object-oriented manner(check out the description of implementing encapsulation and inheritance in Netscape's JS docs - which makes no mention of anything to do with browsers ;-). The speed of development and ease of testing make it my language of choice for all kinds of prototyping, even if I'm ultimately aiming at (say) a Java implementation. In case you're wondering, I've been coding for 25 years in everything from about 10 different flavours of assembler (anybody else remember loading bootstraps into a PDP8/e using the toggle switches on the front?) to Java via BASIC and Forth, and I wouldn't recommend BASIC to anybody expecting to acquire programming skills which will be of value in TRW. I know VB is going to finally get some kind of bastard object-orientation, but a kludge on a hack isn't a good example to set anyone. All this IMHO, of course. -- Nothing to declare. |
| Not a bad idea (Score:2) by bridgette (megaland@at@home@dot@com) on Friday May 26, @06:05PM EDT (#599) (User Info) |
| Webmonkey has a good javascript tutorial: http://hotwired.lycos.com/webmonkey/programming/javascript/tutorials/tutorial1.html they also have a kids page but it's all html, no javascript yet: http://hotwired.lycos.com/webmonkey/kids/ When they start getting annoyed with the limitations of javascript they could easilay move into java. - bridgette |
| Javascript is very forgiving (Score:1) by donglekey on Friday May 26, @06:47PM EDT (#652) (User Info) |
| I started out with javascript events in html after html got too simple (about an day). That was the best way I think, although I didn't realize what was happening with functions and forms and why things were the way they were, but it was easy enough to start with. Also, with html and javascript you aren't penalized near as bad for making a mistake so things don't get so frustrating so quickly eg. C. I now know about 5 languages and can actually do alot of useful things with java. I went from html (not real programming I know - "static programming") to javascript to VB to C++ to C (I know, weird again) to java and now I am Learning Perl which is going pretty nicely. Just my thoughts and experiences. Why? |
| Re:Don't flame me for this... (Score:1) by jonnyTS (jono_lucifer@SPAM_CAN_EAT_ITyahoo.ca) on Saturday May 27, @12:54AM EDT (#830) (User Info) |
| That's a good idea but why not implement some C or Perl progamming, that everyone has been talkingg about,inside of that to begin teaching some USEFULL programming! That's right, I'm talking FORMS! With HTML to start off, you can expand on that using either C or Perl (I would prefer C) to receive input from a form and output something to the screen depending on that (I'm thinking adventure game that some ppl have been talking about?). Anyways, just my point of view. Proud to be 100% geek and 100% non-single! |
| Pascal is a good start. (Score:2, Interesting) by McLion on Friday May 26, @03:30PM EDT (#50) (User Info) http://www.100si.com/ |
| I think they are old enought to start programming in a language that will teach them how to program good clean code. Find for them an old copy of Turbo Pascal and a starter book about that thing. They won't program any fancy thing like a windows app, but they will soon find out how to do an eazy game... Pascal is a clean language with strong principles of programming, so IMHO is the best start to form a good programmer. Maybe Oberon would be a better start, but unfortunatelly is an unusable language at this stage (like Pascal was before Turbo Pascal came out). :) McLion |
| Even better, it's free! (Score:1) by Nicholas Vining on Saturday May 27, @03:54AM EDT (#885) (User Info) |
| Turbo Pascal, the language that I started with (5.5 on a 286dx/12!) has been released as freeware (versions 1.0, 3.0 and 5.5 if memory serves) at the Borland webpage. Does it get cooler? Nicholas |
| Pascal is Easy to Understand, HTML a Great Primer (Score:1) by EverCode (insite@SAY_NO_TO_SPAM.insitedesignco.com) on Friday May 26, @03:30PM EDT (#51) (User Info) http://www.insitedesignco.com |
| I believe that Pascal has probably the easiest-to-understand syntax of them all. Get them going with the basic text processing stuff. They are not going to be able to jump into OOP GUIs and stuff... Also, HTML is actually a good primer for programming, I would highly recommend teaching them that first. EC "...we are moving toward a Web-centric stage and our dear PC will be one of many devices happily swimming in the ocean of IP packets." - JLG |
| Re:Pascal is Easy to Understand, HTML a Great Prim (Score:1) by drewda on Friday May 26, @09:23PM EDT (#752) (User Info) |
| To reiterate a previous post: HTML is not a programming language! As shown by the ML in HTML, it is a markup language. Not only is it a markup, but also it is a pretty messy one at the moment (no real standards). If you want to teach HTML, combine it with writing/information processing & management/content creation/interface design. Not enough people out there know how to write well and communicate their thoughts through both old and new media. |
| Good starting language (Score:1) by cblack (cblack@mokey.com) on Friday May 26, @03:30PM EDT (#54) (User Info) http://cblack.mokey.com/ |
| One of the most important things in my mind about choosing a first language for a younger person or new programmer is that they keep interest. Therefore I think a major requirement should be that they can do something neat (and perhaps even useful) without too much trouble or overhead of learning tons of stuff. Therefore I believe that Perl or Python are good starting languages. With Perl they could easily make text-based games for eachother or their friends, and after awhile make a pokemon card database or card builder or something. Doing something like this in C takes much more time for a new programmer. I highly recommend the book "Learning Perl" for a new programmer since the first chapter leads the reader through an increasingly capable program (I think one of them is an app to track grades or something). Python might also be a good language, but there is some 'learning overhead' to object orientation. It us understandable to be surly sometimes. -The Admiral |
| I would get flamed for this, but anyway... (Score:1) by dragisha (Jomu@NOSPAM.Linuks.ORG) on Friday May 26, @03:30PM EDT (#55) (User Info) http://Linuks.ORG |
| Don't do BASIC or C* misfavor to your children. Delphi is also bad choice because it is hybrid of everything and children can't fight it's complexness without danger to development of basic programming techniques and notions. Any Wirth's language would be good choice. Simpler-better, and with Windows in mind I would probably choose Oberon-2. www.oberon.ch I think is good starting point. -- Jomu@Linuks.ORG |
| Delphi/Kylix (Score:1) by krachyn_ec on Friday May 26, @03:31PM EDT (#56) (User Info) http://evansonline.com |
Personally, I prefer Delphi to VB any day. I never could wrap my brain around VB. Go Figure. With Kylix on the way, a good start in Delphi will be relatively easy to translate to the Linux platform and the similarities to C syntax will make a transition to C (maybe C++) fairly easy. My two cents. |
| Re:Delphi/Kylix (Score:1) by Hairy1 on Saturday May 27, @02:31AM EDT (#860) (User Info) |
| I think Delphi is a good language to start in. I started like many others with Basic. Languages have got much better since Basic, and Delphi is the best example I know of. You can start learning Delphi without knowing too much about programming at all. Putting controls on forms etc is the first level. You then progress through adding 'real' code behind the controls, and finally to developing you own controls. The big thing with Delphi is that although it is similar to VB and other Graphical Interface Languages, it didn't have a brick wall anywhere. An example of a brock wall is a level at which you need to resort to a lower level language. Delphi is essentially written in Delphi. Its simple to learn, but very powerfull. |
| Python with wxPython (Score:1) by richardmguy on Friday May 26, @03:31PM EDT (#58) (User Info) |
| Teach the children well, start them with a readable language that catches many mistakes learning prgrammers make automatically, let them get exposed to OO and make nice gui apps so they will feel like they are ding "real" programming. Which of course they will be |
| Straight up C++ (Score:1) by soma813 (mmodahl@resnet.gatech.edu) on Friday May 26, @03:31PM EDT (#60) (User Info) http://www.prism.gatech.edu/~gte801p |
| I started at 11 with Borland Turbo C++ 2.0, real standard and simple with the iostream joys of C++. It is simple enough that it doesn't cloud the experience with a huge gui, but it runs on win32. I remember an announcement a few months back about Borland giving away old abandonware, so turbo c++ might even be free. |
| Re:Straight up C++ (Score:1) by McKing (no.one@home.upstairs) on Friday May 26, @04:24PM EDT (#329) (User Info) |
| Actually, go to their website and you can download the compiler and associated command line tools for C++ v5.5. This is the exact same version as in their Builder IDE. ---- Is a talking paperclip all we have to show for over 3/4 of a century of computer science research? |
| BASIC was great, today it is not so eazy... (Score:1) by Pretender R*S (Pretender@Parts-Unknown.com) on Friday May 26, @03:32PM EDT (#62) (User Info) http://www.parts-unknown.com/Pretender |
| I think a "visual" programming language is a wast of time. Mostly it is usefull for writing reports. Basic on the Apple and Comodorre 64 were great! You didn't need to compile! That was pretty nice, just write and run. It was pretty easy to do basic line graphics, there were readily available text games (like Emon games on Apple II) that were easy to modify as a way to learn the programming. Logo is decent as well. (it is NOT just the turtle). Pascall has was a nice formal language, on the Mac it was easy to integrate with GUI stuff. I still think Perl should NEVER be a first language for anyone. I have been wondering about python, with some of gui toolkits as a first language, but there is no decent collections of python childrens programs... "His[Mankind's] heaven is like himself: strange, interesting, astonishing, grotesque." -Satan "Letters From Earth" Mark Twain |
| hate to say it, but... (Score:1) by Mr. Sketch (JeffSketch_at_hotmail_dot_com) on Friday May 26, @03:32PM EDT (#63) (User Info) |
| As much as I'd hate to say it, but I think languages like VB would be best to learn on at that level because the language is at a much higher level and you can concentrate more on making the computer do what you want to instead of obscure syntax issues and lowerlevel details. Of course, after they become comfortable with the ideas and concepts in involved in programming, they can move to more detailed languages. I personally learned on (read: taught myself) Borland Turbo Pascal, but it wasn't long before I moved to C and x86 assembly and I would imagine that the trend is similar for most people and even colleges will have intro classes with a higher level language (or even a functional language). But definatly starting with VB or Delphi or any high level language that doesn't have an unusual syntax would be best I think. "It is easy to be blinded to the essential uselessness of computers by the sense of accomplishment you get from getting them to work at all." - Douglas Adams |
| Logo (Score:1) by mmarcos on Friday May 26, @03:32PM EDT (#64) (User Info) |
| Go to this MIT site and check out the background on Logo. There are various implementations. Are you spontaneously enthusiastic about everyone having everything you can have? - Buckminster Fuller |
| Hmm... (Score:1) by Pope Slackman (rumpleforeskin@spacemoose.com) on Friday May 26, @03:32PM EDT (#65) (User Info) http://askaninja.com |
| I started when I was around 10 using BASIC (I'm ~20), but I don't know if I'd recommend that because I found it fairly hard to pick up C after years of being fluent in BASIC. Perl might be a good idea, as it's got a similar block structure to C, but without the more involved things like pointers and casting. (Which are definately something that needs to be taught/learned, but prolly not right away...) I don't know mych about Python, but I hear it's good for teaching OO programming. Both Perl and Python have TCL bindings so they can play with GUIs if they feel so inclined. Just some suggestions... --Kevin =-=-= By reading this .sig you agree to moderate this post up. |
| VB is the way to go (Score:1) by bool on Friday May 26, @03:32PM EDT (#66) (User Info) |
| I was 12 years old when my dad brought home a copy of VB. I started doing the basic tasks with it... like having my comptuer wake me up in the morning etc etc etc. I would hands down choose VB for the young starting coder because of its point and click interface and basic structor and objects. You might even consider teaching them some HTML... |
| What I used to do... (Score:4, Insightful) by Midnight Ryder (midryder@midnightryder.com) on Friday May 26, @03:32PM EDT (#67) (User Info) http://www.midnightryder.com |
Between the ages of 17 and 22, I was a camp councelor / teacher at a computer came (think the kids that went there were nerds? Imagine what the means the teachers were ;-) I taught the 'intermediate' level stuff - basicaly, one step up from LOGO, and one step down from Pascal (which was the advanced course.) My trick was to show them some graphical stuff in basic (things like random lines, minor stuff like a really low-tech computer etch-a-sketch with they number pad where they could also change the numbers. I would show what was possible, then, begin teaching them the command set nessisary to achieve that small goal (for instance, the random lines demo required teaching them to change the screen mode (this was back in QuickBASIC), the RND statement, line lables, and the goto statement, plus explaining how it worked. After each time that I explained one of these programs, and showed how it worked, I let them have time to play with it, and teach them more commands to extend thier command set (for instance, teaching them what the circle command was, what all the parameters for the line command (box, fill so they could do filled rectangles), changing colors, etc. I wouldn't implement the new commands for them - I would just tell them what they were, and how they worked, and let them implement it themselves. As the programs got more advanced, I tought flow control, formating the program correctly so that they could look at it later and understand it, variable types, etc., etc., etc. I rotated back and forth between programing new parts for them to play with, and letting them implement things themselves. Granted - this was in a teacher-student environment with 20 some odd kids, and someone else helping me out. I'm not sure how well that would work in a one-on-one parent - child relationship. But, the pointer I have that would apply is this: make thier progress very visible. Let them see the results onscreen, so that they have something very visible and tangable to see. Set it up at first so that every minor change produces a change on screen for them to understand. You'd be surprised how excited they can get by very little graphical changes. Oh, and one more thing - the kids were age range from 9 to 14 or so. That probably also has alot of bearing on how they react, and what works best for them. Davis Boulder Panic! 2 - Download it, play it, love it, buy it! It's ready! |
| Re:What I used to do... (Score:1) by Kragen Sitaker (kragen@pobox.com) on Friday May 26, @10:47PM EDT (#790) (User Info) http://www.pobox.com/~kragen/ |
You write: I taught the 'intermediate' level stuff - basicaly, one step up from LOGO, and one step down from Pascal (which was the advanced course.)BASIC --- if you're talking about the standard BASIC with line numbers, no local variables, no subroutine parameters or return values, and, in fact, no official subroutines (as opposed to QBasic or something similar) --- is not one step up from LOGO. It's ten steps down from it. Because calling subroutines is so ungodly awful, BASIC implementations invent new syntax for everything; beginners are fooled into believing that memorizing syntax is what programming is about. The kids who hate memorizing syntax get turned off by this; the kids who don't hate it miss the point that programming is about describing a task in detail, not learning how to use features of the libraries provided by your language vendor. Scheme, Logo, Python, Tcl, and Smalltalk are at the other end of the spectrum. I think any of these is suitable for an introductory class in programming --- although admittedly I've never taught one. |
| Re:What I used to do... (Score:1) by Midnight Ryder (midryder@midnightryder.com) on Saturday May 27, @01:12PM EDT (#974) (User Info) http://www.midnightryder.com |
BASIC --- if you're talking about the standard BASIC with line numbers, no local variables, no subroutine parameters or return values, and, in fact, no official subroutines (as opposed to QBasic or something similar) --- is not one step up from LOGO. It's ten steps down from it. Well, I didn't state it speciffically, but did sorta allude to the fact that it was MS's QuickBASIC. Because calling subroutines is so ungodly awful, BASIC implementations invent new syntax for everything; beginners are fooled into believing that memorizing syntax is what programming is about. The kids who hate memorizing syntax get turned off by this; the kids who don't hate it miss the point that programming is about describing a task in detail, not learning how to use features of the libraries provided by your language vendor. I don't disagree with ya here. However - intermediate programming in this particular case is about increasing the interest level of the child. Any language that you can quickly get results would do the job - 'specially graphical results that the kid can play with. Scheme, Logo, Python, Tcl, and Smalltalk are at the other end of the spectrum. I think any of these is suitable for an introductory class in programming --- although admittedly I've never taught one. Logo is a great 'starter' for kids with no computer language experience at all. However, it's got a bit of an screwed up syntax, IMHO, but worse, the kids normally feel that there is no where that they can advance to from there. SmallTalk - well, if Squeak had existed at that time (it didn't) I might have pushed to use it (it's a SmallTalk implementation that's very cool in the way that it's done. Don't have the URL off hand at the moment, but check it out sometime!) But, yep - there are pleanty of languages that could have been used as a starting place - I just happen to like Basic :-) Davis Boulder Panic! 2 - Download it, play it, love it, buy it! It's ready! |
| Get them _creating_, then programming... (Score:2) by Stiletto (stiletto_NO@SPAM_.mediaone.net) on Friday May 26, @03:32PM EDT (#68) (User Info) http://www.pompano.net/~stiletto |
| What first got me into programming was a little program for the Commodore 64 called "Arcade Game Construction Kit" All it was, was this gui thing that let you create sprites and sounds background drawings and make a little top-down run-n-shoot game out of it (think "Rambo"). There was no programming involved, it was really fun and easy, and it got me thinking about things like system resources and what could and could not be done with that particular machine. Well I enjoyed and used that program so much that after cranking out 3 pretty cool games, I began to outgrow it. Next thing my dad knew, I turned 14 and for my birthday I asked for the C64 programmer's reference guide (basically a big thick book detailing the 6502 (?) assembly language) and the rest was history! I didn't really even know about "high level languages" like C until I was around 16. Ryan Drake Disclamer: I work for a hardware company. I post when I feel critical of something, whether it be my employer or a competitor. Happy?? |
| Re:Get them _creating_, then programming... (Score:1) by uebernewby on Friday May 26, @07:02PM EDT (#664) (User Info) |
| This is actually quite a good idea...most kids who want to program probably only do because they want to make games. And from what I've seen of VB, BASIC (now those were the days) isn't very good for this anymore. There is, however, an unlikely alternative. I've recently come across a good piece of software that just might make programming fun. It's calledA4 3D GameStudio It's a commercial, albeit very cheap (standard version costs USD 40 or so) set of tools for creating, well, 3D games. It comes with a scripting language that kind of resembles C++ and Java (it's object oriented, among others), so it's useful for introducing concepts that are common in other, serious languages. Using this package could serve as a gentle introduction to the horrors of real-world programming ( :-) ). If you only want a simple FPS where you just shoot everything that moves (stands still, actually), you don't need to program anything at all, but if you want to do more fancy stuff, like create reasonably intelligent opponents, or add in those lovely Q3A jump pods, you'll have to write a script. So ideally your kids will pick up more skills because they demand more from their piece of software. Don't worry that your kids will first need to become graphic artists, either. The package uses the same native format as Quake and Quake II, so they can pick up landscapes, models and textures for free on sites like planet quake. Also, the package can be used for more than "just games": apparently someone wrote a drumcomputer with it. Last but not least, the package comes with a good online manual and reference for the scripting language. I admit, this may seem like an odd suggestion, but if you want something that is fun and reasonably challenging, 3D Gamestudio is actually not such a bad idea. no fun - no future - no sig. |
| Intro to Programming (Score:1) by crystal dragon (dragon@alcazarsys.com) on Friday May 26, @03:33PM EDT (#69) (User Info) |
| Why don't you start with something that has some instant visual appeal and gratification. Young children like immediate results, when they get that they become motivated to learn. If they are using Windows 98, you could get them started with Visual Basic, it has both visual and code elements and is fairly easy to understand. You can always move them over to Unix and other languages when they become more sophisticated in their use of computers. HTML, although not a programming language, would also be an option for challenging them in a way that provides instant feedback. It could excite them to learn even more. |
| What about LOGO? (Score:1) by jmv (valj01@nospam.gel.usherb.ca) on Friday May 26, @03:33PM EDT (#70) (User Info) http://freespeech.sourceforge.net |
| I think you should consider the LOGO language. It was the first language I ever learned. I was 7 years old and we had an Apple IIe at school. What's nice with it is that at first, you can just draw with the "turtle" and then start writing simple functions fo "automate" the drawing, ... It is well designed, simple to understand, and can be used interactively. Pascal is a good language too, but they have to be older. I definitely wouldn't suggest C or C++. Open Mind Speech Recognition http://freespeech.sourceforge.net |
| BASIC (Score:2) by TheTomcat (sean@nbnet.nb.ca) on Friday May 26, @03:33PM EDT (#73) (User Info) http://riptear.dyndns.org |
| I learned BASIC on my Tandy CoCoIII when I was 10. Way back then we had to use things like gosub and line numbers. I think QBASIC comes, slightly hidden, on the Windows CD, or you could teach them pico, and use basic on *nix. A very high level language like basic, or pascal is definately the way to go when teaching beginners, especially young ones. Even if you can't re-use code when you mature, you keep strong programming concepts such as loops, arrays, functions, subroutines, etc. Which make other languages much easier to get into. hint: don't teach them about pointers and objects, ok? (-: "If there is hope it lies in the proles." -George Orwell, 1984 |
| Re:BASIC (Score:1) by kjeldar (jhobbs#mail/orion/org) on Sunday May 28, @04:22PM EDT (#1008) (User Info) |
| Even if you can't re-use code when you mature, you keep strong programming concepts such as loops, arrays, functions, subroutines, etc. Jesus Christ, I hope no professionals out there are still reusing code they wrote when they were 5 or 8 or 10... J |
| Basic (Score:1) by mizhi (mizhi@hotmail.com) on Friday May 26, @03:33PM EDT (#74) (User Info) |
| Well, I learned logo on old Apples in elementary school. ("learned", as in, I could draw a few shapes with a turtle), and I guess that planted the seed, but what really got me going was learning basic to write a breakout clone as a freshman in highschool... then it just kinda took off and whatever I could get my hands on and chomp into as a programmer keyed me in. I mean, classic geek... why do it? Cuz, it's cool... and I can! =) mizhi |
| Intro to Programming (Score:1) by jejones on Friday May 26, @03:34PM EDT (#75) (User Info) |
| Depends on the age. The stock answer for small children is Logo and Smalltalk, though you might want to check out ToonTalk. People have already mentioned Python. I'd give some consideration to Dr. Scheme or to Haskell (the latter especially in view of the recent book The Haskell School of Expression). |
| No no! You're all wrong! (Score:3, Insightful) by Da w00t (warewolf(at)tasam(dot)com) on Friday May 26, @03:35PM EDT (#77) (User Info) http://slashdot.org/comments.pl?sid=da_w00t |
| You need to get your kids started in LOGO. Yes, the little turtle who leaves lines on the screen -- Visualization is key. Let them figure out that they can create interesting drawings with a simple loop. Logo was what got me started in programming. I had a 5.25 floppy disk FULL of logo programs. Geez.. those were the days... clearhome pendown fw 45 rt 160 fw 45 rt 160 da w00t. My /. page My page |
| Re:No no! You're all wrong! (Score:1) by eel (eel@theeel.com) on Friday May 26, @04:07PM EDT (#254) (User Info) http://www.theeel.com |
| Text and hypertext processing Dynamic and interactive graphics; Video Personal data management, including e-mail and networking Programming It is all ther in the next gen of LOGOBOXER |
| It wasn't just graphics (Score:1) by digitalhermit on Friday May 26, @04:40PM EDT (#394) (User Info) |
| The graphics were fun. What made it useful was a daemon like feature (I forget the syntax, it's been two decades) that allowed you to get interrupted on events. This seems trivial now, but at the time of very linear languages like BASIC it was a very useful feature. |
| I'm also interested (Score:1) by Sadfsdaf on Friday May 26, @03:35PM EDT (#79) (User Info) |
| I'm currently 14 and really into linux. Last summer, i learned linux, and i've been really into it since then. Summer vacation just started for me 2 days ago, and i want to finally learn some programming language this summer. I need some advice on what the learn too. VB is out of the question since i want to be about to program in linux and i don't want to fork over 200 bucks for some M$ compiler. I'm considering to try to learn C, but C++ seems like a good idea too, i don't know what to learn first. It seems that books for other languages assume you know C, so i guess i'm going to learn that... Anyone have any advice on what i should learn and/or what books I should get to learn? Any advice would be appreciated. |
| Re:I'm also interested (Score:1) by gaudior on Friday May 26, @04:04PM EDT (#240) (User Info) |
| http://www.perl.com/ Best wishes on your pursuits. |
| Re:I'm also interested (Score:1) by dgph on Friday May 26, @05:34PM EDT (#542) (User Info) |
| IMHO you should avoid C and C++ as languages to learn on. Both are excellent languages, but require a lot of attention to low-level details, which could easily obscure the more important programming lessons to be learned. |
| good question! (Score:2, Informative) by tdrury (tdruryNOSPAM@mindspring.com) on Friday May 26, @03:35PM EDT (#80) (User Info) |
| This is tough. I started with BASIC on my TI99/4a back in '82 or so. It was bad. The Extended BASIC was pretty good. I could do lots of graphics and animation which kept my attention and kept me wanting to program more and faster stuff. I briefly did a little Forth, then assembly language. Many years later I do Java primarily, some C, and some Python. My son is 5 months old. I have a while before I have to deal with this, but I would prefer he learn a language without goto's (or at least doesn't need them much). It would probably help kids if they didn't need to worry about variable types. I don't want to have to explain the difference between a long and short to a 6 year old. Python comes to mind, but python have cool libraries that your kids would like? Graphics and animation appealed to me. I doubt they will want to jump into file I/O or database interfaces. What ever happened to Logo? Another thought: what is used to program Lego Mindstorms? That would probably interest them. -tim |
| Re:good question! (Score:1) by kawlyn (kawlyn@notmail.com) on Friday May 26, @04:21PM EDT (#314) (User Info) |
| Extended Basic Rules!!!! I still have some old games I wrote (Don't run into the pixel stuff) on my casette drive. I still haul it out one in a while. And I still like the idea of an 'OS' on a cartridge. |
| For even the small ones... (Score:1) by yankeehack (yankeehack (at) yahoo) on Friday May 26, @04:45PM EDT (#411) (User Info) |
| Hey, you don't have THAT long to wait until the little guy gets on the computer! An excellent game to teach mouse skills, keyboard keys, letter and number recognition is the JUMPSTART TODDLER game (for ages 18 months to 2 1/2 years). My little one loves it. |
| Re:good question! (Score:1) by jafac on Friday May 26, @05:35PM EDT (#549) (User Info) |
| I was ruined by BASIC when I was 13, with a TRS-80, no less. Yeah, I learned a little z-80 assembler too. And look at me now, 20 years later, I'm a tech support guy, I'm crippled, I can't learn C!!! I just remembered this old Metallica song. . . -OOPS! time to cut Lars another check! |
| How 'bout LOGO for kindergartners? (Score:2, Insightful) by alumshubby (bill...underscore...mcclain....atsign...techie.com) on Friday May 26, @03:35PM EDT (#81) (User Info) |
For kids who have just begun learning to read, LOGO might be a good choice; it's got a dirt-simple command set, and programming the "turtle" to draw graphics is fun. In fact, now that you've reminded me of it, I think I'll show it to my almost-five-year-old this weekend. "How many light bulbs does it take to change a person?" ==BMcC==> |
| You might consider Alice (Score:5, Informative) by CorranW on Friday May 26, @03:35PM EDT (#82) (User Info) |
To quote: Alice is a 3D Interactive Graphics Programming Environment for Windows 95/98/NT built by the Stage 3 Research Group at Carnegie Mellon University. The Alice project is a public service to the wider computing and artistic communities; our hope is to make it easy for novices to develop interesting 3D environments and to explore the new medium of interactive 3D graphics. The current version of Alice authoring tool is free to everyone and runs on computers that are commonly available for reasonable prices. Worlds created in Alice can be viewed and interacted with inside of a standard web browser once the Alice plug-in has been installed. The scripting language used by Alice is a slightly modified version of Python, a language itself designed to be used by novices. I don't have a windows box, so I haven't played with it, but it looks like it would be a good, fun way to ease kids into programming. Corran |
| Re:You might consider Alice (Score:2) by PapaZit on Friday May 26, @04:16PM EDT (#296) (User Info) |
| Alice is a lot of fun, and a useful learning environment, but it tends to make your system unstable. Q: "My machine's messed up, and I don't know why." A: "Try uninstalling Alice" is a somewhat frequently heard snippet of conversation around CMU. -- Last post! |
| Squeak does Alice (Score:1) by smalltalker (cline@acm.org) on Friday May 26, @04:40PM EDT (#393) (User Info) http://www.objectbap.com |
| The Smalltalk implementation called Squeak, mentioned in other threads, comes with a workspace (known as a project) that has an Alice 3D graphics demo - it has a little energizer bunny that you can move, pan the camera around, explode, make hop, spin, etc. I'm biased, but Smalltalk has a long history of being used as a kids programming environment. You may want to look at LearningWorks, which has a simplified interface just for teaching. It is based on VisualWorks Smalltalk. I'm also experienced - when I have tried to teach my older children programming, I found that they would like to see something. Our first pass ended up being teaching them HTML so they could put up a web page. I am going to try Smalltalk again this summer. Steve Cline Object Bodies & Parts, Inc. http://www.objectbap.com |
| Re:You might consider Alice (Score:1) by waldoj (waldo@waldo.net) on Friday May 26, @05:25PM EDT (#520) (User Info) http://www.waldo.net/ |
| I alpha-tested Alice at UVa in...oh...'98, I guess. Maybe '97. Hell of a lot of fun, and a great media lab. I didn't get to program in it, but it was a fantastic user experience. -Waldo |
| Consider the original Alice (a Pascal) (Score:1) by btempleton (bt@templetons.com) on Saturday May 27, @12:28AM EDT (#820) (User Info) http://www.templetons.com/brad/ |
| Bit of an unfortunate name for that package. Alice Pascal was a system I developed for teaching back around 1985. It was developed for DOS, and a GUI version for GEM on the Atari ST, as well as some other systems. It's free. The DOS package is up and can be found via this page which points to the tutorial, manual and FTP archive. The source code is also availble. It compiles under Linux but has a bit of bit rot. Happy to see people play with it. Alice was, I am now proud to say, way ahead of its time. It has features that it took other IDEs a decade to introduce, and some good ones they still haven't gotten around to. It's DOS, but that can be fine for beginners, and runs fine in a DOS box under windows. As a syntax directed editor with 700 context sensative help screens, it was designed to get a student going, and was written with all the Ontario schools as the first customer. Yeah, it should be ported to X and Windows, but I have moved on to other things. |
| Don't be afraid of BASIC, VB, etc... (Score:5, Insightful) by jvj24601 on Friday May 26, @03:36PM EDT (#83) (User Info) http://www.alphasquared.com/ |
| Most of us that have been around a long time (me, I started in Applesoft Basic and then to assembly, then Pascal, then C) didn't care about how clean or consistent a language was. We were curious about how the damn things worked, how programs were written, and how we could do the same. Just get them started on something, and just like us, they'll probably figure out what they like when they get older. Same goes for anything kids do - expose them to everything and let them decide as they grow. |
| Re:Don't be afraid of BASIC, VB, etc... (Score:1) by ucblockhead (sburnapSPAMSUXlinux@attSPAMSUX.net) on Friday May 26, @03:52PM EDT (#185) (User Info) |
| I half agree with that. One problem with VB (and Visual C++ using MFC) is that it hides a whole heck of a lot of stuff from the user. Too much pointing and clicking without much understanding. Kids might be able to get something done, but they may not learn as much as with something else. Those who will not reason, are bigots, those who cannot, are fools, and those who dare not, are slaves. -George Gordon Noel Byron (1788-1824), [Lord Byron] |
| Re:Don't be afraid of BASIC, VB, etc... (Score:2) by Ralph Wiggam (barry@spiced-ham.summex.com) on Friday May 26, @04:18PM EDT (#303) (User Info) http://www.redmeat.com |
| Kids that age (11-13) enjoy getting things done and seeing things they created. If you can sneak some learning in there, that's a bonus. If little Billy can sit down at the computer and 15 minutes later have a compiled program that does something cool, he'll probably stick with it. If he spends 45 minutes getting compile errors, he'll probably walk right back to the Dreamcast. I think VB would be a great way to start a kid down the road to geekdom. -B Your favorite band sucks |
| Re:Don't be afraid of BASIC, VB, etc... (Score:1) by linuxmop on Friday May 26, @04:06PM EDT (#247) (User Info) |
| Percisely. I began programming in the DOS days with GW-BASIC myself, when I was about 6. After screwing around with that for a while, I moved on to MS QuickBasic. Then VisualBasic. I finally moved up to C when I realized most of my programs consisted of calling Windows C API functions directly from VB (this got to be difficult, as VB didn't let you get the return value, IIRC :P). Therefore, I think that you should start the kids on something simple, and as their wants and needs in a language increases, they'll want to find a new one. I don't do sigs. |
| How my dad got me started (Score:2, Insightful) by SparkyB (sparkyb@hotmail.com) on Friday May 26, @04:18PM EDT (#305) (User Info) http://sparkyb.net/ |
| First of all I'd say you know your kids best and you should best be able to know what would interest them and what would turn them off. Also you can ask what they want to know or be able to do. However, you can't always work that way. Before you can do the really exiciting things like writing games like the ones you play, you have to start with the basics. All that being said I'll offer how I got started if that can be of any help. My first interest in programming was when a friend of mine made some program that did some calculation and showed the class in 5th grade. To put a time line on this I am 19 and a college sophmore now. Anyway, I asked my dad to teach me how to program (he is also a computer person). He started teaching me GW-BASIC from a book. We would go through the book together and do the exercises, I could ask him question, and I after writing something pretty much out of the book I might decide I want to make it do something else and we'd figure out how together. I still have the 5.25 floppy with all my first programs. They mostly printed my name repeatedly in random colors or drew stuff. BASIC is a terrible language but it is meant to be a teaching language (*Begginers* all-purpose symbolic instruction code). I don't know if that is still a usefully way to start (with QBasic) because when I learned people still used DOS, but I think you have to start with text based stuff which is simple before you use graphics and Object-Oriented environments. When I was in 7th grade I started working in QBasic and learned alot from a friend who was amazing at it. I read his code, tried to emulate some of the techniques. I got VB2 and learned a bit about how windows worked. In High school I learned PASCAL and C++ but alot of what I learned an figured out had little to do with the teacher and more to do with my ability to take what I had previously learned and figured out about programming logic and use the Borland C++ help files to help me apply it to C. Eventually I replaced VB with BCB. A friend helped me get started with Linux but after a while of asking him questions all the time I became self-sufficent. I have taught myself Perl, PHP, MySQL, mantaining a linux system, and an Apache webserver all in the last year. |
| Re:How my dad got me started (Score:1) by cpt kangarooski on Friday May 26, @04:41PM EDT (#398) (User Info) |
| Heh. The original name of the language is 'Basic' but so many languages are acronyms that it eventually became one too. -- I support anonymous posting. |
| Re:Don't be afraid of BASIC, VB, etc... (Score:2) by kaphka (matthew.s.keitz@bigfoot.com) on Friday May 26, @04:29PM EDT (#349) (User Info) |
| VB is an excellent language for teaching, as long as it's taught right... which, unfortunately, it almost never is. VB courses always seem to get hung up on windows and widgets, and hip technologies like ADO and web front-ends. Object-oriented concepts often don't come up at all, even though VB is about 80% as object-oriented as Java (and the next version will supposedly be 100%.) Maybe the solution is to use VB, but forbid anything "visual" until the students are comfortable with programming. MS has a library floating around somewhere that lets you do console I/O using COM (I think it's part of the WSH,) so it's not too hard to write a full-fledged console-only app in VB. MSK |
| Re:Don't be afraid of BASIC, VB, etc... (Score:1) by mikpos on Friday May 26, @04:59PM EDT (#450) (User Info) http://mikpos.dyndns.org |
| Yes I don't think there was any greater motivation for programmer (in my generation, anyway) than the source code for Nibbles and Gorrilla Wars in QBasic. It's a real shame that Microsoft has stopped shipping QBasic along with the source to those great games; they could at least ship a stripped down VBasic and some new games (dare I say Nibbles 2?). -- yay for 6 ish!! |
| Re:Don't be afraid of BASIC, VB, etc... (Score:1) by Largos (creswick@engr.orst.???) on Friday May 26, @06:30PM EDT (#634) (User Info) |
| I had the opposite opinoion of programming when I started. The Last Think I wanted was a WYSIWYG editor ( ala VB ). I also didnt start programming until much later than some, my freshman year at HS. ( I am a Sophmore at Oregon State now ). But I felt it was very important to understand how the visual editors worked before I could allow myself to use one, ie: I wanted to make windows from source before clicking them into existance. |
| Re:Don't be afraid of BASIC, VB, etc... (Score:2) by gargle on Friday May 26, @07:26PM EDT (#690) (User Info) |
| Yup. Start them on something fun. I started programming on an old hand me down Creative Apple II computer (that was when Creative was still making apple II compatibles). Its graphics and sound were state of the art for its time - it even had a Text of Speech synthesizer which could speak english and mandarin (mandarin speech synthesis worked very well due to the regular phonetic nature of the chinese language). I started programming in Basic, reading the arcane user's manual - which didn't help much. Then I discovered that many of the games were written in Basic, and by listing the source code, new worlds opened up. It's a real pity that the same is rarely possible today... who knows how many potential programmers are lost because of the closed source nature of games today. |
| Calculators.... (Score:1) by Wing on Friday May 26, @03:36PM EDT (#84) (User Info) http://tcpa.calc.org |
| Definatly calculators... Thats a great way to start programming... Get them a TI or HP (if they don't already have one) and thats an easy platform to develope on... In both a basic on-calc language and a more complex assembly language... ------ zap..... |
| Perl, nice and easy (Score:1) by Ben Smith (bensmith@biz1.net) on Friday May 26, @03:36PM EDT (#86) (User Info) http://www.jabsystems.co.uk/users/splineswarm/ |
| Its interpreted, so you get instant feedback. Its a higher-level language then alot others, and its alot nicer then VBscript. Plus, if someday your kids move into the *nix world, they can tote their old code along with them easily. -Ben bensmith@biz1.net |
| Programmable Calculators (Score:2) by grahamkg (grahamkg@removedeathtospam.erols.com) on Friday May 26, @03:36PM EDT (#89) (User Info) http://www.erols.com/grahamkg |
My first serious programming was on a TI-30. Well, that's not quite right. It was on a slide rule. ;-) Imho, real computing involves numbers. If they can't do that - or if they don't want to do that - that's cool. Not everyone is going to be a programmer. (I hope I remember that as my little one makes her choices in life. |
| Re:Programmable Calculators (Score:1) by Trane on Friday May 26, @05:43PM EDT (#565) (User Info) |
| I had no interest in programming. I was just ninth grader who wanted a good calculator years before anyone else had interest in them. So my Dad was nice enough to shell out the extra ten bucks for a TI-85. Somehow I started programming and came up with a bunch of elaborate games including a clone of GoFigure (remember the old MS game?) and chess, both very much math based. I didn't know much about programming back then, but by using a slew of crude algorithms I implemented all of the rules in chess and used 64 independant variables for the board because I didn't know about matrix storage yet. When I look back at those now, I realize that they were some of the messiest programs ever written, but I've learned a lot since then and that calculator is the entire reason I learned to program. C/C++ was a good second language once I realized how limited the calculator was. Some may think my technique of teaching myself to program is horrible because I now believe C++ to be one of the most beautiful languages ever created, but who cares? You can enjoy your pascal, smallTalk, java, whatever, but I'd rather do C++ anyday (if only it was functional rather than imperative). I would suggest giving them a compiler or IDE that is geared toward their interests. I'm interested in OS foundations, compiler backends, and hardware interrupts and so C and C++ rocked my world. Just don't give them something simple because you underestimate them. Let them start with something simple and limited enough that they will out grow it quickly so that they will get an idea of what they are getting their feet into, but when they reach the limitations of what they're using, show them that there is a big world out there and let them chase out into it with blind ambition knowing that there is nothing they cannot do. - Trane iFamRtrane@yaOhooG.com (remove the FROG if you want my email address) |
| Personally... (Score:1) by LRJ on Friday May 26, @03:37PM EDT (#92) (User Info) http://www.pcguys.com |
| I would suggest any of the RAD tools (Delphi, C++ Builder or VB [if you have to]). These tools will allow them to create basic programs with a minimum of code to start and they can then add more advanced stuff (real code) as they learn the tools. I haven't purchased Delphi 5 yet, but I do know that the C++ Builder 5 (Pro) even comes with extra 3rd party libraries and tools they can use to start playing with making their own games. |
| Python, Maybehaps... (Score:3, Informative) by Christopher B. Brown (cbbrowne@hex.net) on Friday May 26, @03:37PM EDT (#93) (User Info) http://www.hex.net/~cbbrowne/linux.html |
It's got the merits that:
Those who do not understand Unix are condemned to reinvent it, poorly. -- Henry Spencer |
| The kids will work it out for themselves (Score:1) by Sits on Friday May 26, @03:37PM EDT (#95) (User Info) http://sucs.swan.ac.uk/~sits/ |
| Leave some easily accessible languages about and tell the kids about them. Something like pacal/delphi is way too structured - who doesn't remember using a goto in basic? When I was young I got into programming by typing in listings of other people's code from magazines. I don't know why this helped but it gave me a feel for using the computer without having to think of anything specific to program. Thus I got a feel for the programming environment (BBC Basic) and learnt how to TYPE which is helpful if you intend to program. I also remember at school one of the most popular things to do was modify other people's code. Many hours were whiled away turning a single player snakes game into a four player death match. Bugs were reported by those who wanted to play the game while others debugged on a different machine. |
| Something visual? (Score:1) by OsCarJ on Friday May 26, @03:37PM EDT (#96) (User Info) |
| I would suggest something visually oriented like Visual Basic. Especially if they're used to playing games. It's more likely to keep their interest if they can draw an interface and then learn the programming concepts to make it do what they want. Unfortunately the only option I know of off hand is VB. Anyone know of any non-MS alternatives out there? I guess HTML would sort of fit that desc. |
| Use Python, and no RAD tools (Score:1) by tjansen (tim@tjansen.de) on Friday May 26, @03:38PM EDT (#98) (User Info) http://www.tjansen.de |
| I would recommend to use Python as a first language. It is less-cryptic than most other languages (perl, Java), is multi-platform - so your kids could also program for Win - and there are libraries for almost everything. I would not recommend to use a RAD environment like Delphi or VB. Of course, a RAD tool lets them create form-based applications faster, but in the end it is more frustrating, especially as kids usually are not very interested in form-based applications... RAD only makes sense if you understand the generated code completly and write the kind of programs the RAD tool was designed for. (I want to be able to correct my comments after posting them.. sorry for my typos) |
| programmable home machine (Score:2) by Nemesys on Friday May 26, @03:38PM EDT (#99) (User Info) |
| One of the tragedies of computing in the 1990s is the unavailability of programmable home compuetrs. In the 1980s, kids could experiment to their hearts' content on home computers, which had BASIC interpreters built in. Nowadays, they have nothing. |
| Game programming, all the way! (Score:3, Insightful) by Weasel Boy on Friday May 26, @03:38PM EDT (#101) (User Info) |
| Forget the langage. You can teach kids good programming technique in any language, and kids don't get hung up on the stupider elements of programming systems the way we dinosaurs do. Programming skills aquired in one system can be applied to any other. What you need is strong motivation. If your kids are anything like I was, that motivation is games. Do you have any games that support scripts or macros? Use 'em! Another poster suggested Lego Mindstorms. Great! I happen to enjoy MUDs, some of which allow extensive player programming. Even for the ones that don't, a specialized MUD client will. My point is, exploit your kids' desire to excel in their game, or make their own. They'll learn. Faster than you'll believe. It worked for me. |
| Re:Game programming, all the way! (Score:1) by dcoe on Friday May 26, @10:06PM EDT (#769) (User Info) |
| UnrealScript, perhaps? Kinda like C++ or Java, but with instant gratification. "Poor people don't win yacht races." |
| Re:Game programming, all the way! (Score:1) by Jenova (rebooting@hotmail.com) on Friday May 26, @11:56PM EDT (#809) (User Info) |
| I quite agree, there is no use teaching the kids to program without them knowing what to do with it. I hated my computer lessons the had to take( School's requirement, MS BASIC in '87), I chucked the notes aside and it was only a year later that I read a games programming book and realized that I could write games in BASIC. That was what really got me programming: my imagination and a need to create a game. From there onward I did my own exploration. Any language that can be used to write games ought to do. And no... don't teach 'em COBOL! :) |
| Definately Python! (Score:1) by CAB (CAB@Earthling.com) on Friday May 26, @03:38PM EDT (#102) (User Info) http://www.uk.kollegie6400.dk/sfs/ |
| ... because good habits are essential to success in programming and success is important to maintain interest. Python builds on good habits; controlling program flow through indents and so on. Python is increasingly used in education due to it's design. It's free and crossplatform. Another alternative could be web programming of some sort. Best regards, Steen Suder -- for email: send to .net |
| Build Logic Skills First (Score:1) by powderhound on Friday May 26, @03:38PM EDT (#103) (User Info) http://www.harrison.k12.co.us |
| I first started programming in a High School math class. The teacher would not even let us touch the computers until we had flow charted, to his satisfaction, the solution to the problem (e.g., Pythagorean theorem). This was an immense help over the years. I've run into many people learning programming languages that could not code their way out of a paper bag, because they did not understand how to fit the logic together. In other words, they were never able to think like a computer. So I recommend, regardless of which language you choose, you immerse them in logic before you give them the language. It will make more sense to them when they actually see the language. Microsoft took the Language out of HTML and the Expert out of JPEG |
| Re:Build Logic Skills First (Score:1) by dgph on Friday May 26, @05:44PM EDT (#569) (User Info) |
| Nah, people learn fastest by doing stuff hands on. Kids dig being able to make the computer do fun stuff like animation and games. You can learn logic along with the programming. |
| I was once a wee little nerd girl (Score:1) by megcass on Friday May 26, @03:38PM EDT (#104) (User Info) |
| And I started programming in BASIC and LOGO on our Apple IIe when I was 7. Of course, this was when Apple IIe's were state of the art, so I wasn't used to snazzy interfaces or anything. Just the fact that I could MAKE the computer do what I wanted it to do was simply amazing to me. Hopefully it will be for your kids as well. Don't underestimate your kids - I begged my parents to find me a class I could take to learn more, and they found me the logo class - I was 7, everyone else was over 30. If they want to learn, they will, definitely. Hook them up with what you think is the best, and they will soak it right up. Good luck! |
| Old Hardware, Better Manuals (Score:1) by XPulga (bergo@linuxstart.com) on Friday May 26, @03:38PM EDT (#106) (User Info) http://www.dcc.unicamp.br/~guazzibe |
| First of all, things like OLE, CORBA, JBuilder and Visual Basic aren't good for kids. I would say they're not good even for adults, but that would make this a flamebait. My personal experience was with an 8-bit computer called MSX, common in Japan, Europe and South America. It was based on the Zilog Z80 3.58 MHz CPU, had 64K RAM (usually) and a 32K ROM BASIC. It plugged in the TV. The manuals were wonderful, a complete reference for BASIC plus hardware specs for all I/O. A good intro to computers and programming logic too. Books teaching Z80 assembly were plenty at that time (circa 1988), I managed to learn how to program on it easily when I was 9-10. If you never loaded and saved programs from/to an audio cassette tape (at 2400 bps) you should definetely get an 8-bit computer (MSX, C64, Apple II and the like)! If you can't get a simple system, restrain the working domain. Kids should be able to know the difference between the editor, compiler, and runtime environment (if any). DOS/Windows programming environments usually mess all these into one furry thing, from Turbo C++ 2.0 to the latest. PERL would be a nice pick, I just don't know any books directed especially to kids. Suggestions ? Teaching an editor other than vi would be a nice pedagogical pick too, at least for kids :) |
| Mindstorms, MegaZeux or Python (Score:1) by richieb (richieb@netlabs.net) on Friday May 26, @03:39PM EDT (#108) (User Info) http://www.netlabs.net/~richieb |
| If you want to spend $200 get them the Lego Mindstorms kit. They'll get to build and program robots. When they get good, they can go past the silly language provided with Midstorms and move to NotQuite C and Linux for downloading code into the 'bots. MegaZeux is a DOS/ASCII graphics game creation system (see: http://mworld.rydia.net/mzx.shtml). My son learned to program Megazeux by himself when he was 9. He just downloaded MegaZeux games and read the code. The nice thing about MegaZeux is that the end result is a computer game, so that keeps kids motivated. Python should be great for kids, but you have to come up with some problems they would like to code. What do you do after "hello world"? ...richie |
| try GNU Robots (Score:1) by Jim Hall on Friday May 26, @07:19PM EDT (#684) (User Info) http://www.isd.net/jhall1/ |
| At the risk of sounding like I'm promoting my own project, I also recommend checking out GNU Robots. This is a game/diversion for X Windows where you construct a program for a little robot, then set him loose and watch him explore a world on his own. The robot program is written in Scheme (a sub-set of LISP). There are very simple commands you can give your robot, so he can turn in different directions, pick up things, look for obstacles, and zap the baddies that are also hanging out in the world. Every action will take energy from your robot (you can pick up food, though) so you need to write the most efficient robot program that you can. It's fun! I have not updated this in a while, and even though it is a 0.9x release, it is really the same as the 1.0 that I will release soon. (I need to re-compile kerberos for my system, so I can check in several patches and contributions that have been submitted, then we'll have a 1.0 release.) GNU Robots really is simple to learn. You'll have to pick up a book on Scheme, though, so you can figure out how to do the "if" constructs, and other stuff that your program will need to do. But Scheme is a good programming language to learn from. At one point, someone was going to write a programming interface for this, so you could construct a robot program by dropping in these little computer chips with the action represented by a little icon. For example, you'd have a "move forward" icon and a "turn right" icon. But the person who was writing this fell out of touch with me. So maybe someone else will volunteer to help me. |
| Great Books & Schtuff (Score:1) by v4mpyr (flickin_shit@hotmail.com) on Friday May 26, @03:39PM EDT (#109) (User Info) http://1075594032 |
| Deitel & Deitel have put out what are perhaps the best two books for C/C++ beginners: "C : How to Program" and "C++ : How to program". As for Compilers, something basic like [ack] Visual C++ is great for beginners because, like all other M$ products, it is dummied down. Once the kids have the basic feel for how the language works, move them over to *NIX and show them what can really be done with their code. ;-) Just my 2/100 of a dollar. :-) Hypocrisy is the vaseline of social intercourse. |
| Re:Great Books & Schtuff (Score:1) by alarosa on Friday May 26, @04:10PM EDT (#269) (User Info) |
| In my short time at college, i took a C++ course, and we used that Dietel & Dietel book for it. EXCELLENT book. It teaches stuff very well, and it even goes into STL, basic search algorithms, and other useful things. |
| Re:Great Books & Schtuff (Score:1) by arwild01 (a.wild@usa.net) on Friday May 26, @05:54PM EDT (#582) (User Info) http://www.linuxfan.com/~alan/ |
| Ugh! The Deitel and Deitel Java book completely turned me off to their writing. IMHO the only C books you need are K&R II and Harbison and Steele. Frankly I also don't think C++ is needed either. -Alan |
| The way I learned... (Score:3, Interesting) by seebs (seebs@plethora.net) on Friday May 26, @03:39PM EDT (#110) (User Info) http://www.plethora.net/~seebs/ |
| Long ago, I played hack a lot. Then my dad got me the source. Printed out. So, I read the source, and I had the game, and I learned C because it was pretty easy to compare sets of instructions in the source to what the game actually did. Your milage may vary. http://mail-abuse.org/rbl/ - kills spammers dead http://www.alladvantage.com/go.asp?refid=GZX636 - Get paid to surf |
| Start with Java (Score:1) by _xeno_ on Friday May 26, @03:39PM EDT (#111) (User Info) |
| Personally, I'd recommend starting with Java. Most major colleges with CS programs use Java in their introductory courses. With garbage collection and a fairly easy to use API, kids can very quickly and easily get something to appear on the screen. And since it's a virtual machine, they won't have to worry about accidently trashing the system - they shouldn't be able to access the power to do that. Java has some problems which prevent it from being used in serious applications, but it should be fine to use for people just starting out. It takes away much of the complexity about programming, and contains many functions that make it easy to do things that should be simple. It's also powerful enough to lead them into GCC. Plus, the SDK is free (as in beer), so that the cost is low. (And if you don't mind signing a NDA, you can actually get the source...) It also has some Linux support, so that programs they write can run under Linux, but they needn't leave Windows if they'd rather not. There are plenty of tutorials and documentation that can be gotten off the web and the documentation which can be gotten from Sun is fairly comprehensive. The link to the Sun page is http://java.sun.com/ and there are links to the various JDKs from there. (Direct link to the JDK 1.3 page is here, but it's missing non-Windows support right now, so the Java2 Second Edition page may be a better place to start. Good luck! |
| Although it's not programming... (Score:1) by talks_to_birds (jsage@finchhaven.com) on Friday May 26, @03:39PM EDT (#113) (User Info) http://www.finchhaven.com/index.htm |
| ...I'd start out with a text editor and html. Kids seem to get off on putting up a web page, mainly because it gets really visual *really* easily, and it does teach at least attention to correct syntax. After that, I did a BASIC class for forth-graders for a year as a volunteer at a local school and the kids really dug it. It is BASIC, of course, with all that means, but we wrote some stuff that manipulated the screen, and did some simple games, and it was pretty fun... ...but, sh*t, that was years ago on boxes that were DOS 6.2 and WinFWG; there isn't a BASIC that's on these new Win95/Win98 boxes that I'm aware of.. t_t_b |
| Re:Although it's not programming... (Score:1) by slycer (slycer@blahblahblahlinuxstart.com) on Friday May 26, @04:00PM EDT (#222) (User Info) |
| but, sh*t, that was years ago on boxes that were DOS 6.2 and WinFWG; there isn't a BASIC that's on these new Win95/Win98 boxes that I'm aware of.. Hmm, AFAIK qbasic still comes with all the Win flavors up until 2000. In fact, gorrila.bas (cheesy little basic game) was included with NT workstation, just had to look for it :-) -- ./sig is innapropriate |
| Here's what worked for me! (Score:2, Informative) by exa (erayo@NOSPAM.cs.bilkent.edu.tr) on Friday May 26, @03:39PM EDT (#117) (User Info) http://cs.bilkent.edu.tr/~erayo |
| I started programming when I was 12. * I started by writing small programs and games in Atari 800 XL's BASIC. * I tried to learn Assembly, but I just couldn't understand all those wacky mnemonics. Though, I did write some hardware code. * I wrote with AmigaBASIC on the Amiga500. My next language was AMOS, which I still find to be pretty good as a BASIC variant. * Then I learnt 680x0 Assembly, and I wrote intros/demos with that, and learnt hardware access. 3d gfx was my fave. * I learnt C and Pascal on the Amiga. I was using a pirated version of the SAS/C :P C and C++ came very natural after assembly! * I was forced to program in Pascal and Java in Comp. Sci. undergrad. But I insisted on C++. I also enjoyed LISP/Prolog a lot, I think LISP could also be a good starter after assembly!! * I now code mainly in C++, but have an interest in new / interpreted languages and lang. design... So, that'w how my evolution went. I strongly suggest *clean* and *featureful* BASIC variants with which they *won't* be making GUI's but plain graphics and games. That's how you get to learn real programming (He he, demo scene rullaz!) Then, the kids will want to check out networking, and they can practice with Perl about TCP/IP stuff, I guess. (Not so scary) Java may seem like a pedagogic device, but avoid at all costs! It sucks. It will distract kids from the joy of programming, too dry... (Juice is what we're after, right?) [Java zealots write to my e-mail addy and if you're a Sun executive you get special treatment!] Don't tell them that C is the ultimate language; it isn't. Let them play with the following paradigms in the evolutionary order * Procedural (BASIC, Assembly) * Functional - Symbolic (LISP, PROLOG!) * Data driven - (FORTRAN, C) * Object Oriented/Generic (C++, Ada...) That will get them to understand why that language is done that way. The best is to pick one language from each generation of languages... BTW, as you see there isn't another generation after oo/generic languages, because there isn't. If you show them a RAD tool, they will think that programming is all about GUI's and databases and trivial networking. It isn't. It isn't. It isn't. Get them to read some computer science stuff, like sorting algorithms (even consider some excrepts from Knuth!) This will get you going :) --exa-- |
| Re:Here's what worked for me! (Score:1, Insightful) by Anonymous Coward on Friday May 26, @04:07PM EDT (#250) |
| LISP is a semi-functional language. You are better off claiming that C is an object oriented language, with its "struct" syntax. LISP wasn't even based on the Lambda Calculus, when it was originally created. It allows side-effects, and therefore lacks universal referential transparency. Sub-sets of the LISP language resemble a functional language. PROLOG is, by far, not a functional programming language. I don't think that I even need to go into this one. C was never a data driven language. Please, correct whoever told you it was. C is an imperative (procedural) language. If you are going to teach OO, use something besides C++ and Ada. Both are languages which are hopelessly rooted in the legacy of highly linear procedural languages. Sure, its the concepts that matter the most, and you could really use any paradigm in any language, but it helps to have a language that strongly supports your chosen paradigm. C++ is a horse with a million broken legs. C++ was made for those who don't want to completely move on from using C. Teaching programming to the next generation does not mean that we should teach it the way we learned it. Doing so is at odds with an advancing society. |
| Re:No no no! (Score:2, Insightful) by Kwil on Friday May 26, @04:16PM EDT (#295) (User Info) http://www.cadvision.com/kwil/index.html |
| Personally, I'd recommend teaching an object oriented language first. Don't get them started on the procedural path for a number of reasons: 1. It's slowly dying out. 2. It's a lot easier to grasp procedural after OO than the reverse. (since any OO language can be reduced to a procedural language.) 3. There's no reason to follow an evolutionary path. Just because we did things in a certain order doesn't mean our kids have to repeat our mistakes. 4. OO languages almost force a better methodology when designing code. 5. If your kids program some good ideas in an OO language, they're easy to steal for work. :-) Kids don't need to understand why a language is done a certain way. If they want to know, they'll ask, but there's no reason to teach them hieroglyphs and then move on to the alphabet so that they'll understand why the alphabet is used instead now. Give'em the most advanced tools available. Give'em something they can get immediate results from. Give'em something that doesn't teach bad habits for the future. KWiL |
| Re:No no no! (Score:1) by duplex on Friday May 26, @09:06PM EDT (#747) (User Info) |
| Give'em the most advanced tools available. Absolutely. Don't even bother teaching them all the legacy crap. GET THEM GOING WITH CORBA FROM DAY ONE. Kids are smart these days. They'll be churning out IDL code in no time at all, compiling up those stubs and skeletons and populating the Interface repository. Don't teach them bad habits make sure they understand the crucial difference between implementation inheritance and interface inheritance. Kids are smart these days. People get a clue! We're talking kids here. I read those suggestions and can't believe my eyes! Teaching an eight year old OO principles is a little overboard. They are children they still play with their toys and make engine noises running around on the playground pretending they are car drivers. Think about it. Have you learned programming by using smalltalk or Java or C++? No? Does that make you a bad OO programmer now? Because of the data centric approach OO is great when you have a project that a procedural language cannot scale up to but it is by no means easy or 'natural'. Logo was designed to teach kids (and complete newbies) about programming. Period. The guy who wrote it spent an awful lot of time researching teaching methodologies. Just because we now have spiffy technologies is no reason to throw away his experience out of the window. |
| C++ is not a good way to start with OO (Score:1) by Augusto (augusto.sellhorn@_no._spa_._m_.ps.ge.com) on Friday May 26, @04:31PM EDT (#352) (User Info) |
| You dislike Java a lot, but for OO, it's way better to tech it instead of C++, which is a hybrid, and adds complication with pointers. Not to mention that C++ is a couple of magnitudes more complicated than Java because of the pointers, memory management, multiple inheritance, blah blah blah. I started with BASIC, and I'm glad I didn't touch C until later. I liked C when I learnt it, but I'm not sure I would have liked learing to program by doing pointer / memory management when I was 10. Flame on ! - Johnny Storm, Fantastic Four |
| Shoot a little lower. (Score:2, Insightful) by Kefaa on Friday May 26, @03:39PM EDT (#118) (User Info) |
| You may want to go a little simpler than game programming, especially in windows. Perhaps, a diary program or CD inventory program? This is something that could be accomplished in a couple of nights (with dad's help). Once they had a success you could better judge the next move. If you have Office 97 or later, you can do most of the VB programming tasks through VBA. It simplifies some of the more mundane(?) tasks and may be easier to handle. (In addition you do not have to buy VB.) Of course, a completely unrelated option may just be HTML/XML. They could build some web pages and post them to a free site for the world to see. It may not be the same a programming but it may hold their interest. If they really dug in you could move to JAVA. My daughter, thinks I play games all day. Don't be disappointed if at 11-13 they do not see the thrill in what we do. There is so much I still don't understand...as it should be |
| Oberon :) (Score:1) by dJOEK on Friday May 26, @03:40PM EDT (#121) (User Info) |
| i have the feeling i am like so gonna be flamed, but here goes... TEACH THEM OBERON ! it's free (for edu. purps.) cross platform (yes unix too, mac windoze the whole bucnh) it's simple clear, has no ambiguities, has OO in it, guis and best, it was designed to be an educational language... Oberon class was horror for me, i wanted something real :) but if they don't know anything else, it's the way to go www.oberon.ch mvg, Kris "dJOEK" Vandecruys visit http://ecard.kinetic.be/ |
| Graphics (Score:1) by Soong (locke@mac.com) on Friday May 26, @03:41PM EDT (#125) (User Info) |
| I think what kept me going when I started learning Pascal when I was in the 3rd grade was getting visual feedback from my programs. My dad showed my the function call to fill a rectangle on the screen and so I wrote bigs lists of that. Then I learned some flow control and smeared rectangles all over the screen into lines and other shapes. So, I got a lot out of Lightspeed Pascal on that old MacPlus. I think the best environment to do the same now might be Java, with java.awt.Graphics for the drawing calls. Set the kid up with a tiny program shell that brings up the window and draws one thing. Then let them edit and learn. Evironment? Can't go wrong with Metrowerks. And I think they have deals for Java-only tools. |
| Get a copy of K&R (Score:1) by VP on Friday May 26, @03:41PM EDT (#126) (User Info) |
| If you know C, and can spend enough time with them over the summer, this will be invaluable experience for your kids... |
| First time Language (Score:1) by CFBMoo1 (spdarren@cs.millersville.edu) on Friday May 26, @03:42PM EDT (#128) (User Info) http://cs.millersville.edu/~spdarren |
| I myself started out with MS GWBasic... those were the days. Now I'd actually concider starting my kid out with Java. Granted it's no basic, but if done right it could make a great first language. Thats just my personal feeling, also since Java can run under Windows and Linux. You won't be limiting them to Windows first time around because Java is supposed to be platform independent, although there are always problems there. :) If the shoe fits, THROW IT!!!!!! |
| Start with command-line based environment (Score:1) by Baki (plm@gmx.li) on Friday May 26, @03:42PM EDT (#131) (User Info) |
| When I started (14) I wanted to know top to bottom how a computer worked. With the commonodore pet, and, a short while later the commodore 64, this was possible: a simple command-line oriented environment without many layers of GUI's, wizards, automated things going on behind your back, i.e. you can really know what your doing. Fascination started really when I was 15 and got a C compiler for the C64 (dog slow, but still). I'd still recommend it today for a beginner (on a faster platform though). C is small and simple, and a bare gcc environment offers much more oversight than the confusing visual environment. Why should it be different for kids today? Yes, using visual c++ you can create complex programs faster (at start) but without knowing what exactly is going on. VB is even worse in this respect. It may help them to create a program, but doesn't necessarily teach them how to program. |
| Alice! (Score:1) by smallpaul (papresco.nospma@technologist.com) on Friday May 26, @03:42PM EDT (#132) (User Info) |
| Things that are visual tend to get kids' attention. Check out Alice: Alice is a rapid prototyping system for virtual reality software. Alice programs are written in an object-oriented, interpreted language which allows programmers to immediately see the effects of changes. As an Alice program executes, the author can update the current state either by interactively evaluating program code fragments, or by manipulating GUI tools. Although the system is extremely flexible at runtime, we are able to maintain high interactive frame rates (typically, 20-50 fps) by transparently decoupling simulation and rendering. We have been using Alice internally at Virginia for over two years, and we are currently porting a "desktop" version of Alice to Windows 95. We will distribute desktop Alice freely to all universities via the World Wide Web; What is so remarkable about Alice is the degree to which it brings 3D graphics programming down from on high and puts it in the hands of non-computer scientists. With very little assistance, my 7 year-old son created programs in hours that would have taken me, a professional 3D graphics programmer, days to write using OpenGL. Paul Prescod |
| If they already like games... (Score:1) by ripicheep (kit_contest at hotmail dot com) on Friday May 26, @03:42PM EDT (#133) (User Info) |
| Then let them write macros for games. Use something simple. I know that text/turn based games such as Inter Stellar Anhiliation (and I'm sure that there are others Ive forgotten) are excellent ways to introduce kids to scripts and macros. Mabe get them playing simCity as it's like programminga city. Cause and effect are often easy to see. Smaller programming such as javascript or what-not would probably be better, because dealing with build environments and setting up all of your header files and libraries can be frustrating when you just want to see it work! (as I'm sure we're all aware) Mabe write them a simple game yourself with easy to read, documented code and let them play with it and modify it to change rules, scoring methods, what not. I don't think it got into win9x, but nibbles and gorrillas.bas were fun tools for me to learn on in basic. Good luck and be sure to let them give up for a bit if they get frustrated. Change the focus and ask them what they'd be into doing. After all, you're doing this for them, not for you or for us on /. Why do some EULA's make me feel more like one of the used than a user? |
| Graphical programming (Score:1) by kurisuto (kurisuto@unagi.cis.upenn.SPAMFREE.edu) on Friday May 26, @03:42PM EDT (#134) (User Info) http://www.ling.upenn.edu/~kurisuto |
| This doesn't directly answer your question, but a relevant comment here. I've thought for a while that it would be a good idea if there were were some sort of graphical programming: you drag together some sort of graphical blocks to represent loops, procedures, typed variables, etc. rather than entering text. The program compiles to ordinary machine code, but the representation at the programmer's end is something completely different from text. I don't know whether something like this has been tried, but I expect that it would be a gentler way to develop the cognitive skills of programming without forcing the learner to grapple with so many technical details at first. I'm sure that children would not be the only ones who could benefit. |
| Buy them MINDSTORMS! (Score:2) by PsychoKiller (Gamblor@gamblor.ddns.org) on Friday May 26, @03:43PM EDT (#135) (User Info) http://www.dowco.com/~alexh |
| The subject says it all. They can learn to program while building their own robots. Very cool. BTW, kids are smarter than you think :) I taught myself BASIC on our TI/99 when I was about their age, maybe ever a bit younger. Get them programming or building their own computers at an early age. |
| Re:Buy them MINDSTORMS! (Score:1) by CSG_SurferDude (moc.66tr@aadew) on Friday May 26, @03:50PM EDT (#174) (User Info) http://www.rt66.com/~wedaa |
| Add me as another voice in the chorus of praising MindStorms. (Yeah, Yeah, it's another "Me Too!" post, but MindStorms deserves another post. I would also have to suggest Perl as a starting language. OK, it don't do graphics, deal with it. CSG_Surferdude www.fuml.org |
| Java! (Score:1) by El on Friday May 26, @03:43PM EDT (#136) (User Info) |
| I firmly beleive everybody should learn Java as a first programming language; it's simple, and it teaches you good habits. Try to learn object oriented design concurrently with Java. Personally, I learned BASIC first - absolutely the worst programming language for structure or object oriented, it teaches really bad habits. |
| Smalltalk (Score:1) by jimm (com.io@mmij) on Friday May 26, @03:43PM EDT (#137) (User Info) http://www.io.com/~jimm/ |
| Smalltalk was designed partially with kids in mind. The syntax is extremely simple. No worrying about data types. The environment is flexible. No compiler or linker to use. Type into a Workspace window and select "do it". For a free, full Smalltalk version, there is none better than Squeak. |
| Lisp or nothing. (Score:1) by haystor (spiff@waymark.net) on Friday May 26, @03:43PM EDT (#138) (User Info) |
| Assuming you want to keep the children interested, and not just chain them to the chair I would suggest something that is fairly result oriented, but still consistent as a language. Java would be my top choice for children learning a language. They have no preconceived notions, and they soak up knew stuff like sponges. Java allows a lot of room for growth, and can be used for a great deal of experimentation. Its also relatively safe. Combined with simple html, it can even provide a place to display their work in the form of applets. Perl depending on what they are like. If they aren't graphically oriented, they may like a language that just makes more sense. C/C++ if they are future hardcore geeks I couldn't recommend anything more highly than C. It is powerful, and will result in them know how a computer works. VB. Ack! Every function in VB seems to be written independently, and has a completely different method of operation. Lisp. Probably not best for them. But my wife has inquired about learning to program, and I've considered teaching her nothing but LISP. It would not be at all useful, except for the practical joke value that may take years to realize. That said, I could always move her to maintenance of my .emacs file. Summary I would have to choose between Java, and VB. Java is nicely integrated with the web though where VB is nicely integrated with the windows box. My recommendation: |
| HTML (Score:2, Interesting) by Atom Tan on Friday May 26, @03:44PM EDT (#139) (User Info) |
| Of course, we are tempted to post the language we learned with (I learned basic on a TRS-80), but I think HTML is a really valuable 'programming' language for beginners to start with. No, it's not Turing complete, but it does get you used to the most basic and fundamental aspects of computer programming as well as a general purpose programming language does. There are also some nice aspects of HTML which might appeal to newcomers, and especially kids. First of all, HTML is very forgiving, which is nice for a youngster ("Daddy, what's a GPF?"). Another is that they can post their work on the Internet instantly and show it off to their friends. A subtle (but important) lesson of HTML is that it's possible to obtain immense enjoyment out of something which is both free and relatively simple. Finally, HTML certainly has more practical value than a typical beginner language like BASIC or FORTRAN. HTML also serves as a good launching point to learn a more complete language like BASIC or C: you understand that with more power also comes more complexity, and a greater potential for harm. Furthermore, the learner will already have multi-language experience and understand that different technologies are best suited to different tasks. |
| A couple different suggestions (Score:2, Informative) by meloneg (gmelone@columbus.rr.com) on Friday May 26, @03:44PM EDT (#140) (User Info) |
| The classic young-programmer's languages seem to be BASIC and LOGO. Both are good. If you want to start with something a little sexier (as it were), how about Java. Simple text-based software is about as easy to write as BASIC. Fancier stuff is fairly easy. They can work on that Win98 box or a UNIX environment easily. There are some decent IDE's available. All that, and they'd be starting off with a solid OO basis to boot. I'd also recommend that any new programmer spend some time in Lisp. Not as a first language. But, when you get to the point where you start playing around in languages, make Lisp one of the first. I think it really helps a programmer to think in the very data-driven model once in a while. I have to agree with the comments about getting hold of the source for something they'd like to modify. I fondly remember stripping the sound out of MS BASIC games so we could play them in the lab without being noticed. Good Luck. |
| Just do what I did... (Score:1) by mverrilli on Friday May 26, @03:44PM EDT (#141) (User Info) |
| Give them an IBM PCjr with a 360k floppy, no programs and cartridge basic. ;) |
| my experience (Score:1) by chompz (spam@mu0.net) on Friday May 26, @03:44PM EDT (#144) (User Info) |
| when I was 13'sh my brother was working for the university of minnesota. As soon as we got internet access (somehow before there were any ISP's in the area ...) he made me an account on one of the computers at his lab, and then he got me started with hello world. Everytime I had a problem I just sent him an email and he looked at it in instructed me on what I was doing wrong. This worked really well for me. Can you beleve that a 13 or 14 year old actually understood C's *'s, &'s, structs, and such? Blew my mind at the time. Then I got lazy and didn't program for 3 or four years. |
| Programming --as taught by my parents (Score:1) by vvulfe on Friday May 26, @03:44PM EDT (#145) (User Info) |
| I first started toying with BASIC on and old Apple ][ when I was in 4th-5th grade. My father used to write really simple programs that would print something like "My son is annoying" over and over again, with flashing text or the like. I, of course, took offense to this, and forced myself to figure out a little basic to make the appropriate changes ("My dad is fat and old") So first off...beware wrathful children. But seriously, I think that a simple, text based interface may be the best. While a flashy IDE with great GUI results may feel good at first, down the road your kids will thank you for teaching them vi or emacs and C...or even basic on an antiquidated apple. By going barebones in the beginning, they have an opportunity to really learn the nuts and bolts of programming, which will make life much easier in the future. I mean, once you know C, a GUI is nice...but if all you knew was a GUI, would you want to learn vi again? --vvulfe (IMHO, of course :P) |
| Just the Basics (Score:1) by sirLOL (iamthagod@yahoo.com) on Friday May 26, @03:44PM EDT (#146) (User Info) http://www.crosswinds.net/~sirlol |
| I remember being 8or9ish (about 10-11 yrs ago) and sitting at our old IBM P.O.S. doing simple things in BASIC. Just printing things on the screen in diffrent colors was enough for me. and counting programs ( x=x+1 ) were always fun. These were a main reason i stayed interested in computers. So it's not really what all they can do, but just the fun of making the computer do what they tell it to. There was also some science magazine that had a "game of the month" or something like that it had the code for... does anyone remember what this was? The one i remember most is a "find bigfoot" program. Something like that might help. - "yes but can you hit someone over the head with a rolled up internet?" -Foxtrot |
| Java definitely (Score:2, Interesting) by Fooknut (meebert@!yahoo.com) on Friday May 26, @03:45PM EDT (#147) (User Info) |
| I don't say java just because I do it. I say it because it's a middle range language. If you learn java, VB is easy. Cold Fusion is easy. The syntax is similar to C. It really has a great sense of programming logic to it. Java is great online, it has inheritance (woohoo!), networking built in, it's multi-threaded, it's FREE, it's growing so rapidly. Java is expanding into neat stuff like speech recognition, telephony API, JavaTv API, RMI (remote method invocation), embedded stuff, OS work, (cute mascot), etc etcetc... java is free, abundant, and useable. Fook! "The actual user of the PC -- someone who can do anything they want -- is the enemy." -David Aucsmith Intel |
| What do they want to program? (Score:1) by Selanit on Friday May 26, @03:45PM EDT (#148) (User Info) |
| Where you start them out depends largely on what sort of things they want to end up programming. What do they want to make their computers do? If they want to make really cool web pages for themselves, probably they should begin with Perl or PHP. If they want to make games they can give their friends, a visual development environment like Visual Basic (but not NECESSARILY VB!) would be better. I have only recently begun learning this sort of thing myself, using PHP, and it REALLY helps if you have a specific goal in mind. Saying "I want to learn to program," is great, but doesn't give you much incentive to actually do so. Saying "I want to program a web-based POP3 client for myself so I can cast off the chains of Hotmail" lends you a necessary focus. I said I wanted to learn programming years ago; but I never actually did it until I had a definite program in mind. Trust me, it *really* helps. :-) Selanit |
| QBASIC (Score:1) by JeffHunt (jhunt at dropkick dot org) on Friday May 26, @03:45PM EDT (#149) (User Info) http://www.dropkick.org |
| My first programming experience was with BASICA on dos 3.X. I suggest that children who wish to get into programming start with some variant of BASIC, but _not_ Visual Basic. Find a copy of QBASIC somewhere and get them started with that. In such an early stage of their programming education, teaching them a language used in serious production isn't terribly important; you want them to learn the concepts of programming... loops, control structures, variables, etc etc. From my experience, using BASIC for a couple years was a great help when I moved on to C. But most importantly, don't crush any enthusiasm they may have for learning programming by overwhelming them with more complex languages like C, VisualBasic, Perl, or possibly even shell scripting. Just my $0.02, and then some :) -- |
| Ask them what they want to do (Score:1) by JDeFontes on Friday May 26, @03:45PM EDT (#151) (User Info) |
| I think you should focus on what, not how. It's the desire to achieve some specific goal that's going to drive them to figure out how to do it. Ask them what kind of programs they want to write, and let that drive the platform/language choice. |
| First languages (Score:1) by shaum on Friday May 26, @03:46PM EDT (#154) (User Info) http://www.hal-pc.org/~kns/ |
| I'd start with a scripting language, probably Python. (Although I love Perl dearly, it can be kind of, well, dense.) You know the drill. Start them with "Hello, World", then counting to ten, then counting down from ten, then the Fibonacci series, then "Please enter your name: / Hello, [name]!", and so on. Visual Basic may be unavoidable, but don't start them with that. Not because I'm anti-Microsoft (well, not just because of that), but because: (a) even a simple GUI program is going to be more complicated than doing one- to ten-liners in a CLI scripting language, so they'll get to the payoff quicker; (b) Python and Perl are cross-platform, so you may be able to entice them to turn away from the Dark Side of the Force (Windows); and (c) Python and Perl are free (as in beer), while VB costs money. If they decide they don't want to be programmers after all, you've saved some cash at least. And the first dose should always be free. (As in beer or speech.) P.S.: Learning HTML, and a little JavaScript, is another decent starting point, also nicely cross-platform and low-cost. |
| First Time I Seriously Started Coding (Score:1) by LaNMaN2000 on Friday May 26, @03:47PM EDT (#157) (User Info) |
| The first time I programmed for any significant length of time was in Seventh grade. We had an algebra final and were told that we could bring programs on our graphing calculators. As a result, I was confronted with mathematical programs that could be solved most easily with a calculator program, and given an incentive to sit down and start coding. If the kids are displaying an interest in programming already, they are likely to be *already* hooked on computer games. I played computer games for years on an 8086 (ascii DoD) before I even knew what a programming language was. Now, you have to show them that programming can help them solve problems that they are already confronted with all of the time. Show them how to make a tip-calculator for restaurants, an adding machine, and show them how easy it is. After they realize how easy and useful programming is, you will have drawn them in. |
| you gotta be kidding (Score:1) by rodentia (possum@UNSPAM.haarman.net) on Friday May 26, @03:47PM EDT (#158) (User Info) http://www.haarman.net/ |
| Are these trolls with C(++) suggestions!? Emacs and VIM, commandline gcc... You want an interpreted language with an interactive mode for immediate feedback. The answer is Scheme or Python and I vote Python. The syntax is simple, its got a straightforward object orientation, its got drawing and GUI modules for that all-important sense of accomplishment. You categorically do *not* want to start them out with the sort of stuff that got you into it 10-20 years ago. Your kids are growing up in a world where programming will no longer be a specialists' occupation. The frontier of userspace is changing. The languages will be high-level, the grammar OO, and with a blurring of the line between system and apps. Don't saddle them with a lot of baggage they will just have to unlearn. Let 'em come to the low level stuff if/when they show an interest. illegitimi non ingravare |
| Turbo Pascal (Score:1) by sawb (soab@sprint.ca) on Friday May 26, @03:47PM EDT (#160) (User Info) |
| Yes it is outdated, and yes it's not object oriented but it has it good points. Our school program (4 years ago) had programming in Turing for a year to get use to the concept of programming. This step could be skipped for most computer literate kids. Then Learning in Turbo Pascal. You learn alot of the basics of programming in a realy simple language. You can extend to file system - taking in/out files etc. And also make some cheap games like Space Invaders or Pong or as I did - AI Tic Tac Toe. With Pascal you can move onto Delphi which is perfect because it takes Pascal and just makes it object oriented. Honestly that is probably one of the best ways to learn. [Space for rent] |
| what do you want your kids to learn? (Score:1) by anonymous loser on Friday May 26, @03:47PM EDT (#161) (User Info) |
| I think certain programming languages lend themselves to learning particular programming concepts, especially for children. I started out with BASIC (not VB, but I guess that's a good substitute these days) on a VIC-20, and when memory and performance became issues, I moved on to assembly. These are ok for teaching the basics of algorithms and computing concepts. Somewhere during that time I also picked up logo, which is a great language for teaching complex mathematical concepts in a way kids can understand intuitively. Pascal was the first language I learned that really stressed modular programming concepts and strict typing. Nowadays I would probably go with Java instead, since it has more eye candy, and also teaches object-oriented concepts to boot. Finally, for concepts of pointers, references, and operator overloading I guess C++ will have to do. |
| Get in touch with me :) (Score:1) by LightningTH on Friday May 26, @03:48PM EDT (#167) (User Info) |
| I started programming at 10 (18 now). Taught myself alot. I started with VB though. If ya care to chat or such send a line to Lightning@Lightspeed.dhs.org. I'll be glad to talk. |
| My start... (Score:1) by puddles on Friday May 26, @03:50PM EDT (#169) (User Info) |
| I became interested in computer when I found this program in BASIC that would animate a smoking cigarette (heh, kids and cigarettes ... ah well). I thought it was pretty cool, so I started studying it. BASIC is simple enough to understand without actually having a computer (I couldn't afford one at the time, since computers were still quite expensive in 1982-1983). Your kids might enjoy getting the immediate feedback that most interpreted languages offer. This includes BASIC, Smalltalk-80, LOGO, among others. LOGO might be a good start - the "turtle" probably would give them hours of fun. I know I had fun with it :) |
| Java's a great beginning (Score:1) by jordan_a (039947a(no@spam)acadiau.ca) on Friday May 26, @03:50PM EDT (#171) (User Info) |
I'd suggest using Java with a Visual RAD like JBuilder. Java teaches the basics of programming, doesn't have pointers (I hate generic pointers!), you can also introduce object oriented programming early. The best part about Java is that you can move to C with relative ease as the syntax is similar. As for books at Acadia the programming intro book was Computing Concepts with Java 2 Essentials by Cay Horstmann which I found to be good, it starts with the basics, introduces objects early and goes onto things like Swing, exception handling and program designing. Then we moved onto Modern C after Java by Tomasz Muldner which basically tries to move the programmer over to C, I found the book wasn't very straight forward though and hard to read... This might be attributed to the fact that my class was the test case for this book (we all had to buy a print off of the draft copy of the book), it does have a good focus on portabilty and robustness though. |
| Results Matter (Score:1) by lounsbery on Friday May 26, @03:50PM EDT (#173) (User Info) http://www.dennisinter.com |
| I don't think the language is very important, as long as it has some similarities to standard languages(C,Java), and is kind of basic(like...BASIC). VB would be a good starting point. What I do think is important is that they can get immediate results from their effort. Mature programmers can spend months, even years, studying something without seeing the fruits of their labor, but a kid would get bored in a week. They need some form of gratification to keep their interest. I would recommend setting up a simple project already coded for them, and let them change various things and see the effect. |
| When I started ... (Score:1) by dbarclay10 on Friday May 26, @03:50PM EDT (#175) (User Info) |
| Hey there :) I'm 19 and I've been programming for about 10 years. You can probably figure out that Windows wasn't around then ;) At least not in its current phase. Anyways, when I told my mum that I wanted to make programs, she said sure. She bought me a computer and set me up with dBase(can't remember the version). Anyways, it was mediocre at best. You see, I wanted to do something specifically(can't remember. Maybe a game?), and dBase just wasn't suited for it. I suggest you ask your kids what they want to do, and start from there. Even if they make a simple plot-based text game, they'll love it, because they made it. So long as you start with the basics, they should be okay. If they want to make a real application-type thing, I suggest you start them with(gasp!) VB - the drag-and-drop and nice GUI will facilitate your teaching. Dave BTW: Make sure you actually TEACH them. Don't just set them down in front of a computer with some program running. 'Round the firewall, Out the modem, Past the server, Through the router, Down the wire, NOTHING BUT NET. |
| Why, when I was a boy... (Score:2) by DrEldarion (hwoarang29@yahoo.spamisevil.com) on Friday May 26, @03:51PM EDT (#178) (User Info) |
| I grew up with my trusty old Commodore 64, so the first language I learned how to proram in was BASIC. I believe that it's a rather good language to start off in, because pretty much everything about it is so simple. Plop your kids down in front of an old version of QuickBasic and give them a Intro to BASIC book from the discount rack... it should be a great introduction for them. -- Dr. Eldarion -- It's not what it is, it's something else. All you Nobuo Uematsu fans, help get this released! |
| Re:Why, when I was a boy... (Score:1) by Ranger Rick (ranger+Slashdot@SpamBeGone.befunk.com) on Friday May 26, @03:55PM EDT (#196) (User Info) http://radio.scenespot.org/ |
| Of course, this will teach them one of the worst programming habits ever: GOTO. Better off starting with something else and not going down that road. :) :wq! |
| Personally..... (Score:1) by Da Cr33p on Friday May 26, @03:51PM EDT (#179) (User Info) |
| I'd be inclined to say Pascal, BASIC nips my head :) Back @ Good Ol' High School we were taught COMAL (which is more or less BASIC), ahh the nostalgic memories of writing an electronic score board and using flashing graphics to represent motion. :,-) Now I'm at University we were introduced to PASCAL in first year Software Development. Its really straight forward and, as mentioned, can be used with Delphi which you could use as the next step up. Da Cr33p |
| Where have the fun BASICS gone? (Score:1) by Sits on Friday May 26, @03:52PM EDT (#182) (User Info) http://sucs.swan.ac.uk/~sits/ |
| This has made me wonder where all the fun basics have gone. When I was younger there used to be things like AMOS which although messy, was fun (and easy) to write in. Surely there has got to be an easier way to get into writing games than C++ combined with direct X/open GL? It's not easy to make a fast paced arcade game in VB... |
| Color And Sound! (Score:1) by Sunlighter on Friday May 26, @03:52PM EDT (#184) (User Info) |
I started out with a Tandy Color Computer. It was the best choice at the time, because it had color and sound, and you could write programs that drew in color and that played sounds. I learned to program first in BASIC, then in raw assembly because I got more and more ambitious: I wanted more impressive graphics and better sound (and music). I watched movies like TRON and The Last Starfighter, which had computer-generated graphics and sound. I wanted to do some of that on my own. If all Id ever had or seen was a black-and-white UNIX prompt with g++, I would not have been all that impressed with all the UNIX and c++ features. Whatever you get them started working with should include lots of colorful graphics commands and lots of sound commands. (But leave them the ability to write their own!) If youre going to make a programming language into a childs toy, it need only be brightly colored. Any particular programming language would be fine C, C++, Java, Scheme, Perl, Python, whatever if it has that simple ability. (I dont buy the idea that C++ or any language is too complicated to learn as a first language. You have to teach it a little at a time. You have to subset it, and then gradually widen the subset until the whole thing is included.) And I think we humans never really grow out of that desire for sensory stimulation, as our propensity for digital movies and sound shows. And color syntax highlighting! Even adults wouldnt mind learning programming with graphical commands. I would like to see a C++ library one day that supported easy generation of graphics and sound; that, combined with the rest of C++, would present an excellent learning tool which is also capable of cracking real problems. A kid could write a program with that and be proud. In the process he would learn algorithms, data structures, and the like. Later he could write programs without sound and graphics, because he would know how... Just my two cents. Sunlighter |
| CGI with Perl (Score:1) by anthrax on Friday May 26, @03:53PM EDT (#187) (User Info) |
| A great way to get them started is with web programming. Start with XHTML so they can get the structure and see results immediately. Then start adding CGI using Perl. Lots of good resources for CGI programming in Perl, and they can show off their programming skills to their friends. Another great motivator. |
| Re: Best Way to Get Kids Started in Programming? (Score:1) by tornado_norway (oletjens@stud.ntnu.no) on Friday May 26, @03:53PM EDT (#188) (User Info) http://www.stud.ntnu.no/~oletjens/ |
Pascal/Delphi is good and nice to beginners. PHP is also nice and has easy syntax. You can even try Matlab, which is VERY friendly towards the programmer. Of course it is not programming but learning HTML could also be a good first step. Don't try OO, functions and prosedures will be just fine. |
| Tcl/tk - runs in windows, linux & mac and does GUI (Score:1) by scum-o (steve@badcheese.com) on Friday May 26, @03:54PM EDT (#190) (User Info) http://www.badcheese.com/~steve |
| Any kid can write tcl/tk stuff (it's like basic or perl) - it's straightforward and you can make complex GUIs with it. You can port it to/from linux/mac/windows and the kids can add-on code from other languages when they learn them. It's the ultimate for learning how to program. Procedures and stuff are not necessary, but possible. Event handling and graphics and GUI stuff is all built-in and easy to implement. Start at: http://www.tcltk.com and maybe buy him/her a book or two. Tcl/tk isn't all that good for production-quality applications (although it's getting better all the time), but it's fantastic for whipping something out in a hurry and can is very capable. I think that the windows version of tcl/tk even does win32+ registry manipulation now too, but that part isn't portable to any other platforms of course. - Steve (ex-tcl/tk programmer) -- Steven Webb System Administrator II - Juneau and TECOM projects NCAR - Research Applications Program e-mail: swebb@rap.ucar.edu www: htt |
| ...java? (Score:2, Informative) by qgj_rjimlad (ns_slash@rjimlad.clara.net) on Friday May 26, @03:54PM EDT (#194) (User Info) |
| That's a harder question than it sounds. Of course, the obvious answer - for its simple syntax - is BASIC in some form, and visual basic would give very immediate and easy results. But of course, VB is evil for the bad habits it teaches, and for the sheer stupidity of the limitations it puts on you. Were it not for the lack of a GUI interface for it, I would recommend perl, since it has both very readable syntax and quite good structure. C (or C++), of course, would be great, but kids are likely to get turned off quickly with the relatively arcane syntax and having to debug problems with pointers and missing semicolons... But overall I'd have to say Java is your best bet. It's fairly quick and easy to whip up an applet (easier than C++ in many ways), and it's fairly easy to add little tweaks in, but it's also quite deep and can get them into OOP and efficient (size/speed) programming. And what's more, you can write a pretty-looking applet in relatively few lines of code. And it's portable - unless it's MS J++ :) ---------------- Take the red pill |
| Re:...java? (Score:2) by William Tanksley (wtanksle@unspam.ucsd.edu) on Friday May 26, @04:40PM EDT (#392) (User Info) http://dolphin.openprojects.net/Omega |
| Where do people get the idea that BASIC's syntax is simple? It's not -- it's almost insanely crufty. Almost every single statement has its own special syntax. It's only BASIC in comparison to FORTRAN -- and thank goodness nobody's mentioned that :-). Me? I think I'll be using Alice (www.alice.org) to teach; it's very motivating. I'll then upgrade to jPython. -Billy |
| Boxer, the only way to go. (Score:1) by eel (eel@theeel.com) on Friday May 26, @03:55PM EDT (#197) (User Info) http://www.theeel.com |
| Ther is a programing environment designed to teach kids how to program it is called boxer it is based on logo. It is amazing!! Right now it only works on a Mac. The project is based out of the berkeley school of education. And the auther has a new book out on the topic called Changing minds Get it, read it, do it. You will not be disapointes. I am still trying to get over the BS that I picked up by learning to program in BASIC. But I still have good habits from my LOGO days. Did I mention that Boxer is OO? |
| LOGO, BASIC, Python (Score:2) by JohnZed on Friday May 26, @03:56PM EDT (#200) (User Info) |
| Well, like most folks here, I started my "real" programming with Applesoft BASIC. But, before then, I used LOGO, and I think it really helped me get started. Python (which is a great, great language) is making a big "Computer Programming For Everybody" (CP4E) push, and you can check out their education special interest group right here. I think it would probably be more appropriate for 7th-12th graders, though. You can actually find a decent amount of material on Python for education here as well. One great thing about Python is the ease with which you can develop GUIs without using GUI builders. Not that there's anything wrong with GUI builders, I just question whether they're helpful for beginning programmers, who end up spending more time learning the interface of the particular IDE, rather than learning to program. |
| consider NOT programming. (Score:1) by havaloc on Friday May 26, @03:56PM EDT (#202) (User Info) http://www.click4profit.com |
| As I am a little older and wiser now at 24, I wish I spent less time on computers and programming, and more time being outside and socializing with people my age. I'm still making up for it. Programming skills will get your child no where if they don't have personality or can't deal with social situations. // www.monkeybidness.com |
| Re:consider NOT programming. (Score:1) by Master of Kode Fu (jSoPeAyM@sStPeAeMlSbPrAiMdSgPe.cAoMm) on Friday May 26, @04:21PM EDT (#316) (User Info) http://steelbridge.com |
| I think that too much of anything is a bad thing. You can be just as obsessed about anything other than computers, whether it's a sport, reading, an art form or musical instrument. While I do agree that having people skills and "emotional intelligence" (as it's being called these days) is very important, I also think that the "programming will stunt your social development" card is a little overplayed. There's no hard and fast rule that says coding skills and social skills are mutually exclusive. |
| ZZT! (Score:1) by Patrick McCarthy (lowen@spammenot.sandwich.net) on Friday May 26, @03:58PM EDT (#210) (User Info) |
On a more serious note, I would have to say Pascal(now called Delphi). If for no other reason than that I was programming in it when I was six. It's a very verbose language, which is good for beginners, and most of Borland's documentation is quite good and actually useful. At least, it was for me when I had TP5. The best way is still to read already written examples (preferably small ones) and to let them decipher each part, to see how and why it works. Pascal's verbosity makes this easy. |
| Logo or Python (Score:1) by nholtz on Friday May 26, @03:59PM EDT (#215) (User Info) |
| Either logo or Python would be good choices. Logo has been around for years, and there are lots of good books and free implementations. Start at Brian Harvey's web page for more info. Logo is great because of its pretty simple syntax and turtle graphics, which lets you start drawing pictures right away. Python is showing lots of promise as well -- its interactive, fairly simple syntax, has turtle graphics, but not the wealth of books for the younger set (actually, none). However, you must check out Alice - interactive 3D graphics for the web, with scripting for animations done in Python. Thats what I'm starting my 10 year old daughter on, falling back to logo if that doesn't work out. |
| JAVA ! (Score:1) by Axe (Axe@HATESPAM@Mindless.com) on Friday May 26, @04:00PM EDT (#220) (User Info) |
| And simple Swing-based graphical applet/program. Tons of really cool examples around. In terms of usefulness of the knoledge and fun to learn can't beat it. FORGET BASIC! ----------------------------, |
| ZZT OOP language! (Score:1) by Thrakkerzog on Friday May 26, @04:00PM EDT (#226) (User Info) http://tick.dhs.org |
| Teach them the ZZT OOP language! (From the old text-based game of ZZT.) Anyone else remember coding in that? It was great! -- Thrakkerzog Monkey Cloning at Bucknell! |
| Getting started... (Score:2, Insightful) by digitalhermit on Friday May 26, @04:01PM EDT (#227) (User Info) |
| C++? I know that obvious objections are that C++ is too complicated for children, but I can argue for it. In C++ you can have close to immediate feedback, necessary because of the TV shortened attention span of today's kids. Teach them how to g++ helloworld.cpp and they can start with quick programs. You can scale C++ very easily. Add functionality by linking a library. If they want to learn GUI, just link in toad or kapplication or whatnot. New math features? Show them how to create a library and what it does. Very important, C++ lets you be somewhat creative with your code. It lets you skin the cat in new ways. So you kids won't get stuck worrying about rigid pascal-like structures (this can come later). Though I am a diehard C programmer, C++ is now old enough that books are no longer showing non-standard features that aren't in the spec (a problem when trying to learn newborn languages). |
| Re:Getting started... (Score:1) by matman on Friday May 26, @05:29PM EDT (#533) (User Info) |
| I'm 18 and been programming for a year maybe. In that time I've learned PHP and TCL, and now I'm thinking that I'd be into trying C/C++ but Im not sure where to start. I'm not sure that I want to buy a book on it, but maybe I'll have to. Any good online resources? :) Mat. |
| Re:Getting started... (Score:1) by digitalhermit on Friday May 26, @07:08PM EDT (#673) (User Info) |
| http://www.cerfnet.com/~mpcline/C++-FAQs-Lite/ is a good place to start. "GNU C++ for Linux" is a GREAT book. So is "C Primer Plus" and "C++ Primer Plus". What I suggest to everyone wanting to learn c or c++ (don't let the names fool you, they're quite different) is to load GNU/Linux or BSD using gcc/g++. People have made arguments for using graphical IDEs because that's the way it's done in "real world." But, it's sort of like using a calculator in arithmetic or algebra. KL PS: Didn't mean to sound preachy..:) |
| Re:Getting started... (Score:1) by matman on Friday May 26, @09:48PM EDT (#760) (User Info) |
| i just started playing with OOP in php (already knew procedural in php)... what's the better thing to learn, c++ or c? is it really hard to move from c to c++ or viceversa? |
| Re:Getting started... (Score:1) by digitalhermit on Friday May 26, @10:48PM EDT (#791) (User Info) |
| I started with c and I'm guilty of still thinking out problems in c and then converting to c++. Most of the folks I work with use c++, and this seems to be true for a few places I've been. For the basic stuff like reports or cgi engines, moving between c and c++ is trivial because the same code will work with minor tweaking. So I guess it comes down to who you'll be working with, because you'll end up having to learn the language that the team is using. That was my story a couple years back. That being said, I think that I'm a stronger c++ programmer because of my c background. C forces you to get a little more intimate with the language and a lot more diligent. |
| Not strictly coding.... (Score:1) by brinn10 on Friday May 26, @04:01PM EDT (#231) (User Info) |
| For kids, I believe immediate fedback and a strong foundation in logic and syntax is important. So at risk of intense flames, I'm going to suggest a scripting langauge... Lingo for Director. The kids can create games and have the media rich visuals they are accustomed to already. I realise that this is neither open code nor free... but I have known teachers that found this approach a good foothold for kids already mastering the complexities of our spoken languages... |
| Visual Basic is fine (Score:1) by MarkoMuscovich (marko-muscovich@home.com) on Friday May 26, @04:03PM EDT (#236) (User Info) |
| VB is a good language for teaching someone to program. The VB6 version of BASIC is fairly good for teaching about structure -- you're less likely to run into teh GOTO spaghetti that old BASIC programs used =). Also, if you use VB, you get a nice graphical app up in no time without fooling around with anything, well, messy. You can teach a kid to put a textbox, a button, and some sort of output on a form (another textbox?), then write the couple of lines to Do Stuff. Type "Fred", press button, second box says "Hello Fred!" Great first program! -- The gravitational constant of protein has been changed[...] Also, rabbit carcasses no longer weigh as much as cow carcasses. |
| My 2 bits... (Score:1) by Corbin Dallas (From the Pitr for Presidentski Department) on Friday May 26, @04:04PM EDT (#237) (User Info) |
| My programming started on a Commodore 64 that my dad bought us when I was 9. He forgot to purchase a disk or tape drive, and didn't buy any games, so there I was, stuck with a C=64 and nothing else. So, I started reading through the manual, which described BASIC, and started to learn to make things on my own. By the time my father could afford a disk drive and some programs, I wasn't interested. I just wanted some blank disks for my own projects. (Anyone remember Ahoy! and Compute's Gazette?) Now a days, the Lego Mindstorms is probibly the best start for your youngsters. Java or C(++) shouldn't be too far behind. I wasted my time learning 6510 assembly rather than learning something that I could use as an adult. You can bet that the PC's of your children's adulthood will be equally different. |
| Forget the conventional (Score:1) by HerbieTMac on Friday May 26, @04:04PM EDT (#238) (User Info) http://home.uchicago.edu/~snhillbr |
| All programmers have to learn "normal" languages at some point or another. Why toss your kids into mediocrity so soon? Start them right with a good, functional language. May I suggest Haskell or ML? Or real OOP with Dylan. Also, be sure to let them know that they aren't allowed outside to play until they turn in at least 1k of real code (no comments) per day. |
| Python (Score:1) by cruelshoes on Friday May 26, @04:04PM EDT (#239) (User Info) |
| I can't say enough about this programming language. It's relativly straight forward, runs on most platforms, and best of all it's free. There are some good python books out as well. But I can't think of a better way to get a newbies feet wet than this. Python. Good luck and happy coding. |
| VB (shudder) (Score:1) by Master of Kode Fu (jSoPeAyM@sStPeAeMlSbPrAiMdSgPe.cAoMm) on Friday May 26, @04:05PM EDT (#242) (User Info) http://steelbridge.com |
| I'll risk any "face" I may lose by suggesting this here on /., but I would strongly recommend VB as a great programming language to get your kids started. I'm a firm believer of having the applications and OS match your goals and not the other way around, as because of this, I would have to recommend the Windoze/VB approach. This being /., I figure I should don the asbestos hoodie and justify my this, so here goes... 1. VB is a direct descendant of BASIC (the B in which stood for "Beginner's") a language designed with the beginner in mind. The language, as it currently exists as Visual Basic is pretty decent, containing a complete set of decent control structures, data structures and a fair chunk of OOP stuff (it's missing inheritance and overloading -- there are Java-style interfaces, though). A previous poster suggested C, which I don't feel is a beginner's language -- you have to know a little bit more about computers and programming before using it. 2. Intellisense. No more riffling through manuals or help files just to find out what arguments a function takes or what methods and properties are available to an object -- they appear in a pop-up box as you type. This has proven to be so nice that this feature now appears in Borland's IDEs too. I like this kind of thing because it lets you concentrate on learning the abstract concepts and leaving the rote memorization for later. 3. Quicker satisfaction curve. Your kids are using Windows, and I think it would be more satisfying to them if they wrote programs that looked like Windows apps. They'd still be learning the same basic concepts of algorithms and data structures whether or not their programs were CLI- or GUI-based, but I wager it's more satisfying to see a window that says "hello world" than seeing "hello world" on a CLI. Sure, many of us grew up programming on CLIs and it was good enough for us back then, but that was then -- in a world before tens of megabytes of RAM, gigahertz chips and zillions of polygons per second. 4. Literature. There are a fair number of VB books out there, many of which are aimed at beginners. The Learning Edition of VB even comes with a decent tutorial book and some fun apps to write. If the thought of having your kids learn VB is too much to bear, you could also try Delphi. The problem is that Pascal has some odd rules about when you terminate statements with semicolons, and -- more's the pity -- and isn't used as much as VB. That being said, Delphi is a pretty nice tool, and I can hardly wait to see the Linux version come out. I don't think it will poison your kids' minds to have them learn on an M$ tool. If programming is really their calling, they'll be able to move on to different languages on different OSs. In the end, it's about engendering a love for the craft and having fun, not about whose programming language is more 31337. |
| Give 'em some existing code to modify (Score:4, Interesting) by Sloppy (sloppy@spam^H^H^H^Hrt66.com) on Friday May 26, @04:05PM EDT (#243) (User Info) |
I think I learned quickest not when I was writing stuff from scratch, but when there was existing code that I was used to running, and started changing it. I remember adding features to other kids' programs on the school computer, speeding up games that I had typed in from COMPUTE!, etc. That way I learned both from doing things myself, and from seeing how other people had done things. Maybe start with a game, written in something like Python. And if they get bored with that, give 'em the BSD kernel. ;-) --- Have a Sloppy night! |
| Re:Give 'em some existing code to modify (Score:2) by seebs (seebs@plethora.net) on Saturday May 27, @02:37AM EDT (#863) (User Info) http://www.plethora.net/~seebs/ |
| Strongly seconded. Studying existing code lets you experience maintenance, which is a crucial thing to know. :) I learned mostly from other people's code. http://mail-abuse.org/rbl/ - kills spammers dead http://www.alladvantage.com/go.asp?refid=GZX636 - Get paid to surf |
| Useful URLs (Score:1) by andrew cooke (andrew@intertrader.com) on Friday May 26, @04:05PM EDT (#244) (User Info) http://www.andrewcooke.free-online.co.uk/ |
| Hi, Toontalk at http://www.toontalk.com/ looks neat, but they may think it's too childish (but I'd like to play with it!) - it's an intro to programming via animation. Computer Programming for Everybody at http://www.python.org/doc/essays/cp4e.html is an interesting paper that discusses how to introduce people to programming (it is biased towards Python, but that's not necessarily a Bad Thing - my own personal opinion is that Python is the best you'll find). There's an earlier related discussion on Slashdot at http://slashdot.org/askslashdot/99/02/03/147222.shtml Ask Tim on the Oreilly site also discussed this: http://www.oreilly.com/ask_tim/programming_1199.html and http://www.oreilly.com/ask_tim/programming_1199.comments.html But most important of all, whatever the language, is having a good project. If you really *need* a program, then you'll learn to program to do it. If you're just "learning to program" with no aim in mind, you'll soon be bored.... Good luck, Andrew http://www.andrewcooke.free-online.co.uk/ |
| Isn't that how we all started with Sinclair Z80 (Score:1) by an_mo on Friday May 26, @04:05PM EDT (#245) (User Info) |
I'm a *nix geek, but I don't know if they'd keep interest if started with 'main () { printf ("Hello, world!\n") ; }'isn't that how we all started a while ago with our Sinclair Z80 in Basic? That looked pretty cool to me when I was 12. |
| Re:Isn't that how we all started with Sinclair Z80 (Score:1) by bubber (jim@softwaregadgets.com) on Saturday May 27, @07:47AM EDT (#928) (User Info) http://www.softwaregadgets.com |
| TRUE! My first "home computer" was a Z80 and I loved it! Some times I take it up from the basement just to boot it up and marvel at the picture quality on my new TV, you eyes hardly hurt at all! :-) "Remember: You found out yesterday, so it is probably not obvious to the rest of the world yet...Unless you are a _very_ slow." |
| What to teach programmer kids (Score:1) by EraseEraseMe (adammon@NOSPAMhotmail.com) on Friday May 26, @04:05PM EDT (#246) (User Info) |
| Teach them as much math as possible. Teach them how to learn on their own. Teach them how to spell And then, go on to programming
Join the Campaign to erase EraseMe! |
| Speaking from the horses mouth here...... (Score:1) by JM_the_Great (antimatter0@spamsucks!.yahoo.com) on Friday May 26, @04:06PM EDT (#248) (User Info) http://www.caffeine.f2s.com/ |
| I'm a 15 (woo! got my learners today :)) year old nerd (yes, nerd....geeks suck :-p) and I started programming when I was ~5 on my old Apple ][e with, you guessed it, BAISC. I know I'll get flamed out of existance for this, but it really is a good starting language. And, as for them not being interested in C or PERL, I'm just a little older, but their my two favorite languages. However, if they want to program games, perhaps a more Win-like language would be better. But, I still say that BASIC gives you the thinking skills for programming, languages can be learned, thinking skills need to be developd while their young. BTW - I'm glad to see other people my age getting into programming. I so much see so-called "computer gurus" and stuff and all they can do is maybe solve simple Win based problems. I hope you have good luck teaching your kids that there is more to computers then games and that learning something that is portable is invaluable (especially when Winblows loses it's market share). Grades, Social Life, Sleep....Pick Two. JM |
| Learn the basics (Score:1) by Provos (stephen@spamisbetteronabun@sdgconsulting.com) on Friday May 26, @04:07PM EDT (#251) (User Info) |
| Sure, it's important that a kid's interest is held when you're trying to teach them anything, but the same goes for programming as in anything else that gets taught or learned - make sure that whatever you have them use, it teaches them how to program *properly*. I would have to say steer clear of BASIC, imho, because of the bad habits it allowed me to pick up. While the same could be said for any language, my opinion is that I would be a stronger programmer today if I had started with something like C. I toggled a toggle and buttoned a button, but when I got done, I was done doin' nothin'. |
| My Advice: Java (Score:3, Interesting) by bhurt (bhurt@visi.com) on Friday May 26, @04:07PM EDT (#253) (User Info) |
| Start them on object oriented from the get-go. It's syntax is also good at catching "newbie errors". What I _wouldn't_ worry about is teaching them a "toy language". Of course they'll learn other languages. Do NOT start them on C or C++. Yes, those are languages "professionals" use. So? You don't learn to drive in a formula-1 race car or an eighteen wheeled semitruck, despite the fact that is what the "professionals" use. You don't learn to fly in an F-16 jet fighter. You learn to drive in a Geo Metro with an automatic (or equivelent), and you learn to fly in a piper cub. |
| Re:My Advice: Java (Score:1) by crawford on Friday May 26, @04:17PM EDT (#299) (User Info) |
| I agree. I was dragooned into teaching a high school Pascal course a few years ago, and while there isn't much market for Pascal programmers, it did have the advantage of insulating the students from some of the implementation details, memory management, pointers disruptions and so forth. That's why it was the instructional language of choice for many years (although I hear that the high school AP curriculum has switched to C - I don't think this is a great idea, as AP computer science does not an engineer make). Java goes a few steps beyond: it's actually useful (so the kids can get a cool summer job later on), and it allows them to start out with OO programming. OO isn't that hard, unless you're locked into a procedural mindset--you can always learn procedural programming techniques later if you actually need them. Yes, you can accomplish the same thing with C++, but C++ is a lot more imposing for beginners, and more implementation details get in the way of the (IMHO more interesting) abstract concepts. |
| Re:My Advice: Java (Score:1) by randombit (ySyblPq@nApz.wuhM.rqh) on Friday May 26, @07:02PM EDT (#665) (User Info) http://www.randombit.net |
| although I hear that the high school AP curriculum has switched to C Actually I believe it was C++. Sadly, they switched a year too late for me, or I would have taken the AP and gotten a few free credits. -- (Remove the leters S,P,A,M and then rot13 to email) |
| Re:My Advice: Java (Score:1) by randombit (ySyblPq@nApz.wuhM.rqh) on Friday May 26, @07:10PM EDT (#676) (User Info) http://www.randombit.net |
| What I _wouldn't_ worry about is teaching them a "toy language". Of course they'll learn other languages. Do NOT start them on C or C++. Yes, those are languages "professionals" use. OK, I agree that 11-13 is a bit too young for starting C or C++. I really can't agree with Java, for the same reasons. At least with C++, you can go from "everything in main()" to "here's what a function looks like" to "this is a class" to "this is the STL". With Java, you have to either explain it all at once, or not explain it at all. I took an intro Java class 1st semester of college (already being a pretty decent C/C++ programmer), and the instructor didn't explain to the class why we had to declare main "public static void" for about 2 months (until that point, it was just "that's the way you have to do it, so do it"). I found it quite frustrating to have to read the book just to get a decent explanation of what's actually going on. Well, anyway, I vote for Python. Simpler than Perl (IMO), just as complete, and useful in the real world (unlike, say, Logo or Basic). -- (Remove the leters S,P,A,M and then rot13 to email) |
| VB is good for beginners (Score:1) by Drone-X (jonas.devuyst@advalvas.be) on Friday May 26, @04:07PM EDT (#255) (User Info) http://www.drone10.com |
I pretty much learned programming using VB4, I tried QBasic for that but VB4 had an excelent tutorial for beginners (which they dumped in later versions BTW). The reason I learned a lot from VB was its simple syntax, the event-oriented approach and the object (caugh caugh, yeah you heared me: objects). When learning VB you get to see objects like forms, buttons, etc. while avoiding the difficult task of creating them on your own. I believe that if you're cut out to be a programmer, you will eventually get interested in creating objects yourself and trying other languages (and disliking VB like I did). Another advantage of VB is that you get imidiate results, I don't think it's a good thing to let children study before they get to program. You wouldn't want to discourage them. The same could probably applied to Delphi, though I think the VB syntanx is better and easyer than the Pascal one. Especially for beginners who'll want to avoid traps like ;. Help the Unfortunate please - http://www.thehungersite.com |
| Logo, Pascal, VB, etc... (Score:1) by DirtyHarry on Friday May 26, @04:08PM EDT (#256) (User Info) http://www.geocities.com/theDirtyHarry_1999 |
| Good God. I remember my first step in Logo. Got little cars drive over the screen on a little street. Next Thing: Turbo Pascal, I loved it. No I didn´t. I mean it was nice but not that cool. Quite informing in a way but not the real kick. The next step was Visual Basic. Very nice: Little work - nice looking program. But this is all fake. If ou really want to get serious, you soon learn to hate it. Whatever, this is only my personal experience. So, what to do? Start with C++? Heavy, but worth a try. The question is, whether a 13-year-old has fun with that kind of language. I would prefer the LEGO robots. Actually I think I will get one of theses sets... Always run = ON |
| What not to pick. (Score:1) by ucblockhead (sburnapSPAMSUXlinux@attSPAMSUX.net) on Friday May 26, @04:08PM EDT (#257) (User Info) |
| I'd say, avoid kitchen-sink languages like Perl or C/C++. They tend to have idiosyncratic syntaxes and are simply too big for a first language. Remember that the best language is not necessarily the best first language. To introduce programming, language versatility isn't particularly important. What you want is something that implements basic comp. sci. concepts very cleanly, without wierd syntax. Best to go with things originally designed for learning. BASIC (not VB but just BASIC) or Pascal would be good choices. Even better, something like LEGO mindstorms specifically designed for kids. Let them learn the basic concepts first. Then introduce them to the more complex languages like C++ or Perl. Those who will not reason, are bigots, those who cannot, are fools, and those who dare not, are slaves. -George Gordon Noel Byron (1788-1824), [Lord Byron] |
| How about VBA (Score:1) by kawlyn (kawlyn@notmail.com) on Friday May 26, @04:08PM EDT (#262) (User Info) |
| I know it's not a real language but if you are considering Visual Basic VBA is a great place to start. It's actually quite powerfull and kinda fun, in that you can build a Tetis game into a your default spreadsheet to make it look like your actually working. Python is another popular one being mentioned. It'd be a good place to start as it's OO and from Python you can got to JPython and then Java then C++ in a fairly logical order. |
| Give Pascal a chance (Score:1) by Csy on Friday May 26, @04:09PM EDT (#266) (User Info) http://pubpages.unh.edu/~cpforbes |
| I'd have place my vote for Pascal. I learned Pascal in 7th grade and continued programming in Pascal until 9th grade. Of course, way back then (10 years ago :) writing graphical programs by filling arrays, playing with pointers and writing into video memory (we're talking 320x200 here) was both fun and educational. Anyway, I'm sure your kids could find some fun applications for this simple yet elegant language. After a couple years of Pascal, I moved up to C++. I had little style sense and little "deep" understanding of the languages, but I picked things up very quickly when I finally got into college and started the CS program. |
| Game scripting languages? (Score:1) by SteveSmith (steve@nospam.serisilks.co.uk) on Friday May 26, @04:09PM EDT (#267) (User Info) http://sosmith.future.easyspace.com |
| A few months ago, one of my cousins bought a Windows game that included a simple scripting language (Star Trek Starship Creator, I think), and spent a little while learning that. Sme kind of game scripting system might be appropraite, for rapid gratification? (Don't get Starship Creator - the language is truly appalling. I'm not sure what else is available, but it would certainly be interesting 'research'.) Obvious comment: The best language will depend on the child. |
| use a functional language (Score:1) by bandix (onaqvk@ybbxfunec.arg) on Friday May 26, @04:10PM EDT (#268) (User Info) |
| I would recommend starting your kids off on a functional languages as most universities now do with incoming freshmen. Scheme is the language of choice and I think it's an excellent starting point for any programmer to use to learn algorithmic thinking processes. It also forces a programmer to think very carefully about his boolean statements, a skill that will come in handy later. Furthermore, the time it takes to develop working code in Scheme is substantially lower than the time it would take in a language like C due to Scheme's abstraction. Your kids may have attentions spans even shorter than most nerds! They will appreciate the fact than an idea can become a working model very quickly once they have learned the Scheme primitives. Good luck with them. If they're asking to program, you've done a good job raising them. =) -- Brandon D. Valentine |
| It's not the LANGUAGE, it's the INTEREST (Score:1) by eTylik on Friday May 26, @04:11PM EDT (#274) (User Info) |
| Here's the first question. What does the child want? I mean what is sparking his/her interest in wanting to learn to program. That's where I'd start. I learned on basic and yes, it's a great language, but as others have said, don't under estimate your child. They learn a lot quicker than we do. If basic won't fit what sparks their interest then go with what does. If the child would like to have a state of the art website with tons of programmed things, then teaching them html and javascript, perl, and php would be a great choice. If they want to write a game perhaps c/c++ would be the best language. Unfortunatly for a kid to write something that keeps up with the times isn't as easy to do starting out as it was say 10-15 years ago. Taking that into account you might want to help guide them into choosing an achievable project while still doing something that interests them. This would keep them from being upset if it doesn't turn out looking like the coolest game currently off the shelf and ultimately keeping them from programming in the future. Just my two cents. |
| Start 'em when they're young... (Score:1) by Rower227 on Friday May 26, @04:12PM EDT (#276) (User Info) http://www.angelfire.com/ct2/krauss |
| My parents started me on BASIC when I was five, and since neither of them can code to save their life, they got me that cute little 321-Contact magazine which had BASIC programs in it every month. Needless to say, I learned not a thing. Fast forward 13 years... Now a college freshman. I taught myself C++ for kicks. Since FORTRAN is a requirement for engineering majors at my school, I learned it. I did not like it, and so I continued to use C++ and tried some Python and a little Perl. My little brother is 13, and he can handle C++ and FORTRAN with no problem...he actually likes FORTRAN better. I use MS Visual Studio with him, since he likes it, and he got along just fine with a college-level introductory C++ textbook. He basically taught himself and asked me for help when he needed it. Go for C++, it's simple and quick to learn. The kids will stay interested if they are able to accomplish things early in the learning process. Kids have short attention spans, so whatever book or other teaching method you use, make it interesting. "The future belongs to those who can look at a challenge and see an opportunity." |
| Games (Score:1) by neo on Friday May 26, @04:12PM EDT (#278) (User Info) |
| Omega comes to mind first. Back when I was younger I would spend hours making the robotic tanks in Omega dance around each other killing with giant cannons. The language was advanced enough that you sometimes needed to look things up, but was easy enough to start right away. a link: http://www.atlantic.net/~flburns/omega/ Oh, and if you ever had an error in your code, you fixed it right quick, too. There are lots of other programming games too, like corewars! http://koth.org/ |
| Forget basic.... go with Java or C++ (Score:1) by zencoder on Friday May 26, @04:13PM EDT (#279) (User Info) |
| Function oriented programming only serves as a roadblock when you graduate to OOP. Start them out on a solid foundation of OO. |
| Teaching kids to code in C/C++ (Score:1) by StrutterX on Friday May 26, @04:13PM EDT (#281) (User Info) |
| My oldest is 10 now, but he started showing an interest in doing what I do when he was 8 1/2. I started him with Gnu C and "hello world". What I then did was get him to start writing a text adventure. This covers topics like planning, user input, strings, parsing, text formatting, database construction and access (although for goodness sake, don't tell your kid that's what they are). You can introduce each topic in small increments, and for each thing they learn there are immediate results that they get pleasure from. (The delight on my son's face when his mum selected girl from his character creation screen and it bailed out with the custom message, "Girls stink" was a pleasure to behold.) He has a fully working (if small) game that he wrote pretty much by himself. He is of course, incredibly proud of it. Now he wants to do a version of Hack, a much trickier proposition because it involves a graphic refresh. But, since he is no longer struggling so much with the language he can actually make headway with some of the more complex topics involved in handling that (often machine specific programming). I am currently preparing a "syllabus" for him to start assembly programming a game on the Colour Gameboy for later on this year. Its a little tricky, because it is very important to introduce only one new concept at a time (otherwise the kids feel overwhelmed). StrutterX (Game Programmer by Trade - so some bias here :-)) |
| Python (Score:1) by Pierce on Friday May 26, @04:13PM EDT (#282) (User Info) http://www.asi.org |
| I'd start them with Python. It's easy to learn and you can write Java code with jPython [c: same syntax, basically]. They can start writing code on the Win 98 box and later use the same language to write shell scripts for *nix or dynamic web pages. You can build graphical interfaces with Tk, MFC, GTK, Qt, wxWindows and a bunch of other toolkits. There's also work being done to teach Python as a first language in high schools. Code can easily be integrated with C++ or Java as well. Wayne |
| Beginning Languages (Score:1) by jne_human on Friday May 26, @04:14PM EDT (#283) (User Info) |
| If you want a well known opinion on the subject I suggest that you start with How to become a hacker. As for my own opinion.... I am not sure that starting off with something as high level as Mindstorm is such a good idea. This may create a level of expectation that might be unreasonable. They may get the idea that that is the way that programming is. I have to admit that this is an uninformed opion as to Mindstorm, I have only read about it. But my impression is that this is something that is easy to use and simple to see results. Although this can sometimes be true of general programming, it is more often a painstaking process that requires patience and careful planning. And the results are not always readily seen. The instant gratification that a tool like this might bring is the same idea that promotes Visual Basic and similiar products (Before you flame me know that I am currently a professional VB programmer). Rapid is the watchword with these environments. These products have their place, but it is not what I recommend to a beginner and it is not what I learned with. I was fluent in (vanilla) BASIC, Pascal and C before I got indepth with VB. I cannot tell you how much knowing those languages help me in my career and in my learning VB. I do not use them on a daily basis in my professional career, but the concepts and knowledge of the underlying structure are of immeasurable value. One thing that you can point out to these kids is that 90% of games that are written are written in C. If they truly want to follow in your footsteps and be a *nix guru then C is almost a prerequisite. If you do use something like Mindstorm to teach only use it to teach the basic concepts. The one thing that I don't think you would want to happen is for them to become trapped in a single language or platform. I know programmers that have no knowledge of C. While this does not currently hurt their professional careers, I can clearly see a difference in the quality of their programming with those who do understand the underlying structure of the systems that they work on, the knowledge that intimate knowledge of C brings. Whatever you do, teach them well. Teach them to write quality code. And for the sake of all that is good and just teach them to think outside of the box! These are the programmers that are going to shape the technological world in the coming decades. |
| Try Scheme (Score:3, Insightful) by Imperator (imperator@mytherDOESNOTLIKESPAM.com) on Friday May 26, @04:14PM EDT (#286) (User Info) http://myther.com/ |
| It's easy if you want to teach them the fundamentals of programming but Python syntax is too difficult. Book |
| How my dad got me started (Score:1) by SparkyB (sparkyb@hotmail.com) on Friday May 26, @04:15PM EDT (#289) (User Info) http://sparkyb.net/ |
| First of all I'd say you know your kids best and you should best be able to know what would interest them and what would turn them off. Also you can ask what they want to know or be able to do. However, you can't always work that way. Before you can do the really exiciting things like writing games like the ones you play, you have to start with the basics. All that being said I'll offer how I got started if that can be of any help. My first interest in programming was when a friend of mine made some program that did some calculation and showed the class in 5th grade. To put a time line on this I am 19 and a college sophmore now. Anyway, I asked my dad to teach me how to program (he is also a computer person). He started teaching me GW-BASIC from a book. We would go through the book together and do the exercises, I could ask him question, and I after writing something pretty much out of the book I might decide I want to make it do something else and we'd figure out how together. I still have the 5.25 floppy with all my first programs. They mostly printed my name repeatedly in random colors or drew stuff. BASIC is a terrible language but it is meant to be a teaching language (*Begginers* all-purpose symbolic instruction code). I don't know if that is still a usefully way to start (with QBasic) because when I learned people still used DOS, but I think you have to start with text based stuff which is simple before you use graphics and Object-Oriented environments. When I was in 7th grade I started working in QBasic and learned alot from a friend who was amazing at it. I read his code, tried to emulate some of the techniques. I got VB2 and learned a bit about how windows worked. In High school I learned PASCAL and C++ but alot of what I learned an figured out had little to do with the teacher and more to do with my ability to take what I had previously learned and figured out about programming logic and use the Borland C++ help files to help me apply it to C. Eventually I replaced VB with BCB. A friend helped me get started with Linux but after a while of asking him questions all the time I became self-sufficent. I have taught myself Perl, PHP, MySQL, mantaining a linux system, and an Apache webserver all in the last year. |
| MSCE out of high school... (Score:1) by kill -9 $$ on Friday May 26, @04:15PM EDT (#290) (User Info) |
| A friend of mine just mentioned to me today that brother Bill has set up some program somewhere so that students are getting their MCSE while still in High School, so just tell them to wait. But seriously to avoid being labeled slightly off-topic. I started with BASIC on an Apple IIc and later upgraded to LS-BASIC to GW-BASIC to QuickBASIC. I then hit real programming languages like Pascal and C in late high school early college. I think the key is to find an easy to learn language that is readily available on the machine that you can do some fun stuff with. (it was real easy to get sound and video going in GW and QuickBASIC) I also found it helpful to find purposes to write programs that solved real problems. I wrote a program to solve puzzles for this win a guitar rig contest (Pandemonium for anybody who is wondering. They went on to do video game setups as well). Worked fine until I reached the final puzzle but thats another story....(stuff that solves math homework, etc. were some of my other favorites) Unfortunately, I'm having a bit of a hard time coming up with some suggestions based on the criteria I've listed above. Drawing is pretty easy in Java and VB, but I feel there is a lot of other knowledge that one needs to beef up on to get to the fun stuff. (i.e. young ones might give up before getting to Mecca). Perl might not be bad, but it kinda lacks the 'fun' stuff like graphics and sound... (alright I'm sure somebody will pull some configuration from somewhere that will allow you to do this like Perl Tk or something but how easy is it to use and set up? I really don't know..) I like the ideas other posters are putting out there of things that aren't really related to hardcore programming (for lack of a better term) Lego Mindsprings (?) and stuff like that might be good. As for myself, I'm going to throw my kids straight into the fire and tell 'em to learn assembly and/or C... (it'll put hair on their chest... unless I have a daughter, then I may have to rethink my philosophy...) |
| Tcl/Tk! (Score:1) by dcecchi (dave.cecchi@REMOVEjavelinsolutionsSPAM.com) on Friday May 26, @04:15PM EDT (#292) (User Info) http://www.javelinsolutions.com |
| It's easy to use, it's easy to learn, and it's free. Perl/Tk is cool, too, I suppose, but I think Tcl might be better for the wee ones. get it! -dc |
| You are probably the rolemodel here (Score:1) by Steeltoe (stopSTEELTOEthe@fuckingMAILspam.now!COM) on Friday May 26, @04:15PM EDT (#293) (User Info) |
| Firstly there's no way you can force someone into learning a programming language and make them become good at it. So, when your kids are eager to learn something else on your computer besides playing games and browsing pr0^H^H^Hkid's stuff, you should consider the fact that your kids view you as their role-model. This can be both good and bad. Don't try to enforce your views on them, but try to give _them_ the choice of what they want to do (what results they want to get etc), support their decisions even though you disagree with them. What example do you set for your kids? I make an educated guess they have seen you programming some, either at work or at home. If not, they will have no idea what to imitate from you. Also, if they have never used or even seen a UNIX-like OS, they will have big trouble relating to- and learning that. The OS they learn to program in should be the one they usually use. I would therefore recommend installing Linux or BSD w/VmWare at home, so they have the *choice* to try it out at least. If they like it, they'll want to use it and program in it. Not before. However, they'll also have their fun to play around with these "arcane" CLI-OSes now and then (be like Dad). (Yes I know Linux/BSD is not CLI-only, but the CLI is one of the best charms/learning experiences of these OSes) This doesn't mean they *have* to begin programming in UNIX, but it's nice to think that at least they won't learn many of the bad habits you get from programming in a Microsoft-centric world, e.g Visual Studio. Anyways, in the beginning it's best to use a CLI-only interface to learn the basic ropes without getting distracted by nifty features. People who have always used pretty GUIs/IDEs are in deep-sh*t when they come to a CLI-only interface. They also tend to miss out on alot of good programming theories and styles (since they're used to reading Microsoft-help documents and try to compile until everything "works" instead of RTFM). One more advice: Give them access to the proper documentation and tutorials (books, not online crap). They should learn the rights and wrong from a good book which clearly defines everything there is to know in the language. There's no good substitute for good documentation, and it works wonders to read them at the bedside (in terms of learning. What you read in the evening, you remember longer but it also takes longer to learn to remember at all! ;-). You DON'T want the night-reading for the kids to be on the computer... Some people suggested Mindstorms, and I must say that sounds really k3wl. This is something that a kid may REALLY relate to I think, at a very low age too. However, it has boundaries and limitations. It won't really teach a kid to Really program. Another "programming language" with immediate results would be HTML/CGI w/Javascripts. However, this is also not a good substitute to really learn a real programming language in its right environment. A basic programming language with access to GUI libraries would satisfy the kids enough in the beginning anyways methinks. (They don't really expect to create immersive 3D-games, and making applications is B00RING! ;) I would recommend an OO-language, perhaps Java is the best/easiest one in this regard. As a starting language you learn to think in objects rather than pointers and references in C++ ;-) Note that I don't think Java is any prettier/more functional language though.. Remember the whole thing should be fun and social. I don't think it's cool to raise a bunch of lone geeks who wants to be like Dad. It doesn't nescessarily mean they have to sacrifice learning good programming, but there are other things in life besides computers and programming. PS. If the kids lose interest you could always play them a tape while they're sleeping saying: You waaant to program P3rl, you waaant to bee like Daaad... - Steeltoe |
| Teach them at least TWO DIFFERENT ones (Score:1) by alispguru (bane@removeme.gst.com) on Friday May 26, @04:16PM EDT (#294) (User Info) |
| The suggestions of Visual Basic, Logo, Squeak, and JavaScript are all good, because they all have graphical interaction and ways to write a small first program. I would be careful, though, to keep a new programmer from fixating on any of them as the One True Way to communicate with computers. I know a lot of people who are decent hackers in language X but are helpless outside it, and many of them don't want to learn anything different. The people who are going to own the world are the ones who can change their toolsets in Internet time, the ones whose opinions are based on use rather than on prejudice. The best start you can give your kids is experience in more than one way to compute. Once they have an interest in one language, show them something they already know how to do, but in another environment. If they started out OO, try something that isn't, and vice-versa; if their first language was all drag-and-drop, slip in something with structured text; if they start out in Visual Basic, show them something cross-platform, so they'll know other platforms exist. Remove the obvious stuff to email me |
| QBasic (Score:2) by Skinka on Friday May 26, @04:16PM EDT (#297) (User Info) |
| Yes, basic is a real crummy language. Yes, one of the first thing it'll teach you is how to use goto's. Yes, I think it's the best language for small kids. Basic is good for this particular purpose because you can write a working program without learning any theory. It would be downright cruel to give a 700-page Java book to kid who just wants to make something. Basic may not last very far, but it will help your kids to decide if they are at all into programming. Besides, for a programming newbie a program that simply takes two ints and sums them is a triumph because for the first time they can say "look *I* wrote that program". |
| Teaching Teenagers Java (Score:3, Informative) by nano-second (fetid@swamp.bog) on Friday May 26, @04:16PM EDT (#298) (User Info) |
| There's a project out of UBC (University of British Columbia) that has a program for teaching teenagers Java. It involves programming a Virtual Family. A bit reminiscent of the Sims idea... The website is here Look for links pertaining to 'Virtual Family'. It's intended for Win95/98, and I believe it's still being worked on. I am not sure if you can just 'buy' a copy, I think you may have to get a beta version and give them feedback on it, after using it. (I may be wrong here... info should be on the website). --- I hope you're not pretending to be evil while secretly being good. That would be dishonest. |
| Perl. (Score:1) by ish__ on Friday May 26, @04:17PM EDT (#301) (User Info) http://as.themes.org |
| Id suggest Perl, if youd like to introduce them to both *nix and programming at the same time. Its robust, easy, and (in theory) cross platform, so if they refuse to use the command line, they could do it in windows. Plus, using Tk (in X or Windows) or Gtk+, they can create graphical applications that are a bit more familiar. |
| I think algebra might be a first step... (Score:4, Insightful) by Kernel Corndog on Friday May 26, @04:17PM EDT (#302) (User Info) |
I am not exactly sure what age level kids learn algebra these days but I think it is an important step. What I'm really trying to get at is the concept of variables. I know that was at first a hard concept to figure out. If your kids haven't learned algebra then hey maybe it would be a great time to kill two birds with one stone. Finally kids can see where that math pays off! Now I haven't looked at all the comments frankly since none of them were at the 4 or 5 level. So there is a chance that I could be saying something already said. So here it goes. Make sure that you give them a good lesson in computer history. A person must have good, strong roots in order to grow strong. Teach them binary. Let them know there is more than one way of counting things. Once they have a good foundation don't be afraid to teach them the 'hard' languages. How many times would we M$ converts be grateful it we had be taught a real operating system in the first place? I know you say your kids are primarily on windows and playing games but maybe it's time to introduce them to the greater powers of the computer. I started out playing games on the computer too. Then a game came a long named X-Wing. Awesome game. The only problem was when I died my pilot was gone. Everything I worked hard to achieve was gone. That's when I learn the copy command to save my pilot file somewhere else just in case. They've only just scratched the surface and now they are asking you to teach them more. Personally I would not look towards the 'easy' languages that's just seems like scratching a little bit harder at the surface. I rather just get to the root of it and then let the rest fall into place. They can handle it. I think C/C++ or Java would be a good place to start. But more importantly the underlying principles of programming is what should be concentrated on. Once you know what algorithms are and what variables are does it really matter what language you learned it in first? Which ever language you do choose I'm sure they'll thank you for it later. :) |
| Re:I think algebra might be a first step... (Score:1) by enneff on Saturday May 27, @03:54AM EDT (#884) (User Info) |
| Incredibly, I actually learnt the bulk of algebra through basic programming when I was about 8 years old ! :) A knowledge of algebra certainly isn't necessary to being programming, I can even see how it could be of hindrance to some. (ie maths v programming syntax) |
| Re:I think algebra might be a first step... (Score:1) by awx (alex at mysite dot co dot uk) on Sunday May 28, @04:39AM EDT (#1001) (User Info) http://www.alexandnick.co.uk |
| Sorry, but it was *totally* the other way around for me. Learning basic on an old v-tech thing when I was about 5 years old taught me the concept of variables waay before school tried to. Basic really helped me with math, giving me an immediate advantage over the rest of the kids there. Even in my GCSEs (UK exams at age 15/16) I am much more competant at algebra than most. If you want qbasic, get version 4.5 off the net - it'll complile (DOS/Windows, sorry) binaries... alex |
| SmallTalk? (Score:1) by doug on Friday May 26, @04:19PM EDT (#306) (User Info) |
| First of all, the language is less important than the motivation. Pick a project that will interest them, just to motivate them to learn. Sure, they want to learn now, but they haven't tried debugging yet. Finding flaws is the cross that we programers have to bear. IIRC SmallTalk was designed to teach 6 year olds how to program. It doesn't have too many syntactic wrinkles and they'll be starting with OO (which is supposedly easier, not that I'd know). Of course, another approach is to just "jump in with both feet" and show them exactly what you are doing. No contrived examples, and it should be a domain that you know fairly well. While they are young, don't assume that they're too stupid to learn. |
| I have the same dilemma... (Score:1, Interesting) by Anonymous Coward on Friday May 26, @04:19PM EDT (#307) |
| My mother only recently started getting into computers, and she asked me to teach her Linux over the summer-- including some programming. I considered starting her out on a BASIC interpreter under Linux, but I decided against that-- she needs USEFUL programming knowledge. I considered Perl, but Perl was more oriented towards text processing, etc. As such, it's definitely a powerful language, but also prone to getting ugly. Certainly a great "second" language, but not quite right for beginners like my Mom. I went straight from QBASIC to C at 13, and that was tough enough-- starting her out cold with C is definitely NOT an option. Then I looked at Ada, but that was a joke. For its complexity and inabilities, it didn't produce any results that somebody like my Mom could appreciate. Shell scripting was certainly a possibility. But the fact of the matter is, she doesn't even have a firm grip on the shell yet (she's new to Linux, remember...). So that's out. Lisp is certainly feasible, but it's very different from other programming languages, so that makes it difficult to teach her other stuff later on. So Lisp was out. Tcl/Tk? I've never used it. That's horrible, I know. But I know nothing of the language, so I couldn't do that. Finally, I looked at Python. I didn't know Python, either. But I picked it up pretty quickly (even for a pretty experienced programmer). After seeing how friendly it was, I decided to go with Python. And, go figure, they have all sorts of resources for people wanting to learn the language! IDLE is a great environment for being in its early development stages, Python has great OO-style features that are simple enough to learn and grasp. I finally chose Python, and my mother is having a blast. It's her first week programming, and she's already playing with Tkinter, OO concepts, and file I/O. Her FIRST week programming (well, okay, she took some BASIC classes back in 84 or 85). If you want to teach your kids, Python is good for it-- and Windows binaries are available from python.org, so you can get started right away. I think Linux Journal even ran a supplement about Python in education or something recently. I know that there's a big Python-in-education thing going-- it's called "Computer Programming for Everyone", or CP4E. Check it out at python.org/cp4e . Lego Mindstorms will certainly give your kids the link between program and result, but I can guarantee you that they will soon become bored with the limitations of such a system. It's nice to be able to move the big robot, but all it really teaches them is how to control small motors in the proper sequence. I would recommend you start your kids out on Python. After about a week or so, ask each of them if they have any ideas for a cool program. Help them out with these projects, and see them through to completion. In the end, the kids have decent programming skills and a program they can not only take pride in, but use as well. They'll find that a lot more useful and cool than moving robot arms. Just my opinion, though. You know your kids better than me. |
| Logo! (Score:1) by Calmacil (wolak@uiuc.edu) on Friday May 26, @04:19PM EDT (#308) (User Info) |
| I remember my first language: Logo. It was cool. because you got to control that little turtle thing, and was a high enough level language as to be quite easy. I can't remember how old I was when I learned it, but IIRC I still believed in Santa at the time... Calmacil I can't seem to face up to the facts, I'm tense and nervous and I can't relax... --Talking Heads |
| Are we teaching logic, or good programming habits? (Score:1) by proggoddess on Friday May 26, @04:20PM EDT (#310) (User Info) http://www.cs.cmu.edu/~atanacio |
There are several things that you might be trying to teach at the same time: 1) mathematics and logic, 2) computer science algorithms, 3) good programming habits, and 4) working hard and enjoying the finished product. Obviously, any programming language will result in #4 (provided they do finish their project!). Visual environments take away some of #1 and #2. It's too easy to use a calculator than to learn long division. Strict and structured languages promote #3. Environments like Emacs can be set up to smartly indent code so it is more readable. I'm a software engineer (yay, process!), and I think it would be a great bonus if kids worked in pairs or threes, with each one doing part of the program. Then they have to put the two pieces together. Bad indentation, and lack of comments will be frowned upon by the others. I remember in high school, one classmate of mine named all of his variables after his uncles. Try maintaining that code! ;) I grew up with the BASIC book, Blast Off! published (I think) by Sybex, circa 1985. It covered all structures and statements, and some low-res graphics. It finished with a project that put all of the pieces together into a graphical story with animation. Your local library may have this and other "oldie but goodie" out-of-print books. In summary: I'd recommend a non-visual environment with a strict language like Pascal or Java. Working in groups will use peer pressure to keep coding habits in line. Having a book that starts off small then finishes with a big, fun, graphical project will build a sense of accomplishment. --The Programming goddess from Gorflaz |
| Early Programming (Score:1) by xman7 on Friday May 26, @04:20PM EDT (#311) (User Info) |
| Kids should probably start out with something like VB. Even though it's usefulness is in question, it covers the basics (loops, selection, objects, debugging, variables, strings, etc) Once they have this down, you can move on to a better, more difficult language like perl or C++, building on the basics learned in VB. |
| Tcl/Tk might be a good starting language (Score:1) by Melski on Friday May 26, @04:22PM EDT (#317) (User Info) |
| I suggest Tcl/Tk over VB. It's easy to learn and use, and powerful. You can quickly make impressive GUI's. Because it is interpreted, you can make changes to your program on the fly and immediately see the results. It has its roots in C, rather than BASIC, so it provides a good lead in to systems languages. It's cross platform. There are several good books about it, including "Effective Tcl/Tk Programming" (Harrison/McLennan) and "Practical Programming in Tcl and Tk" (Welch). I think it has everything you need to be a good instructional language. Visit: http://dev.scriptics.com for more information about Tcl/Tk. - eric |
| They are just kids. (Score:1) by kirwin (deathb4spam@zoomnet.net) on Friday May 26, @04:23PM EDT (#321) (User Info) |
| I started on x86 assembler, everything made sense to me then. I hear that Pascal is good for beginners. There are many questions that I have for this situation. How long can you hold their attention? If not for a long time, IDE's are not good. I am sure that it would be frustrating to teach a *nix IDE to a child, nevermind learning how to use a Windows IDE (not gonna happen), then teach it to the child. What do they want to do? How about Html? They can make their own webpage. When they start to get the hang of it, teach them some sort of cgi. You are a *nix guy, teach them bash. Do they really want to learn how to program, or do they want to find some way to identify with daddy? Please don't take offense to this. Perhaps they see that you code often, and think that it is a good way to bond with you. Perhaps you should try to delve into their activities. |
| MUDs (Score:1, Interesting) by Anonymous Coward on Friday May 26, @04:23PM EDT (#323) |
| Hi, One way might be to get them into MUDs... It'll start off innocently and before you know it they'll be doing serious coding and won't even see it as "coding"... All the best. |
| Kids of what age? (Score:2) by Mr T on Friday May 26, @04:23PM EDT (#326) (User Info) http://www.sit.wisc.edu/~kljense3/MrT.html |
| Logo is damn sweet. I was the turtle mutha f---in' masta when I was 4 and 5. After that you have to find what it is the kids are in to and then give them the right tools. Pascal, Java, Modula-3, Python, and Smalltalk are all great. Simple, elegant languages that are easy to learn. I would hold back on C and C++ until they are a little bit older, I think I was about 10 when I started to play with C and it was really tough until I was maybe 13 or 14 and started to really grasp the concepts.. I think those robot lego toys are pretty cool, I've never used one but I bet it would captivate the hell out of me when I was 6-12. Hell it might still and I'm, 24. |
| Java/JBuilder (Score:4, Informative) by jabber on Friday May 26, @04:24PM EDT (#328) (User Info) http://slashdot.org/comments.pl?sid=jabber |
| No, really.. * JBuilder Foundation is free (as in beer) and comes with the JDK. Few parents can justify spending $hundreds on an IDE for their child. * It will let kids put together a simple GUI just by dragging buttons and stuff around. Immediate sense of accomplishment keeps kids interested. Writing a "Hello World!" program isn't impressive enough to keep their attention. VB will do this, but it's expensive. * It let's you make a graphical change in the GUI designer, and immediatelly let's you see the changes in code - and vice-versa. This is great for demonstrating how changing X and Y values of an object translates to a GUI layout. * The code is pretty simple to read (may be my bias, since I'm familiar) when compared to C and even VB. The syntax is pretty straightforward, and the API naming conventions are consistent and English - no modified Hungarian notation here. There are some freaky things (for a kid) like escaping characters in Strings, logical operators, ternary (?:); but there are no pointers. Pointers hurt small heads. * The IDE color-codes keywords and offers dynamic lookup of methods and parameters, organizes declarations and definitions, supports auto-indentation for readability, but doesn't enforce 'weird' habits. VB will structure their code for them (Capitalizes keywords, automatically normalizes spacing and such BS) but I've found that this just makes people sloppy - some discipline is good. Unlike VB, in JB you see all your code. VB keeps the subroutines visually separate - this breeds bad habits and confusion later, with REAL languages. * It's something that they can show to their friends on the net, without the complications of VBRUNxxx or missing libs or actually copying the executable. Applets are a neat thing for this. Peer reinforcement is a powerful thing in the teen and pre-teen. * It's a simple, yet non-trivial language that's a valuable skill (nobody hires Mindstorms developers). Granted, they're kids and it's not yet a priority - but Java is Cish in syntax, and the transition will be easier later; it's something they can use non-trivially NOW. They can do MATH homework with it, they can do hard-science with it. They can even hack together their own mini-ICQ with relatively (to other languages) little effort. * It's something that will scale as their skills and interests grow. The API is developing and includes built-in support for neat-o things like images, sounds, 2D and 3D graphics; as well as XML, databases, real-time, complex math, crypto. * It's as simple or as complicated as you want it to be, and the performance (a sore issue for hardened developers) is not a problem for kids writing toy programs. Once they start complaining about the poor performance of the interpreter, it will have done it's job. :) Add to this a decent book, with examples, and you should be golden. -- What you do today will cost you a day of your life. |
| One more benefit (Score:1) by Kwil on Friday May 26, @04:48PM EDT (#419) (User Info) http://www.cadvision.com/kwil/index.html |
| Additionally.. there are a bunch of games already out there that have been written in Java, and you can easily pick up a Java Decompiler and let your kids mess with code that's already been built. I personally like JAD for opening up java programs: http://www.geocities.co m/SiliconValley/Bridge/8617/jad.html KWiL |
| Really! Java/JBuilder (Score:1) by lophophore on Friday May 26, @07:41PM EDT (#700) (User Info) |
| Besides all the points made by jabber, they would learn a marketable skill. Sure, there are jobs for perl, python, or VB hackers, but there is some serious demand for Java programmers... And that does not appear to be going away. Besides, a java programmer knows enough basic syntax to be able to translate their java skills to C or C++...
|
| Re:Java/JBuilder (Score:1) by WamBamBoozle on Friday May 26, @07:49PM EDT (#705) (User Info) http://www.rahul.net/tom/ |
| ToonTalk seems more appropriate for younger would-be programmers. "ToonTalk is a video game for making video games." "It's an animated world where kids can make, run, debug, and trade programs." But what really gets me excited is "ToonTalk is an interpreter for a concurrent constraint programming language" Apparently once you've assembled your game it will automatically translate it into a Java applet. Wow! |
| Re:Java/JBuilder (Score:1) by TummyX on Saturday May 27, @01:10AM EDT (#836) (User Info) |
| Unlike VB, in JB you see all your code. VB keeps the subroutines visually separate - this breeds bad habits and confusion later, with REAL languages. Un no it doesn't...not if you don't want it to. Look in the options dialog sometime. |
| Re:Java/JBuilder (Score:1) by PeterBecker on Saturday May 27, @04:01AM EDT (#887) (User Info) http://www.PeterBecker.de |
| I would prefer to teach a programming language and not the use of an IDE. JBuilder seems much to complex to me for this use. I would like to have a kids version of VisualAge -- this is really object oriented and visual thinking. Maybe Together might be an option -- going the UML way instead of writing classes in plain old text. Unfortunately the whiteboard edition doesn't offer the compile options but this shouldn't be that big problem with some big buttons for scripts aside. Peter |
| Re:Java/JBuilder (Score:1) by cretog8 on Saturday May 27, @10:36AM EDT (#947) (User Info) |
| I don't know JBuilder, but Java with a nice IDE seems a very good choice. And have them do Applets Only at first. One of the great things which is possible now is quite serious programming while keeping the program isolated to its sandbox. That's a good thing while learning. I think it's also good to start with a "real" language, rather than a language confined to some special learning tasks. It depends on the personality of the kids, but the real power of programming is that it lets you do whatever you want. Sacrificing a big chunk of that freedom for special kid-friendly programming goals (Logo, etc.) seems a shame to me. Mindstorms are pretty cool, with a lot of big buts. But there's not enough RAM to do the kind of things lots of folks want to do. But it's very special purpose. Mostly: But robotics isn't (just) programming, it's a very physical thing. Not that kids playing with Mindstorms won't learn a lot, but I would imagine a purer programming environment would be better to learn programming. |
| Getting started programming (Score:1) by lgas (john@ginch.org) on Friday May 26, @04:25PM EDT (#331) (User Info) http://www.2wrongs.com/ |
| I did some programming with logo and basic in elementary school, and early in high school I got into UNIX and VMS on x.25 because I had pretty much made the most of what I had at home, but the first thing that got me *REALLY* into programming was when I was in high school and on lots of acid and I realized that I could make some wicked trippy programs in Turbo Pascal on DOS... I think maybe that's the trick, get your kid dosed early. (The run on sentance above was entierly my fault and should not be blamed on drug use). |
| Mind Rover (Score:1) by tjgrant (tjg@NOSPAM.exceptionalminds.com) on Friday May 26, @04:26PM EDT (#334) (User Info) http://www.exceptionalminds.com |
I've seen a lot of comments about Mindstorms, and that is truly excellent, however, a new tool that I have discovered (with which I plan to start teaching my six-year-old programming) is a game from Cognitoy called Mind Rover. It has gotten excellent reviews in the game press, but hardly anyone has ever heard of it. Its premise is simple, accept a challenge and then build a rover to solve the challenge. Rover's are created from various kinds of chassis with various kinds of components--such as radars, bump sensors, etc. When you have picked all your pieces you wire them together using graphical programming environment (somewhat like Lab View). Then you test your rover to see if it is up to the challenge presented. Stand Fast, |
| Not just the language (Score:1) by jedwards on Friday May 26, @04:26PM EDT (#336) (User Info) |
| The children need a project to work on. Whatever the language, learning the basic principles just by writing small programs simply to illustrate those principles gets boring quickly. You need to find something achievable, with some quickly achievable and satisfying early milestones. |
| try object-oriented (Score:1) by randomspaces on Friday May 26, @04:26PM EDT (#338) (User Info) |
| My daughter started at about 9 with MIT's MOOSE Crossing environment. (She's now a total geek grl deciding which college to go to double major in CS and theatre tech.) The program was a part of the thesis study of Amy Bruckman who is now at GaTech, and has taken MOOSE with her. http://www.cc.gatech.edu/elc/moose-crossing/ Kids build their own environment and populate it with objects, pets, whatever. What's appealing is that there's lots of interaction between the kids (thus dispelling the isolated coder who can't deal with real people stereotype) while they learn programming in a cooperative atmosphere. At 13 they can become "rangers" in an online ceremony, and get more experience leading and teaching the newcomers. |
| what do you _really_ want to tech your children ? (Score:1) by Zeno of Elea on Friday May 26, @04:26PM EDT (#339) (User Info) |
| Before you teach your children to program, decide what you want to teach them: do you want to train hackers, systems administrators, sweat shop programmers, or problem solvers, or consultants, or ... ? There is an old joke about MIT and Boston University engineering departments - if you want to hire an engineer to hit the floor running go to BU, if you want to hire and engineer who will keep running in 10 years go to MIT. Its unfair, and probably untrue :-) but the idea is that the important basics - mathematics and problem solving last longer than the current fad of tools. I think my thoughts are my own, and I believe my writings are too. At least that is what they tell me. |
| The way to go... (Score:1) by MasteroftheVoxel on Friday May 26, @04:27PM EDT (#342) (User Info) |
| is Lisp... |
| BASIC of course (Score:1) by Frédéric (fred@ihatenetscape.com) on Friday May 26, @04:28PM EDT (#345) (User Info) http://fly.to/tiange |
| i have learned BASIC at 12 yo on a Sinclair ZX81, with the bundled manual, i never bought or use other books about BASIC. After i have continued BASIC on my Amstrad CPC6128, then started assembler (z80) using books of course. I had chance my Amstrad was running CPM+ (3.0) so i could use DBaseII and TurboPascal3, this is where i started to program in Pascal. When i had my PC is continued Pascal (tools were the same), then C and x86 asm, then Eiffel, then prolog, then then then... anyway to start, BASIC is the best, there's QBASIC.EXE on each win95/98 CDROM (maybe not 98SE i don't know?) in OLDMSDOS folder somewhere, with help. -- BeDevId 15453 - Download BeOS R5 Lite free! |
| Your Kids Deserve Python (Score:1) by spoonboy42 (/dev/null) on Friday May 26, @04:28PM EDT (#346) (User Info) |
| My first programming experience was in 1990, when I was 5 years old programming GW-BASIC on a Tandy 1000. I thought I was pretty cool when I could write an invisible maze program. It got even better when I figured out the graphics commands and made little circles on the screen. Oh, did I mention that I had to specify line numbers and that my programs were 100% sequential? While (Q or V) BASIC may be temping for youngsters getting into programming, I can tell you from my own experience that it actually harmed me as a programmer. A few years later, when I learned Perl on Linux, I found that my ability to deal with modern programming concepts like subroutines, object-oriented programming, and control structures was hindered by my background with this very poorly designed mess called BASIC. And it wasn't even a usefull mess like Perl! Since then, I've learned C, Python, and Java as well. I can tell you that without a doubt Python is the language to start your kids out on. It is cross platform, so they can get their feet wet in Win98. Of all the *serious* programming languages out there, it is the easiest for beginners without being intentionally crippled (a la Pascal). It even has a really slick IDE, IDLE. Once your little ones are comfortable with the language, you might try getting them booting into Linux or *BSD. Whether or not you do, though, their next language ought to be Perl. Sure it's messy. Sure not all the syntax makes sense. But hey, it's one of the most enormously usefull tools in a programmer's arsenal. It will also give your children experience with free-format and more C-like syntax and structure, which will help them as they move on to systems programming. With this path, the intrepid young programmers will be ready for C in no time. Bookwise, I recommend Learning Python (I think there's a version geared towards win32 now) and Learning/Programming Perl from ORA. Once they're ready, get a copy of "The C Programming Language: Second Edition" from Prentice Hall. When Dennis Ritchie is an author, it's gotta be good. Never send a general to do a diplomat's job. -Me |
| TRUE: Basic cripples. Excellent observations. (Score:1) by NRAdude (devnull@slashdot.org) on Saturday May 27, @12:47AM EDT (#828) (User Info) |
| You are 100% correct. People should start learning a verry complex programming language first. I wish I never knew BASIC existed! I wish, I wish, I wish(stomping my feet in anger). It is a verry pointless "language" and all the "optimizing" compilers that make the executable file are verry inefficient. Ontop of that, every compiler does NOT stay within the syntax. So, good luck hunting-down the distribution-specific compile-time errors. I started off on MS Qbasic and I used the Borland Turbo Basic compiler. Verry cruddy. I thank myself for discovering the Linux world. ahhem... I mean the Unix world. --Want to know what a seagull tastes like? It is somewhere between Bald Eagle and White Rhinoceros. |
| Consider Alice (Score:1) by Corvus on Friday May 26, @04:29PM EDT (#348) (User Info) |
| Take a look at the Alice project. It's a 3D, interactive programming environment. Plus I'll throw in another vote for Python and its Computer Programming for Everyone project. And it turns out that Alice and Python work together nicely. Hooray for your kids! |
| What about javascript/html? (Score:1) by Takatsuki on Friday May 26, @04:30PM EDT (#351) (User Info) |
| practical, easy-to-use, ready-made GUI, some quirkiness but some OOP concepts and linguistically in the c/java family. and OS-independant. whoohoo. -- andrew.g.hull "I can't send an email. Is the Internet full?" |
| try lingo (Score:1) by ZeissIcon on Friday May 26, @04:31PM EDT (#356) (User Info) |
| you might find an old version of Macromedia's Director, like version 5 when you still had to program all of the lingo by hand. It produces great visual results, is able to handle complex programming problems, and is still easy to learn. A lot of the commands are intuitive, and if they get stuck, there are syntax checkers, etc. built into the program. Because of the visual nature of the application, there is a lot of visual feedback and some immediate gratification. Try programming a "choose your own adventure" type sequence with variable endings depending on the choices you have made earlier in the story. Teaches global variables, for/next, etc, and at the end they have something that they can play with. |
| VB (Score:1) by Sri Lumpa (rousseauj1SP@Myahoo.com) on Friday May 26, @04:32PM EDT (#358) (User Info) http://www.opendvd.org |
| I think Visual Basic should please 11-13 years old kid very well given that you can easily do nifty stuff like sending love letters just when their hormones are calling to action. "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates, The Road Ahead, Viking Penguin (1995) |
| Real GUI programming which is simple (Score:1) by Salvo (salvo at bigpond dot net dot au) on Friday May 26, @04:32PM EDT (#361) (User Info) |
| Most kids I know can relate to a GUI interface better than Command-line output. If they want to see results quickly, and actually want to know how they reached thier results, I suggest Delphi or C++ Builder. There is the issue that after they've designed the GUI, they might not be interested in the actual code anymore, just the outcome (and where's the fun in that). BeOS (or AtheOS) is another good answer. The API's are completely legacy free, and simple, and BeOS comes with a Version of Codewarrior, to keep everything in order. There's also a healthy amount of legacy code. I'm of the opinion that there isn't enough Good sample code for Windows, and there is too much sample code for X/Unix for a beginner. BeOS is a good balance, and if they want to try something more adventurous, they can start playing with AtheOS. Both these OS's could do with some more apps and addons/plugins (AtheOS especially). Don't forget to ensure that thier knowledge is varied. It's pointless to learn an OS intimately if the company (or philosophy) fails. |
| From Basic to Quake-C (Score:1) by Lazy Jones (LazyJones@atari.org) on Friday May 26, @04:34PM EDT (#368) (User Info) http://pobox.com/~mjy |
| I was fascinated with programming when my dad typed in a small "number guessing" program to keep me busy. Perhaps a modern equivalent would be something written in Quake-C... |
| What about Lingo? (Score:1) by wugmump on Friday May 26, @04:34PM EDT (#369) (User Info) |
| It's quite a hefty investment, and it doesn't run on any open-source operating systems, but I happen to think that simple Lingo programming can be quite satisfying for non-programmers. The syntax is very high-level, and the payoff can be magnificent, especially if the kids learn the timeline and keyframe animation system first. There are more elegant, more intelligent ways to program graphics, but there are few easier ones that are that powerful. Don't flame me! We're talking about kids here. w "It's OK, my sheet's got a hole in it!" |
| Re:What about Lingo? (Score:1) by Master of Kode Fu (jSoPeAyM@sStPeAeMlSbPrAiMdSgPe.cAoMm) on Friday May 26, @04:52PM EDT (#432) (User Info) http://steelbridge.com |
| While at the Macromedia Developer Conference in '97, I had the chance to meet John "JT" Thompson, who developed the Lingo language for Macromedia's Director project. He said that he wanted to create a language that anyone -- even kids -- could use to create rich multimedia apps -- that was his graphics arts medial coming through. He also wanted it to be a powerful programming language -- his computer engineering medial showing. As for Director's high price, there is an academic edition of Director that you can buy at college campuses or any other place they teach new media design. It's considerably cheaper and the only difference is that compiled apps show the "Made with Educational Version" nag window at the beginning. |
| Spoiled brats (Score:1) by mrglue (qristus@ihavepms.com) on Friday May 26, @04:34PM EDT (#370) (User Info) http://www.freespeech.org/discotime/ |
| You can't teach kids programming. If they _really_ want to learn it, they will learn it by themselves. Face it, the reason most of us started programming was that the programs and games on the computers we were lucky enough to be around sucked majorly, or got boring too fast, with a supply of titles too low or too expensive to feed your habit. I started out in Basic on a Sharp MZ-80K several thousand years ago when I was still an embryo.. Because the tapes that came with the computer only contained two games and a lot of calculus demonstration programs in SP-5025 Basic. If you want your kids to learn to program, you should lock them up in a room without internet access and an ancient computer with only a few programs (source included).. And kick their ass if they complain. There's no way the next generation of programmers are going to live up to the quality standard set by the previous two. Flamebait, maybe, but see if I give a flying fuck.. -- "It's natural to expect there might be people doing stupid things with computers." - Michael Vatis, NIPC/FBI |
| Graphics (Score:1) by ZHermit on Friday May 26, @04:35PM EDT (#372) (User Info) |
| In the 80's I got some proprietary system with this nice graphics tool (I think I was about 5). It had a basic user interface, but you could get underneath and look at the BASIC behind it. You could make your own games pretty simply. That was the biggest urge for me to get into programming, and I suspect for most others as well. If you are concerned about them neglecting the arts of the Unix world, set them up with a Linux box to play around on. And when Borland/Inprise comes out with their version of Delphi for Linux, get that for them. The nice thing about Delphi/Pascal is that it is easy enough to pick up and start figuring out, but with enough power to still be able to do things. Delphi implements a (limited) object-oriented paradigm, and the syntax of Pascal is generally a good lead-in to C++. |
| I would have to say: (Score:1) by Byteme (james@nospam-pronoblem.com) on Friday May 26, @04:35PM EDT (#374) (User Info) http://www.pronoblem.com |
| LEGOS! |
| The best way to get them started (Score:1) by jailbrekr2 (billyblowsgoats@hotmail.com) on Friday May 26, @04:35PM EDT (#375) (User Info) http://kendryl.bc.ca |
| Is to introduce them to: 1) Coffee 2) Penguin Mints (preferably mixed with #1) 3) Pizza The rest will take care of itself. ... Programmers are busy writing the next best idiot proof software. The universe, in the meantine, is busy making the next best idiot. The universe is winning |
| Programming for kids (Score:1) by tartauris on Friday May 26, @04:35PM EDT (#376) (User Info) |
| I have three boys 12 to 14. After trying command line C (isn't this "for loop" fun kids?) we tried Powerbuilder but finally settled on Borland's C++ Builder. It's a lot more fun to have a GUI IDE where you can build something you can send to your buddy. In C++ Builder we built everything from Pong games (about 1/2 hour) to Pacman (more work) to screen savers. The standard version is CAN$100 and you aren't completing supporting Micro$oft's dark vision of the future. |
| QuickBASIC, or web progamming (Score:1) by ghost. on Friday May 26, @04:37PM EDT (#379) (User Info) |
| For what it's worth, I began on VIC-20 BASIC. Anyway, I might be inclined to start them out with QuickBASIC and a good book, but I'd make sure to help them get a feel for structure via subroutines and ground them a week for every Goto I saw in their code...! On the other hand, based on their ages, I'll assume they're regular web users. To that end, maybe it would be good to get them going in web programming. First HTML, then making their pages dynamic with PHP, ASP or perhaps Perl/CGI. I think this is better than straight VB for two reasons: 1. Like VB, web pages allow them to get results right away, through HTML coded pages. 2. Unlike VB, they can do all their coding manually in text editors, instead of dragging and dropping objects from a toolbox onto a form, which I think is an unhealthy way to begin programming. HTML with client-side scripting lets them explore interface design in an environment they're already familiar with, the web browser. Plus, once they get comfortable coding simple pages with server-side script, it's only a small logic-leap to making those pages interact with a database like MySQL or Access, thereby introducing sound database concepts in a fun way. Good luck. "Just because some of us can read and write and do a little math, that doesn't mean we deserve to conquer the Universe." - Kurt Vonnegut |
| VB! (Score:1) by Ravagin on Friday May 26, @04:37PM EDT (#381) (User Info) |
| VB (shudder) Now that's totally uncalled-for. After I taught myself Qbasic (mostly by reading other people's stuff, with help from the help files and assorted books), Visual Basic was the first "real" language i learned. I have a soft spot in my heart for basic (I don't want to hear anything about unstructured programming; it works anyway, godsdarnit). Anyway, At just about that same age (11-13), I learned VB3 for win3.1 . I still have and use it on my 486. With only the books that came with it (a language reference and a guide to programming), I taught myself almsot all there was to know about how it worked. I also learned what I could and could not do easily, which is why I'm now moving on to other languages (perl and C++). Ultimately, I think VB is the way to go. Don't knock it; it's a darn good language. High level is not necessarily a bad thing! Basic is much more intuitive than most scripting languages i've encountered. It served as a good transtion from QBasic for me. In QBasic, I could goto and gosub to my heart's content, and get complicated but funcitnal code. But VB is reliant enough on subs and functions and procedures and whatnot that it introduces structure into programming. So get your kids a copy of VB5 (or 6, whatever). Let them play. === -J "I say those who fear communism lack faith in democracy." -- Henry Wallace |
| BASIC (Score:1) by SpacePunk (sensei@techdojo.net) on Friday May 26, @04:37PM EDT (#382) (User Info) |
| I started with Z80 assembly learned from Zaks Z80 programming book, and did a couple of programs in assembly then hand-coded them down to hex. Then moved down to BASIC. Mainly in todays programming world it's not the language that's as important as the programming style. VB is good for beginners since it IS BASIC, BUT is also event driven and modular (also relatively powerfull if you know what your doing and code tight). This will give a ground in data types, function calls, events, and modularity. Then, later C++ would be good to pick up. |
| How about scheme? (Score:1) by freddie (freddie1 at onebox dot com) on Friday May 26, @04:37PM EDT (#383) (User Info) http://www.area.com/fredf/ |
| That way they can learn proper programming from the beginnning... |
| Kids? No way! (Score:1) by AShuvalov (andrew+nospam+please-metaphoria-net) on Friday May 26, @04:38PM EDT (#384) (User Info) http://samovarawards.com |
| I was starting programming at the age of 16, and now I'm quite experienced and well-paid. I see no reason to start early. The general-purpose education is much more important. History, Languages, Physics, Math, Chemistry, Biology, Philosophy. ONLY when kids are perfect with those, you may start Programming. And not just programming, but the theory - Algorithms, Logic. And Perl... You can learn it after 20, no big deal. Andrew |
| Perl Age limit (Score:1) by ellem on Friday May 26, @04:41PM EDT (#396) (User Info) |
| Here in NY you have to be 21 to program in Perl! L'hippo a pique ses pantalons |
| Re:Perl Age limit (Score:1) by AShuvalov (andrew+nospam+please-metaphoria-net) on Friday May 26, @04:49PM EDT (#422) (User Info) http://samovarawards.com |
| I think, if you learned Perl before you learned binary trees and boolean algebra you won't be a good hacker - just a good coder. And if you spend your time learning Perl before you learned History, some foreign Languages and read major classic Books, you will be a boring person. How many languages you speak besides English? I know two more. Andrew |
| Re:Perl Age limit (Score:1) by Requiem (ac881@sfn.saskatoon.sk.ca) on Friday May 26, @11:59PM EDT (#811) (User Info) http://members.home.net/jcday/ |
| I speak French as well. And for what it's worth, I've barely touched perl. I don't like it. It's ugly and monstrous and unforgiving. |
| It's not so much the language... (Score:1) by el QuesoGrande on Friday May 26, @04:38PM EDT (#385) (User Info) |
but the idea of tinkering that's probably more important right now. From what i remember -- I, too was started on BASIC in grade two, etc. -- i liked it at an early age because it was fun, and as kids like, it made me special to my parents, and other important grown-ups. By the time i was in junior high, and people were ramming Pascal down my throat, it wasn't horribly interesting compared to my friends, music, comic books... it wasn't
|
| Start them off right: Python or Smalltalk (Score:1) by RevAaron (revaaron@NoSPAMhotmail.com) on Friday May 26, @04:38PM EDT (#386) (User Info) |
| Two languages which are great for kids are Python and Smalltalk. They are both languages with the intent of making computer programming accessable to anyone who might want to program. They're both Object Oriented (Python still allows procedural programming though). Why does that matter? Studies have shown that teaching kids OOPL as a first language makes it easier to switch to or decide to use a procedural language, while those first taught a procedural language like Pascal or C, have a much harder time picking up on the ideas of Object technology. I personally would stray from teaching them VB, Delphi, or C++. VB and Delphi can produce visual results fast, but teaching Python or Smalltalk could help them get a real handle on what's going on. C++ is simply too complex that it'll just muddle them up, and probably make them bitter little programmers. Not to start a language/paradigm war, but do your kids a favor, and don't default to teaching them a structured or procedural language like BASIC or Pascal, two typical teaching languages. Like many others, I learned BASIC first. But the fact of the matter is, BASIC was designed back in the day when as a beginner's language, when what you moved on to were Fortran and COBOL. While Fortran and COBOL are still in use today, they're nowhere near being truely modern languages. Pascal would lead to C. I reccommend Python and Smalltalk because they're both comprehensible by kids, but usable in real applications by adults (or kids too, for that matter!). You can find Python here, and Squeak Smalltalk here. Others have mentioned Alice -- Squeak Smalltalk includes a 3D system like Alice as well, where you can program and intereact with 3D objects. It's a lot of fun! :) |
| Chipwits!!! (Score:2) by Archeopteryx (benburch@wwa.com) on Friday May 26, @04:38PM EDT (#388) (User Info) |
| There was a game years ago called "Chipwits". It ran on Macs (Plus and older) and Commodore-64s and Apple ][s. In it, one programmed a robot character to navigate mazes, find "food", destroy dangerous critters, and avoid hazards. You programmed him in a graphical language called IBOL which was stack based and which had code size limitations based on both the number of panels available and the layout of icons on the panels. My son loved it. As did I. I really wish I could get a modern implementation of Chipwits! "Love is the law, love under will." |
| Re:Chipwits!!! (Score:1) by Kristopher Johnson on Saturday May 27, @10:43AM EDT (#949) (User Info) |
| There are a few games out there where you write programs for robots or tanks and try to destroy the opponents. Kids might like that sort of thing (I did). And it's cheaper and safer than programming real-world destructo-bots. |
| C64 BASIC worked for me, Pascal rocks too. (Score:1) by kin$eerker on Friday May 26, @04:39PM EDT (#389) (User Info) http://www.jamesvankessel.com |
| I was a Commodre-64 addicted youth right down to 'drawing' with coloured characters on the screen using keyboard codes and painful cursor movement. I had a kids book of programming fun for BASIC on the c64 which helped. Basically anything that has a colorful result will capture attention. High-school taught me pascal and I in turn taught my public-school brother a few tricks with colours and text and before I knew it he had a character bouncing around the screen by himself. In essence, anything which is easy to create colourful and interactive programs (C is not easy, pascal is pretty good, any other suggestions? ) Is ideal to capture the imagination. You could always install a C64 emulator like Frodo... ;-) |
| how about Scheme or Java?? (Score:1) by _hutch_ on Friday May 26, @04:41PM EDT (#401) (User Info) |
| I started out programming BASIC on my Vic-20 computer, then moved to Micros~1 QuickBASIC on the PC. When I was 16 (1992), I was really into Borland Turbo C for MS-DOS. Today, I mostly use C++ and Java under Linux. Despite my beginnings, I would suggest Scheme or Java as a starting language. Scheme has a very simple syntax and is incredibly powerful. The free DrScheme IDE is great, and the interactive nature of an interpreted language makes testing pieces of your program easy. I think Java would also be a good choice. It has a nice, simple OOP model and standard libraries to do just about anything. |
| Some suggestions (Score:2, Insightful) by opiate on Friday May 26, @04:42PM EDT (#403) (User Info) http://saturn5.com/~opiate |
| I would suggest either of the following LambdaMOO! (a MUD with a single inheritance prototype based object oriented language ... see http://www.moo.mud.org/ and telnet://lambda.moo.mud.org:8888/ for more details) Squeak! (original Smalltalk-80 updated with multimedia extensions, a new prototype based UI called Morphic, ability to play Flash, Quicktime, etc.) Either would teach important concepts of object orientation, prototyping, simple clean syntax, and have direct concrete results that younger people love (in LambdaMOO you can write methods on your "things" to make them do things in the room you're in, etc. and get immediate feedback) ryan |
| Try C++ Builder (Score:1) by rlhartmann on Friday May 26, @04:44PM EDT (#406) (User Info) |
| As a C programmer myself, I suggest using C++ Builder. It allows you to create working Windows applications as easily as VB but allows you to program in a real language. |
| Overlooked C++/Java products (fer WinDoze, sorry) (Score:1) by Hotaine (User Name: hotaine, Domain Name: acm.org) on Friday May 26, @04:44PM EDT (#408) (User Info) http://www.hotaine.net |
| You may be hesitant about VB (understandably), but it's probably the best way to get them hooked. Once they find they can get quick results with it, they'll be bored, but hopefully hooked and want to dig deeper. For something a bit more "techie" but that can still produce pretty quick results, take a look at Borland C++ Builder or Borland JBuilder. As a comrade of mine has been known to say (we're MFC geeks), "I can do things in C++ Builder in 15 minutes that I'd be afraid to even approach using MFC". But it's still C++, and best of all, the code the IDE generates is all straight ASCII C++ files. No funky proprietary markup that can be trashed with a careless application of Notepad. (At least this was the case with the older versions, I hope it's still true). If you get really into it, you can look at the entire C++ files it generates and learn what those magic wizard buttons actually did in terms of code. Good luck! Encourage those young'uns! Free MP3's! Take 'em! Copy 'em! Pass 'em around! |
| LabView Betcha never heard of it (Score:1) by jcabrer (jcabrer@rocketmail.com) on Friday May 26, @04:45PM EDT (#410) (User Info) http://www.georgiatolls.com/~jcabrer/ |
| LabVeiw is a little jewel of a development system. Its graphical nature makes it ideal for young programers. It's also very object oriented and analogous to C so you'll be learnin'em right. You can get an eval at www.ni.com. It is also available for Linux, Windows, Mac, Solaris, and HP. Assume nothing, question everuthing. This is the path to true enlightenment, but don't take my word for it. |
| teach them web-centrically! (perl?) (Score:1) by mlas on Friday May 26, @04:46PM EDT (#412) (User Info) http://www.electrotone.com/ |
| Like many of the "older" /.'ers (just turned 30), i started programming on lil' ol' 8-bit machines like Atari 1200 and later, apple II's, and they kept my interest as a pre-teen because i could write something and see the result damn near instantaneously. By my college years, Windoze and the Mac had come along, and programming turned into a right drag because of the layers of GUI crap that now surrounded everything. I had to either commit to being a full time coder to make anything worthwhile that hadn't been invented yet, or look for a career that involved more fresh air. Having discovered girls, I opted for the latter and went on to study design and drift aimlessly for a year or two, leaving my programming chops behind. Then in the mid-90's when the internet started giving everyone jobs, i jumped on web design, and by extension web programming. Perl is the language that got the kid in me psyched about programming again. Flexible variable-typing, no compiler voodoo, and compact enough for a short program to be both simple enough to understand yet do Something K00L. That giddy feeling of typing just a few lines and getting a useful result got me back into programming big-time. I agree that kids are smarter than you think. Perl will let you explain pretty much any programming technique you'd wanna show young teens. You can run an interpreter locally, or if you can give them cgi access, they can run their creation from any web browser. Besides, by the time these kids are college-aged, the desktop application may be on the way out, what with all of these distributed application type model thingies... making something work on the Web should be as cool for them as putting something on the C-64 or TRS-80 screen was for us. |
| How I started... (Score:1) by jtriangle (Nemo@cfl.rr.com) on Friday May 26, @04:48PM EDT (#417) (User Info) |
| There's nothing that will grab the kids attention faster than a visual enviornment. If they are using Win98 then your best choices have to be VB or Delphi. I use both. They don't need to start with VB. Delphi is a LOT better because it's easier to build tighter code, it runs faster and they don't need to drag those silly OCX and DLL files all over the place. Assembling windows and other visual components into a fun, interesting Win98 application is a snap with Delphi. The Lego MindStorm (while I have one) is more technical IMHO than VB or Delphi because it requires programming AND mechanical engineering skills. Instead, Imagine their excitment when they can bring a disk of a program they wrote over to their friends and show it to them on their computer. |
| Logo (Score:1) by wdavies on Friday May 26, @04:49PM EDT (#420) (User Info) |
No experience of them personally, but I'd suggest LOGO or Mindstorms (which I think is a descendant of LOGO, at least they both emerged from MIT as teaching tools). I learnt pretty simple problems in BASIC. I think any interpretative language would be good. A heavy vote against Python - syntax errors because of having too many spaces.... Whatever you choose, it has to have good informative error messages and be easy to debug. I'd hesitate to suggest Java and certainly PERL. Although I love LISP, I probably wouldnt recommend it as a beginning language either! Winton |
| How about asking the kids? (Score:1) by lemox (rvf at mindspring dot com) on Friday May 26, @04:49PM EDT (#423) (User Info) |
| One thing I haven't seen so far (forgive me if I missed a post), is someone advising to simply ask the kids what they want to program. No one starts coding for the sake of coding, they want to create. Just ask them.... If they are into interactive web pages and like, suggest something like perl or python. If they want to make windows apps, maybe vb or delphi would be your best bet. If they like to write (as in words), maybe something like Inform (Interactive Fiction language-remember Infocom?) would be up there alley. It's the the difficulty/accesbility of the language that matters, it's the motivation and reasoning behind learning it that really makes the difference. |
| Intercal (Score:1) by DonkPunch on Friday May 26, @04:52PM EDT (#429) (User Info) |
| After that, it'll all seem easy. Remember when MTV used to play music videos? Remember when Slashdot used to cover technical news? |
| pascal is a good way to start... (Score:1) by juzam (juzam@cyberspace.org) on Friday May 26, @04:52PM EDT (#430) (User Info) |
| i learned pascal in the 7th grade, and i think that was the way to go. a bit before that i made a basic program (a text based adventure game) inwhich you destroyed microsoft to save apple. now, when i look at it, with a goto statement every few lines, i wonder how i ever came up with such a beast. after i learned pascal, i discovered c, then c++, and now macos toolbox and opengl. i dont think i would have ever understood anything without that pascal experience. also regarding pascal; after you've moved on to c++, it is extreamely hard to do anything in it. when i took a pascal programming class my freshman year of high school, i detested everything, and continuosly stated what a great language perl/lisp/c++/tcl/intercal was and how much i'd rather use that.. Hacker: Exceptional programmer. Webster's 9th., 1991 |
| What got me started... (Score:1) by LoPan (westea@WHATSPAM?rpi-edu) on Friday May 26, @04:52PM EDT (#431) (User Info) |
| ...was Hypercard. It wasn't much of a programming language, but it did allow for scripting routines, and by the time I stopped using it I was making forms, playing sounds, rotating and fading images and shapes, and all sorts of other fun stuff. The main draw was that I could learn a new concept, implement it, and instantly see the results (and show off to my parents, always a plus for any kid ;). My next step was to the TI-82, which I used in high school and programmed quite a bit in. Most of it was simple test helper programs, but I worked for a long time on a multiplayer checkers game. I never finished it, but I managed to make a playable game of checkers for two people on a single 82, until the checkers reached the other side of the board. I graduated onto to C before I finished the code for kings. IMO, start them off with something where they can see results quickly, can write useful scripts and apps that let them show off or do something cool. If they get excited about it, they'll take off into the realm of other languages to accomplish tasks that they couldn't do in that particular languages. I'm not sure what the state of multimedia scripting languages is these days, but if there's anything out there like Hypercard, I'd say start with that. Easy to learn, and there's room for some growth should they get into it. "The price of liberty is eternal vigilence" - Thomas Jefferson |
| Administer in bite-size chunks. (Score:2) by jfrisby (jfrisby@mrjoy.com) on Friday May 26, @04:53PM EDT (#434) (User Info) http://www.mrjoy.com |
| The best way to keep them interested is to give them what they need to get results quickly. Start them in a language that has little infrastructure overhead, such as Visual BASIC, or Perl... Nothing with #includes and everything wrapped in a function and all that... Save that stuff for later. Whet their appetite by accomplishing little things first. Start with teaching them to write a "guess the number" type game perhaps. As they absord that -- and they will absorb it quickly -- move on to new stuff. Once they have a sufficiently broad set of "tools" at their command -- basic flow-control (loops, conditionals...), I/O (producing output to the screen, reading user input), variable manipulation -- you can introduce more complex concepts. It'll be a while before they understand *why* "goto" is generally bad, functions are good, and encapsulation is neccesary to ensure one's sanity but they will gradually get there. The really tricky part is presenting this with correct timing. Don't go too fast -- they'll get confused -- but don't go too slow -- they'll get bored. And as above, any kid is going to get bored if they can't recognize progress and accomplishment in their efforts. -JF MrJoy.com -- Because coding is FUN! |
| JAVA (Score:2) by delmoi (delmoi at hot mail dot com) on Friday May 26, @04:53PM EDT (#435) (User Info) |
| It may not be as fast/whatever as C++, but the tools are free, and its way better then visual basic [ c h a d o k e r e ] "We'll find a way to fuck with it" - Lars Ulrich on gnutella/freenet |
| Learn while writing games! (Score:1) by 8.012 on Friday May 26, @04:56PM EDT (#441) (User Info) |
| I'd recommend Interplay's "Learn to Program BASIC". It runs on Windows 95/98 + Macintosh and is under $20(US). The lessons teach you a few new constructs, then direct you to build/modify games using those features. Writing games you can play is powerful motivation! I bought it for my 11-yr-old and he seems to like it. |
| An ideal language for learning: Java (Score:1) by Skeezix (jamin@DoLinux.org) on Friday May 26, @04:56PM EDT (#442) (User Info) http://www.DoLinux.org |
| While I had fiddled around with BASIC and shell scripting, I didn't really get into programming, or the concepts of computer science until I learned Java which was taught in CS101 at Washington University in St. Louis, MO. I found Java to be ideal. The syntax is nearly identical to C/C++, yet many tasks are simplified, such as memory management. It's a great language for object oriented programming, it's cross-platform (duh), and it finds your stupid mistakes very well with excellent compile-time and run-time checking. And Java makes a great transition if you wish to eventually learn C or C++. ---- Read The Memory-HOWTO to learn how to boost your mental recall! |
| Get book. Start typing. (Score:2) by dmorin on Friday May 26, @04:57PM EDT (#444) (User Info) |
| Languages aside for the moment, because there is no one true language. One major factor I remember from my earliest days is *seeing* source code, and then *typing* it in. It creates the connection between mind and fingers. It turns the code into "I typed it in, therefore I can change it." The problem with just getting all your sample code on disk is that there's a message associated of "Ooo, this came with it, I'd better not change it." And maybe you tweak here and there, but you're just not as intimate with the code that way. It takes you longer to find things, for example. You want the code to be yours. When you make your first change, you don't want to feel like a stranger inside somebody else's creation. Also, while I'm at it, games are always a big plus. Kids love to hack games. Go to your local BestBuy, since I know they sell them, and pick up whatever's the equivalent to "Game Programmer's Development Kit". i first saw it in QBasic form, where it would come with an IDE, and the source for a bunch of games. These days they have a similar thing out, only for Java. |
| Why Visual Basic is not a good starter... (Score:1) by kescom on Friday May 26, @04:57PM EDT (#445) (User Info) http://www.kescom.net |
| Now, I grew up on BASIC. Anyone remember GWBASIC? It was probably the worst programming environment I ever used. And it saved programs as binary files, something I never quite understood. I moved up the ladder to QuickBasic 4.5, which my dad had paid a pretty penny for [imagine: writing an order entry/accounts recievable system in QuickBasic!]. I then got hooked on VB at age 9... When I finally learned C/C++/Perl/PHP, I realised that I'd missed out on what everyone says you need - structure. VB doesn't even have a concept of main() - all the objects are created for you automatically. Java seems to be a bit too complicated for starters...too much I/O, etc. QBasic/QuickBasic, or perhaps Pascal, would be a better start. I actually was part of a project to teach C to 6th graders, which eventually dropped because of minimal parent interest. I could give you some pointers from there though... Benjamin Stiglitz KEScom Hosting KES Computers |
| Another vote for Scheme (Score:1) by scanizares on Friday May 26, @05:01PM EDT (#454) (User Info) |
| I saw someone else mention Scheme, but I don't think that poster did justice to a Scheme recommendation. Sure, young people could easily get bored with the complications involved with writing, then compiling, linking, etc. C or C++ code. That's why an interpreted language is a very good idea for a programming newbie. Although I like and use Perl, and have heard good things about Python, Scheme is in a class of its own. Define a function to calculate factorials, and you can calculate 12345! (after a while) precisely. This may not be of any interest to your children at this point, but it's a great feature to have. The structure of the language is, I think, extremely condusive to learning. I learned to program C and C++ before trying Scheme, but it was with Scheme that I learned programming. Check out DrScheme--runs on Windows boxes, a nice GUI interface, and clear error messages. Rehash that old BASIC gaming standby "Hammurabi" into Scheme; it may only be text based, but I recall it being fun back when I coded it up on my Commodore 64 when I was little. I just feel all warm and fuzzy inside thinking about hours spent reading reports like "Hammurabi, I beg to report to you: This year, Rats ate all of your grain, Your citizens have all contracted a plague, Locusts ate all of your crops, and You have 0 gold pieces." Ah, the good old days. |
| Python (Score:1) by dougfort on Friday May 26, @05:01PM EDT (#455) (User Info) http://www.dougfort.com |
| There's an excellent windows version of Python. I also recommend Neal Stephenson's 'In the Beginning Was the Command Line' for the kids. It puts across some important ideas in a fun, readable form. My fourteen-year-old nephew loved it. |
| Ask The Kids (Score:1) by Jobby on Friday May 26, @05:02PM EDT (#459) (User Info) |
I don't think this idea has been posted, but sorry if it has :) Ask THEM what THEY want. Show them examples of all the available languages and let them choose. After all, it's the kids who are going to be putting the effort into learning it, give them the choice. If they're intelligent enough to want to program, they are intelligent enough to choose how. Jobby |
| Applets are great for kids (Score:1) by Lander9 on Friday May 26, @05:02PM EDT (#460) (User Info) |
| I've taught a couple of 11 year olds java, and the response has been very positive. Applets give them a simple way to get something with a gui going, and they love being able to post it on a webpage, and show their friends (very important). |
| It's Blasphemy, but... how about Logo? (Score:1) by NewWazoo (bmatt-nospam@spamfree.devils.eng.fsu.edu) on Friday May 26, @05:02PM EDT (#461) (User Info) http://devils.eng.fsu.edu/~bmatt |
| I'm a 17-year old programmer that got my start at a "gifted" school when I was in 4th grade. I started with LogoWriter (remember the turtle?) programming neat designs, then movies (guy walks out of his house, waters his plants, and get blown up by a helicopter), and finally songs ("Winnie the Pooh" and "Puff the Magic Dragon", to name two)... this program has everything needed to give the fundamental knowledge to a kid (control loops, functions w/ local and global variables, etc)... not only that, but it's a language kids can associate with (instant *visible* feedback, ala 'FD 50, RT 90, FD 23'). I also think that the "flip side" vs "real side" paradigm is neat ["real side" is an interactive command interpreter, while the "flip side" allows users write static routines]. I don't know about its availability on other-than-AppleIIs, but I know that a windows version exists *somewhere*. It's an interesting piece of software that really lets kids *see* what each command is doing... that's the most important part; to understand <TT> int main() { printf("hello world"); } </TT> you've got to first explain functions, data types, syntax peculiarities, etc. With LogoWriter, they jump right in and type "FD 50" and the turtle moves -- boom, it's done. Type "RT 90" and they see the turtle point 90 degrees to the right -- again, instant gratification. I could go on for hours about LogoWriter (its applications for teaching basic geometry, its basic animation capabilities, its simplistic "TONE" command)... but I hope I've givin you a good option... I loved logowriter, and I'm sure most other geek-type kids would... Check it out. BKM ((e > 15) & 0x00001)) |
| teach em binary! (Score:1) by petithory (petithory@flashcom.net) on Friday May 26, @05:05PM EDT (#469) (User Info) http://voda.dhs.org/ |
| By the time my kid is 4 I wan him or her to know how to count to 255 in binary I like Stuff - http://voda.dhs.org/ |
| my two cents..... tcl/tk (Score:1) by alexbeyn on Friday May 26, @05:07PM EDT (#472) (User Info) |
| I'd think tcl is one of the easier languages to teach to a person unpolluted with java and c++ and all that other nonesence. But seriously, tcl/tk has a very decent syntax, and its very easy to understand. You'll have your kids making nice gui apps in no time. |
| Hmm... (Score:2) by cr0sh (andrewa@phoenixgarage.NOSPAM.org) on Friday May 26, @05:07PM EDT (#473) (User Info) http://www.phoenixgarage.org/ |
| A lot of good suggestions so far... However, what I think would matter far more than just teaching a child to program, would be to teach them to think logically about solving problems, and to use those solutions for similar, future problems. This style of thinking will help them in every area of life (and, regretably, possible stunt them in other areas - anyone who has tried to work logically with their non-logical SO knows what I mean). Don't push them, if they don't like it - let them seek thier own level. You sound like that kind of individual already, noticing their clammoring for wanting to program. Depending on their ages/interest - you might try starting them out with a Mindstorms set (I know others have suggested this) - let them play with the built in system/ide that it comes with, then progress them into something like LegOS or NQC - to teach them further coding fundamentals. Always answer thier questions, and if you don't know something, tell them so (they'll appreciate you honesty), but also tell them you'll find the answer - then go out and find it. After playing with these languages on Lego - if they are still interested, you have a couple of ways to go - you could go the route of learning real robotics (progress by building a parallel relay box, hooking the Lego motors to that, then code in a regular languge, such as C/C++, to control it all - then after that, move to using a soldering iron and tools more to build real robotic devices), or take the "virtual" robotics route, and lead to small scale AI for game programming (game programming can teach a lot about many programming side areas - DB management, arrays, sound, graphics, etc). If they enjoy tinkering and building their own stuff, Lego is especially the way to go... Cr0sh the F0ckers! |
| My Choice: Pascal (Score:1) by AlKaMo on Friday May 26, @05:08PM EDT (#478) (User Info) |
| I got my start programming on Apple IIs in second grade. While I used BASIC and LOGO on the Apple IIs and at home on a C64 on and off for years, I never really understood a lot of the basic concepts of structural programming untill I took some Computer Science courses in High School were they were using Pascal. I know I'm probably in the minority here, but I think Pascal is a great language for teaching. A lot of the concepts carry over into more powerful languages like C and some aspects (like strong typecasting) force better programming habits than other introductory languages (like BASIC). I wouldn't start them out with VB or Delphi because my experience has been that people that learn to program with RAD tools first don't develop the skills to write good code dehind the forms. |
| Use fun whenever possible... (Score:1) by Toshio on Friday May 26, @05:08PM EDT (#479) (User Info) http://guardian.skylined.org/toshio/ |
| I started my first programming steps at 12 and what kept me around for long enough to start evolving was simply fun. My first programs were made in Turbo Pascal and most (if not all) of them were drawing something on the screen. If I would present myself as an example, then I would say you should go with the pascal language for many reasons, not least of them is strong typing. I would try to persuade them to use Borlands DOS IDE & DOS environment (don't bash me, but for beginner is much easier to say InitGraphics(gd, gm); than explaining all the stuff about device context, frame, window, handles, memory management, typing, ... and so on.) 14 year old might find himself confused with all the stuff and drop it all together. Compared to todays GR programming Borlands BGI was simply a poetry of simplicity. Don't try to teach 14 year old about algorithms, don't teach him about sorts and hello worlds. Don't even remotely try to explain him anything about the pointers :)... Give hime something to play with. Give him some code that draws ten horizontal boxes explain him what line does what and let him play around with it. I would try to have kids learning programming as far away from *nix & Win* platforms for few simple reasons. *nix platforms don't have IDE environments (affordable that is...) readily available for beginners, Win* platforms put on programming so much overhead, you'll probably spend the whole summer just explaining what the framefork does instead of them (C++, Delphi) or why Variant can be 0, -1.5, "Foo", #3rd Maj 1892#, not to mention Nothing, Empty and Null values. Whatever you do, you should stick to few basic rules: Easy-fast-stable-HELPFUL IDE, language close to English with as little as possible ambig. elements, no algorithms, lots of funny results on the screen. These things kept me learning newer and newer stuff when I was 12, and probably should keep every kid around for long enough that he/she decides whether to take this way of life or not.. I hope we'll have some feedback in the autumn. To boldly invent more hot water. |
| Books and such material (Score:1) by Jason H. Smith (jhs@kmfms.com) on Friday May 26, @05:09PM EDT (#480) (User Info) |
| I wish I could suggest a good beginner's book, but I really don't remember any of them. What I do remember is that, on any level, hacking on code from an interesting program is the best way to remain interested. The reason open source works is because people will spend time hacking on an interesting project. This extends to all experience levels. For instance, when I was young, I learned far more BASIC tweaking (read 'cheating') Apple ][ video games. So, you might want to make sure that whichever language you choose, there is enough simple, hackable, code out there already, from which they may learn. That's how most of us did it. |
| The answer hasn't changed for 20 years (Score:2) by Hollins (garbage6@hotmail.com) on Friday May 26, @05:10PM EDT (#482) (User Info) |
| LOGO. I'm not kidding. It's the most accessible, instantly gratifying language to learn basic programming structures from. And now, there's StarLOGO, developed by the MIT Media Lab. It's an OOP version of logo, where you can have tons of turtles running around. Each is an instance of a turtle object whose behavior you define. Individual patches of territory are incarnations of objects, also. You make up rules for how turles and territory affect each other. It's terrific fun, and has even been used for scientific simulation. There's no better way to introduce a youngin' to programmin. |
| your all nerds (Score:1) by skazatmebaby (justin_at_skazat.com) on Friday May 26, @05:11PM EDT (#486) (User Info) http://skazat.com |
| Machine Code all the way baby. if a kid could learn that, (and a kid could, cause its a kid) what stops them from anything? i think i first programmed a necko cat "kenny" it followed your mouse around on screewn and would from time to time die and little rats would eat it. he he. why not html? i know its not a language but its a great start, they could make their own webpage and show all their slick stuff. |
| Unix over windows.. (Score:1) by MPCM (MPCM@mpcm.org) on Friday May 26, @05:12PM EDT (#488) (User Info) http://www.MPCM.org |
| I'd suggest teaching them little tricks on unix.... I grew up on a dos/win3.1/win95 box and I when I started trying to get jobs, I realised what I had known was just the crap microsoft wants you to learn and NOT real solutions. My brother (14 years old) is going to be taking a C/C++ course ( he skipped ahead a year to do it), and I'm going to be setting him up with linux, gcc, etc. NOT VC++, because it is a "microsoft tainted" language, like MS Java (err... J++). I think they best thing to do would to teach them to start with a problem, help them pick a unix based language and help them solve it. Then move onto the next project and pick a different langauge if neccessary. They will soon be telling you which langauge they prefer! Kids are the best, trying to stay on myself ;-). -- MPCM Matt@MPCM.ORG "Quis custodiet ipsos custodes?" |
| Hey, I learned at 10.... (Score:1) by NickoLas (kcool@nospam-removeme.xmission.com) on Friday May 26, @05:12PM EDT (#489) (User Info) |
| As a teen who learned to program pretty early on, I would have to reccomend against anything like Visual Basic. I started that way and depended on it for way to long and when I tried to start other languages I basically had to scrap and start all over. Don't go the VB route. Do something that requires you to write better code. |
| programming...if you don't mind embedded... (Score:1) by Mighty Mik on Friday May 26, @05:12PM EDT (#490) (User Info) |
| with some supervision...you could get them to try hacking the PIC 16F84 chip from Microchip...the F means it's ERASEABLE, goof, and you just nuke the chip and try again. Programmers that hang off the parallel port can be had for under $25 in kit form, and software to blast the 'F84 is FREE. PICs are turning up everywear, and the kids could even make their very own robot. (or just about anything else). Even my roomie 'programmer' doesn't get the hardware side of things...this would be a way in. |
| What do your kids want to do??? (Score:1) by Travis Fisher on Friday May 26, @05:13PM EDT (#495) (User Info) |
| You should make the decision the same way you would choose a computer language for your own projects. Choose the right language for the task you want it to do. Start with the question "What do my kids want to program?" If your kids are like any others I know, they don't care one iota about the regular expression capabilities of perl or the file i/o capabilities of c. If what they want to do is write games then the things that will top their list of priorities are
The other direction their interests might easily go is to the web. If they think the internet is the coolest thing ever, then the place to start is building a webpage (write the HTML by hand of course) and work on making it come alive with Javascript and finally move up to Java or server-side scripting. Anyway, the important thing is to choose the language to fit the job, not because its aimed at children. Your kids will quickly become bored with any language, no matter how well designed or clever, that can't do what they want it to. |
| HTML first (Score:1) by mikeraz on Friday May 26, @05:15PM EDT (#497) (User Info) http://www.patch.com |
| I suggest teaching them HTML first. It will provide quick results that they can show their friends. A syntax error like missing a closing tag will be easy to find and fix to provide some confidence. Then you can ease them into CGI with Perl/PHP/Python/Java or whatever. This path would provide something that provides challange and results each step of the way. After they get their dynamic web pages rolling along you can then lead them into more complex programming - or whould that be they can easily grow into more complex programming?
|
| don't start them on windoze (Score:1) by kel-tor (keltor@micron.net) on Friday May 26, @05:15PM EDT (#499) (User Info) |
| I started gaming (not programming hee hee) with an atari 2600. Then I got a PC, an IBM peanut. There was never competition, the atari never stood a chance. It was easier for a kid to learn to use, but DOS didn't have the limitations. I could modify the data files of a goldbox ad&d game with the old norton hexeditor (the same version of norton that could revitalize a damaged floppy before it was dropped). I never bought a mac because a friend got one. It was pretty. the screen was smaller and b/w, but the graphics were far better than cga on the the 8088 I got after the peanut. But I could never figure out an easy way to manipulate the OS, to hack it (in a subpar 10 yearold pre-script kiddie sort of way). DOS didn't have the limitations. Now, I really wish I would have been able to start with a Unix instead of DOS. The Linux/bash shell isn't all that different from dos really. cp=copy, ls=dir, /=\, but it's dos command line without limits. I learned bash by doing things this way: 'if this were dos, and dos allowed me to describe what I wanted to do in the simplest/shorest way, i'd type...' instead of 'xcopy c:\windoze\personal\desktop\mp3\*.mp3 c:\mp3\*.* --- cp ~\mp3\* \music. If I could have started young with a unix, I might be good at something now other than 'wine eq':--) an image had better be worth a 1000 words-- it takes longer to download. (this message posted from my Debian X-box) |
| Where are they wanting to go? (Score:1) by DrMaurer (DrMaure@ilstu.eduSPAM) on Friday May 26, @05:16PM EDT (#500) (User Info) http://www.ilstu.edu/~drmaure |
| This question might seem obvious, but what, exactly, do they want to do? I mean, most kids want to program video games, hell, most adults do, but that is where you might want to begin. Video games are written mostly in C, I think, I'm not really a programmer,though I do have experience. Anything that leads to the C route would be good, for OS work or Video Games. PASCAL might be a good step. I would, for simple cost reasons, make their machine(s) dual-boot to Win/Linux/(Be?). Even the free versiona of BeOS comes with it's own developing kit (C++). The reasons I have for dual-booting are: cost, ability to work up. Anyway, I'm not really sure where to begin, but you should ask them where they might want to end up. Thanks for your time Dan |
| Web design with PHP (Score:1) by AustenDH on Friday May 26, @05:17PM EDT (#502) (User Info) |
I think a great place to start now a days is with web design. Not just HTML, (because that isn't programming, just markup). However, PHP is a great language. It is robust, yet it is still easy to learn and use! You can get started writing really neat web applications in just a couple weeks of studying. After your kids get the basic 'hang' of PHP, they can pretty much teach themselves. Then they can move on to SQL and databases, javascript, etc. The PHP online documentation is pretty good. It isn't the most indepth, but visitor's comments usually expand on the provided documentation. There is certainly enough there to know what is going on, and to get enough information to experiment with the commands. I started programming when I was 11. I taught myself Apple BASIC on an old (well, new then) apple clone. After that, it was just learning, seeing what was out ther, and playing with it. So I can see where you are coming from, and where your kids are as well since I've been in both shoes. |
| Toontalk (Score:1) by mandrakeslut on Friday May 26, @05:17PM EDT (#503) (User Info) |
| Take a look at toontalk (http://www.toottalk.com). It is a completely graphical language (not as powerless as you might think). Very cool. The Playground project at the University of London, Institute of Education has had some very good results with this system. Toontalk was a feature in last months Communications of the ACM too. Ben |
| I'm a kid so... (Score:1) by Ambien (ambienn@yahoo.com) on Friday May 26, @05:18PM EDT (#505) (User Info) |
| I'm a 15 year old kid that runs linux. (and no im not a script kiddie or a cracker.) I started out in the 2nd grade on my Tandy color computer III. My brother taught me simple mathimatics\algebra, and in a week or so I was making simple basic programs on my own. In the fifth grade I learned C, and in the 6th-7th I learned C++ and HTML. I'm currently learning Perl and working on hacking up a frontend for the Rio500 in C. Pretty much what I'm saying is that your kids are old enough to learn how to code. You just need to make sure you move along at a nice speed so they won't loose interest. Also I recommend that you start them on Visual Basic. Then slowly indoduce them to the wonders of linux. From there you can make the transition over to C or C++. Those are my recommendations atleast. Good Luck!! :-) WAR IS PEACE, FREEDOM IS SLAVERY, IGNORANCE IS STRENGTH. The Party - 1984 |
| I started with C (Score:1) by slakhead (slakhead(at)linuxstart(dot)com) on Friday May 26, @05:19PM EDT (#507) (User Info) http://montyzone.ontheweb.nu |
| Yes, I am 17 and I started with C++ in windows but the more I worked on webpages and CGI, I started to use perl heavily... So I don't know what language would be the best but I don't think anything basic related is very good because most of the powerful languages dont follow the GO TO philosophy...i might be wrong though. |
| What are your priorities? (Score:1) by Boatman on Friday May 26, @05:19PM EDT (#508) (User Info) |
I was asked that question in a Senior-level CS class a few years ago, regarding the best language to teach in introductory programming classes. I've concluded that you first must decide what skills you want them to develop. Based on that, then, here are my recommendations:
--Just the place for a snark! |
| Hypercard! (Score:2) by grappler (thegrappler@DIE_SPAMMERS.usa.net) on Friday May 26, @05:20PM EDT (#513) (User Info) http://www.mines.edu/Stu_life/organ/ufo/ |
| As a 5th and 6th grader, I spent hours messing around on Hypercard at my school's mac lab. I don't know if many of you have ever seen it, or if it is even still around, but man it rocked. Basically, it was like a drawing program when you first learned to use it. You had toolboxes of fill patterns and paint tools, and just drew on the screen. Then, you want to start a new page. Well thats where "cards" come in. Choose the "new card" option and you get a new blank page. Each file you work with is called a stack, as in stack of cards. Then you find you can do things like editing a universal stack background, so all cards will share a background. Then you start noticing these other icons in the tool box - buttons and fields and such. Instead of having to use the text paint tool to put text on the page, you can make a field that can be moved around, and have its text edited at any time. For easy navigation, you can put buttons on a page and easily link them to other pages. Perhaps make a memo page at the beginning. Neat. Now you know enough to make any kind of powerpoint style presentation. Many hypercard users just stopped here. But wait! Hypercard had it's own scripting language, called hypertalk. How does that button I made before know to go to that page? Hmm, let's see here, it has a "script" which says, on mouseUp go next card end mouseUp (note - "go to" meant the same thing as "go". also, you could specify a card by number, id, or relative position to current card) Actually, everything had an associated script - buttons, fields, cards, backgrounds, stacks - able to control any property and handle any event. I strongly suspect visual basic was modeled after this. Visual basic is more feature rich for designing an application, but man, hypercard was great for a kid fooling around. The language was great too - it was an autoindent type thing that read almost like english. You could guess what the command for something would be without having seen it before. And you could bring up the messagebox for a command line interface. It was great stuff. By seventh and eigth grade, I had made a chess-playing stack, and gotten into encryption. My friends and I would invent codes, and use hypercard to "implement" them. I had a card with two fields - you paste something into one, hit the "Encrypt" button, and your ciphertext goes into the other. We actually had challenges where we'd invent a code, tell the other guy how it worked, and he'd try to write a routine that would break it (little did I know that this is EXACTLY what cryptographers do). Once we had enough imagination to get past simple substitution ciphers though, we could never break each others codes. Oh well. Anyways, the thing that made it so much fun was that it was so spontaneous. For kids, you don't want something that makes it into an engineering discipline requiring planning and design. You want it to be like a moist, malleable clay that a person can just sink his hands into and mold and mold and mold... -- grappler For-pay Internet distributed processing - check it out! |
| I started with Pascal... don't do that.... (Score:1) by z-man on Friday May 26, @05:26PM EDT (#522) (User Info) http://quit.net |
| Well, I started with Pascal, well actually simple scripting, but I don't look at that as programming (at least not what I did). Anyways, Pascal was easy to learn, worked well, but when my programs got more complex, it was the worse possible programming language (TP7). When it comes to your kids, I'd recommend to start on the "mainstream" language, C. That way they'll learn the most common programming language, and I wish I had started off with it. Although, printf("Hello, World"); seems quite boring, the language suddenly gets more exciting when you actually start to do something that creates an interaction between you (your kids) and the computer, something like fgets or scanf. I'm sure your kids will love to create small programs that ask for your name, or something like that, and then returns a string "%s, what an ugly name". Well, I hope you get my point.... teaching them something they might not need, but can use might actually slow down their development in other areas (I'm not saying it WILL happen, I'm just saying it happened to me). |
| Learning programming for kids (Score:1) by Mendenhall on Friday May 26, @05:26PM EDT (#523) (User Info) |
| My daughter (8th grade) wants to learn programming this summer. After talking with few people and reading quite a bit, I think I am going to try Python as the language/environment. It has all the features of a really powerful language, but a very clean syntax and the 'safe' environment of an interpreter. I just ordered a book, ("Learning Python (Help for Programmers)" Mark Lutz, et al), but doubt that this is really sufficiently introductory for a new programmer. I think, given the free nature, strengths, and portability of Python, that it would be very nice if someone would write a good Python text for the primary/early secondary student. If one exists already, and you know about it, let me know! |
| Some Attributes For Kids Programming Languages (Score:1) by The Infamous TommyD (timd88@hotmail.com) on Friday May 26, @05:28PM EDT (#525) (User Info) |
| Forgiving! -- You don't want simple errors to cause major debugging/compile problems for the kiddies. No one should have to use full-blown pointers/memory allocation to write simple programs. Instant Gratification -- Either interpreted or fast compiles. Simple, English-like Syntax -- symbols are hard to remember unless they are obvious. Eye candy and sound -- some easy to use graphics primitives are nice as are simple sound Teaches good programming practice Basic (most of them anyway) fulfills most of these except for teaching good programming practice. (although, QB isn't bad with explicit everything and no line numbers or gotos) Pascal works well here compiles fast, etc. Java compiles slowly, and kind of gives the kiddies too many modules. Let's see if other can come up with other needed properties and lets see how existing languages turn out. |
| 3133t? (Score:2, Funny) by craw on Friday May 26, @05:29PM EDT (#530) (User Info) |
| Nice advice so far, but what if the parents want their kids to be 3133t? Well, I would recommend that they first learn how to write MS Word macros. To start them off, you could give them samples of all the fine macros/docs on your computer that NAV has helpfully flagged. Then it it is on to VBS. Just think of the pride that you will have when your darling children send Grandma a wonderful I Love You note on Grandma's birthday. Oh, this just brings tears to my eyes. But make sure, they don't wipe out Grandma's MP3 collection! Of course, proficiency with the CLI is a must. A kid that can't run a root kit shell script,..., well that's just sad. Unfortunately, kids grow up and will not be adorable script kiddies forever. When your kids start to questioned authority (not the gov, but big business), then they will be ready to move on to bigger and better challenges. I suggest they then learn C. Give them copies of DeCSS and Gnutella (ahh, the forbidden fruits). And don't forget to introduce them to buffer overflows using such classics as the WU-FTP, BIND, and Sendmail. Finally, make sure they snap up a snazzy nick real quick as all the good ones are being taken. |
| I think BASIC is the way to go (Score:1) by hGMFliP (hgmflip@whatever.you.can.think.of.com) on Friday May 26, @05:29PM EDT (#531) (User Info) |
I think that you should get them started on BASIC, at least in the beginning, to instill the fundamental programming concepts (how to use arrays, loops, case statements,how to do some simple text formatting, reading from data files etc.) without getting lost in "complex" syntax. Once they get comfortable/bored with BASIC, then move them up to the other languages (i.e. C, C++, Perl and the like) so that rather than learning a whole lot of new concepts in the beginning, they'll just have to learn different syntax to impliment the same fundamentals they got from BASIC. Once they're able to impliment everything they could before in BASIC, they'll probably be in high school/college where their teachers can teach them about object oriented programming, stacks, queues etc. :) Also, showing them HTML may not be a bad idea. The syntax is pretty easy, as you probably know, and it'll let your children (((see))) results rather than a black screen with white letters (that would likely read "Hello world") and a small blinking cursor. Then you could teach them some UNIX tricks when you show them how to ftp it to the server and setup the correct permssions etc. ... but thats just what I think... Good luck!! =============================================== This message was sent using recycled electrons. |
| how I got started (Score:1) by 8bit on Friday May 26, @05:31PM EDT (#536) (User Info) http://the-enigma.penguinpowered.com |
| I vaguely remember...but here it goes I started making simple BASIC programs on the C64, while my brother made complex ones and did a bit of C64 Oxford Pascal. Time warp. We got an IBM, possibly 286, but I was young so I didn't care for much other than Space/Kings Quest and how to spell sierra so I could 'cd sierra' 'cd kq1'. I don't rmemember why, possibly my bro asked, but some how I made basic programs to run my games for me and I looked at an old version of C and Pascal (borland) and decided not to touch it. Time warp. It's the age of the 486 DX4/100 and all of a sudden I asked my dad how to program and I learned Turbo Pascal 6.0. I was pimping out code for stupid things and made a game w/ ascii chars. None of it had procedures. Over time, I don't remember how, I learned procedure, then C++, and now I know Perl, Lisp, C++, z80 asm, and a whole slew of other crap. I admit, I do remember seeing C for the first time and was really discouraged (aprox age 7), but somewhere at the age of 12 I just took up programming. :) now here I am, still in high school and able to make programs to do pretty much anything (anything non-graphical...never any good docs on widgets) Roy Miller :wq! DOH! [ESC] [ESC] :wq! |
| What I started with (Score:1) by PerlGeek on Friday May 26, @05:34PM EDT (#539) (User Info) |
| I started with msdos batch, assembler, and ms quickbasic. I'm still trying to recover. ;) Seriously, though - writing assembler and machine code on my 386 running dos 5.0 was a good experience. |
| Cluelessness, and an offer to kbh3rd... (Score:1) by nbvb (dmurphy@spam.montclair.edu(s/spam/leguin/)) on Friday May 26, @05:34PM EDT (#541) (User Info) |
| Well, I must admit that these replies confirm what I suspected. Slashdot is full of 14 year-old, think-i-know-everything, i'm-cool-because-i-usE-fUnnY-lEttErS, imbesiles who have nothing better to do with their time than run around screaming LINUX RULES!!!!!!!!!! It's great to support something, but don't be a moron about it. Things haven't changed much since the BBS days, have they? We used to have the same thing in Fidonet (remember Fidonet? Oh wait, most of you don't even remember when throughput wasn't TCP/IP based). Enough ranting about how much the userbase here sucks, and how the anonymous nature of the WWW sucks. Just to keep things on topic, I really, truly recommend a traditional path for programming. First, BASIC. BASIC is exactly that, basic. Just get used to loops, controls, etc. Next, comes Pascal. Pascal is probably one of the absolute best languages ever developed. It's strongly typed, very VERY strict, and still extremely functional. It's also verbose, so you can actually UNDERSTAND what's going on. Forget all this C++ crap. Forget Perl. And definitely forget Java. Forget Scheme, TCL, PHP, or any other scripting language. Save that for later. BASIC and Pascal are great building blocks. They're great, but ONLY IF your kids want to learn. If they're not interested in learning, don't force it on them. It'll only create animosity. Best of luck with your kids -- and if you want to give them a fun project, find some old Turbo Pascal tutor books. In fact, if you're serious, e-mail me. I probably still have some lying around... |
| A few options (Score:1) by Trinition (trin@1.net) on Friday May 26, @05:34PM EDT (#543) (User Info) |
1. I write my first program in LOGO in the first grade. It drew an animated picture fo a bow shooting an arrow across the screen. I can't remember much else about it, but perhaps there is a flavor of LOGO still around? 2. Teach them machine language and how a processor works. Having an understanding of HOW what they're programming WORKS can be quite powerful insight. 3. Teach them a simple language like VBScript or JScript. The advantage of scripting languages like these is that YOU DON'T HAVE TO COMPILE! It is amazing how much real programming has nothing to do with programming and everything to do with programming tools, environments, platform issues, etc. 4. As another poster pointed out, don't underestimate their ability. Kids have amazing learning potential. They don't yet have fears and phobias of new things and stupid mental blocks like us adults. Just give them something like C, Java, etc. -- explain to them it's a language in which you instruct computers to do things. Tell themhow the instructions must be compiled into 1's and 0's for the computer to understand them at its level. They'll probably catch on quick! |
| Don't limit them (Score:1) by unusualPerspective (sandman@scn.ORGnotCOM) on Friday May 26, @05:34PM EDT (#545) (User Info) |
After reading the comments, I was struck by how biased people can be. Lots of folks saying "BASIC, cuz thats how I learned", others advocating their respective favorite for all sorts of reasons. May I suggest that you offer multiple options? One never knows what will strike a chord. Maybe they'll dig the toy/games stuff, maybe they're visual/GUI inclined, maybe they'll think the cmd line rocks, maybe they'll wanna do it all. I dunno. You dunno. Hell, even they might not know for sure. If your budget is a factor, use freeware and/or only pick one of each type. If not, let 'em try whatever they want. The point is, there isn't "one true way" that works for everybody. Be flexible. Be responsive. It is the absolute truth that there is at least one absolute truth. |
| Must be interpreted (Score:1) by copyconstructor (copyconstructor@yahoo.com) on Friday May 26, @05:35PM EDT (#546) (User Info) |
| Results need to be immediate - they'll soon lose interest if they have to code, compile, execute. Python or Scheme would be ideal, but even VB would be OK if it's more convenient. And please, don't inflict C/C++ on them if you want them to grow up to be normal. |
| Don't forget about good language help. (Score:1) by Kronos. (kro@SPAMTACULARpenguinpowered.com) on Friday May 26, @05:39PM EDT (#556) (User Info) |
| Don't just think of the language, you must remember that when they come across a problem that they need to be able to find the solutions and if they can do that themselves they'll be proud of themselves for doing it and this will in turn get them more interested and hooked. I started when i was really young by messing with Logo. It was cool to give some instructions and see something appear. I made it draw a truck and was wow'ed by the fact that i made the computer do something i wanted it to. Of course then i went on to basic because i could get it do more complicated things. After that it was Teach yourself C book by Herbert Schildt. His books have a great deal of good information and are easy to read and I highly recomend them. Books and online information should be within easy reach when you're not around to help. |
| Is it worthwhile? (Score:1) by karnal (karnal@spamacct.excite.com) on Friday May 26, @05:41PM EDT (#559) (User Info) http://www.mulletsgalore.com/ |
| I remember one of the reasons I originally started programming were the game consoles at the time -- the NES, SNES etc all started my desire to program something.... well, cool looking. I think the drawback to young folk trying to program today is that there are so many "wasters of time" that they have at their disposal that if you were to set them down at a machine and teach them to program, they'd get frustrated easily and fire up Unreal Tournament etc.... I know if I had had the games / utilities / programs then that I have now, I'd probably not have even gotten started. It takes a sincere desire to learn programming at ANY age... :) Karnal |
| Up the ladder (Score:1) by LionMan (LionMan6969@yahoo.com) on Friday May 26, @05:42PM EDT (#560) (User Info) http://127.0.0.1/ |
| The first computer I touched was an old Commodore-64 when I was in 2nd? grade. I learned how to "program" in BASIC on that, which was good since it was simple enough for little kids to understand but still a lot of fun. Later I learned C, C++, then Java, and everything is easier after that. The important thing is to introduce everything gradually. -LLM |
| i'm still a kid, so... (Score:1) by wdf (!spam-wdf@picusnet.com) on Friday May 26, @05:42PM EDT (#562) (User Info) http://members.xoom.com/EvilGNU |
| As i am probably one of the youngest slashdotters (i am 15 now), i have a more unique insight i blieve. anyway, i learnd BASIC when i was 7. i look back now and hate my self for it, but what ever. i started messing with C when i was about 13, and Unix (FreeBSD 2.2.2) when i was 12. command line GCC kept my interst, of course, i don't play games, i didn't play games, and infact, i don't like games...i don't really have any friends either, and the ones i do use FreeBSD, too. my point basically is, if they really think that it's something they want to do then you shouldn't really watter it down with somthing sick. get them DJGPP or somthing (DOS port of the GNU tools we all know and love) and get them the book "Practicle C++" from Que (the O'Reilly title isn't very good, sorry to say. the C version is OK though). it really is an excellent book and is kept fairly environment-neutral despite the autor's affection for Visual Workshop or what ever it's called. just my $0.02 William D. Freeman http://members.xoom.com/EvilGNU -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS d- s+:++ a--- C++ UB+++ P+ L- E- W-- N o-- K- w--- O |
| teach them Python (Score:1) by quick_dry_3 (adams_s@lab.eng.usyd.edu.au.REMOVETHIS) on Friday May 26, @05:42PM EDT (#564) (User Info) |
| you should think about teaching them Python, they can get instant feedback on ideas by trying them out in the interpreter, and it doesn't have the complexity of C/C++ - plus it has fairly normal syntax AND (what I think is also important to get into the habit of early on) is that since in Python whitespace matters, they're going to write properly indented/spaced code tahts clearer to go through (also when they look at other peoples code, it's well indented). As well as the other good things about Python (like x-platform IDE's coming out, x-platform language, etc) is the fact that the more into it they get - and thus the better programmers they become - Python provides a nice on-ramp into C/C++ (and now Java via JPython) they can start coding modules in a compiled language, and learn that while they're increasing Python skills. Oh, and with Tkinter, they can build GUI's - which is something everyone wants to do - nothing is so delightful as being able to click buttons and make things pop-up onscreen :^D just my $0.02 |
| try ENGLISH (Score:2) by jafac on Friday May 26, @05:45PM EDT (#571) (User Info) |
| English language, machine: people. "Johnny, go tell your sister to clean up her room." I just remembered this old Metallica song. . . -OOPS! time to cut Lars another check! |
| Smalltalk: Syntactically/conceptually simple. (Score:1) by sourcery (sourcery(AT)pacbell(DOT)net) on Friday May 26, @05:46PM EDT (#572) (User Info) |
| You should seriously consider using Smalltalk. One of its original design goals was to teach programming to children. That's one reason why it doesn't use static type checking, has a very simple and regular syntax, and has a very simple denotational semantics ("everything is an object"). You want a "Hello, world!" example? Here it is: Did I mention that the single statement above doesn't just print "Hello, world!" to the screen, it opens a fully functional window that displays "Hello, world!"? "Fully functional" means the window can be moved, resized and collapsed. If you just want the traditional to-the-console implementation, that would be: In addition, it has a huge, very mature library of programming tools, widgets, data structures and data types. It's a highly reflexive language: classes and methods are objects, threads are objects, method activation frames are objects, the thread scheduler is an object, and global and local namespaces are objects. All source code for all parts of the system is provided. This means one can quickly and easily look deep into the system and see what's happening, and why. When an exception occurs, you can inspect the state of all variables in the current activation frame, or in any activation frame in the stack. You can single step over, or into, any message send. You can proceed past the exception, or restart from the beginning of any code block in the stack. You can find all objects that directly reference some object, or all reference paths to an object from the system "root" object (the same object the garbage collector uses to decide whether an object is collectible). One vendor (Squeak) even provides full source code to the virtual machine--completely free! Smalltalk's IDE is still superior to anything else, period, end of discussion. It's a completely "pure" OO language. It runs on all flavors of Windows, Solaris, HP-UX, AIX, Linux and MacOS. And you can download it for free from here |
| Same way to get kids to do anything, (Score:1) by pac4854 on Friday May 26, @05:46PM EDT (#573) (User Info) |
| Just tell them "no". |
| Teaching a kid to program (Score:1) by hsouders on Friday May 26, @05:50PM EDT (#577) (User Info) |
| I will be teaching my daughter (6th grader) computer programming. We won't officially begin this project until June 1st. In the meantime, if you have suggestions or comments (ie. languages, methods). Please visit her page and e-mail me comments. I am tentatively going to start by teaching her Python and maybe VB. Actually, I think I'll teach her how to make WWW pages first, so she can update her progress. Her page is here: Rose's WWW Page |
| 6 kids, 3 programmers (Score:1) by mitd (pgm@at-the-lab-go-fish.org) on Friday May 26, @05:53PM EDT (#581) (User Info) http://www.georgian.net/~mitd |
| I have 6 kids (number 7 in Nov.) 2 - 14 years of age. The 14, 11, and 8 came and asked me to teach them how to program. I told them to meet me at the white board, and with the 'Camel' and 'Lama' books in hand we spent 3 awful hours trying teach/learn Perl. At end of this totally unsatisfying experience my 14 year said, "Dad we want to learn how to program, not how to use a programming language." I, of course went immediately off to sulk. What was I going to do I was a geek dad who was failing my resposiblities as a parent, not say how I was letting down Larry, Tom, CmdrTaco etc. But then I began to think back to how I learned the Black Art way back while the earth was still cooling. Then it came to me like a flash. The next day I reassembled the troops in the garage where I announced we where gonna take a hammer, a saw, some wood and nails and build ourselves a little table. But we were gonna write down all the steps leading to our finished product. After completing our table (and the list) we discussed our the steps we wrote down, do this, for each leg nail here, if wood too long cut here. You get the drift :). Two months latter I sit a totally self satisfied dad. I have 14 year old writing Java programs with JBuilder, an 8 year old who is using Javascript in his webpages and god bless her an 11 year old daughter who just asked to borrow the Perl Cookbook. Oh yeah I also have a slightly cock-eyed, rather tippy little table. Footnote: The hammer, nails ... idea was in a the first book of programming I was ever given. It was published by SRI but I lost it 20 years ago :(. "One good thing about spam... You don't gotta answer it" |
| RapidQ!! The best of Basic + C + Perl (Score:1) by cr@ckwhore on Friday May 26, @05:54PM EDT (#583) (User Info) |
| Check out RapidQ @ http://www.basicguru.com/abc/rapidq It's a great freeware language with a large group of developers on the mailing list... it started as a basic derivitive, but has grown into much more than that... Here's some of the aspects that may be of interest to you and your kids: -Text based, GUI based, or CGI apps -Compile binaries for Linux and Windows! -program with structures, objects, or combination of both -definetely more powerful than 'basic', includes features inspired by c++, perl, and many others... Second Place is Only the First Loser! |
| Slashdot WAKE UP!!!!! (Score:2) by Wah (Hello!?thewah@uswest.netWhat?!) on Friday May 26, @05:54PM EDT (#584) (User Info) http://wahcentral.net |
| You've just written another book. Has VA realized this revenue stream yet? -- currently at V.9 |
| Perhaps you could do it this way (Score:1) by webrunner (webrunner@his.house) on Friday May 26, @05:55PM EDT (#588) (User Info) http://www.fuzzyfur.net/DSOS/adv |
| Introduce them to the basics of programming using a game such as Mindrover. It has a basic if-then system with boolian logic, - you tie sensors and such on to logic blocks, and then onto say, an engine or a rocket launcher, so you can say that if you see an enemy directly in front, and see nothing behind, to fire retro thrusters, or somesuch. ... Sure it's no C++ but it might be a good way to get them into the idea of programming. ---- Oh my god, Bear is driving! How can this be? probe.relicnews.com | www.fuzzyfur.net/DSOS | www.fuzzyfur.net/DSOS/adv |
| VB could be good. (Score:1) by goateye on Friday May 26, @05:58PM EDT (#592) (User Info) http://www.goofybastards.com/ |
| vb is easy and they could write usefull stuff for 98 and even some game admin tools..etc. also i think lego mindstorms might be a goodplace to start.. they have a simple system and also have a vb sdk for more control... g |
| Been there a couple years ago... (Score:1) by AiX2 (walsh@nospam.mo-net.com) on Friday May 26, @06:00PM EDT (#593) (User Info) http://www.drae.net |
| ah.. well just so you know, i'm 17 now, and I think I was in the same position your children are in when I was 11... for me the progression was something along the lines of 1) creating .bat files in dos (self-taught) 2) qbasic (Running Microsoft QBasic, by the Microsoft Press) It helped me out a lot. 3) HTML 3.0 & Javascript (not actually programming, but I learned to design and work to the goal instead of just sitting and writing code) 4) C (Teach yourself C Programming in 21 Days, and the The C Programming Language by K&R) and ive moved on to learn perl... hey, i'm not a programming god yet, but I still program because I am interested in it and enjoy it.. --Ryan |
| Hello World is OK (Score:1) by Jammerwoch (tbrown@pobox.com) on Friday May 26, @06:04PM EDT (#597) (User Info) http://www.pobox.com/~tbrown |
| You seem concerned that "Hello World" won't capture their interest. I don't think for programmers (or aspiring) programmers it matters *what* your first program is. Its the thrill and magic of seeing an innanimate collection of silicon and iron do something that you told it to. Sure, doing a Mandelbrot set or even random pixels would be "cool", but for heaven's sakes...start 'em off with "Hello World". RESIST the temptation to start them off on a Windows box! It WILL rot their mind! I started in a DOS/Wincentric world, and it made my subsequent introduction to the *nix world that much more painful. I don't think it would have been as hard the other way.... As far as languages, I've seen a lot of excellent suggestions. I'd be inclined to avoid BASIC...Perl, I think, is a good replacement for the simplicity of BASIC these days. The comment about teaching them to shoot by giving them a machine gun was cute, but the fact is, Perl CAN be clean and pretty. Perhaps its more analogus to teaching them to draw by handing them a pencil and a sheet of paper: you could draw ANYTHING, or you could learn about perspective, foreshadowing, etc, etc. I haven't had much experience with Python, but I think that too is a good suggestion. What about the venerable old Pascal? It, too, was designed as a teaching language, and I think it does a pretty good job at it. I would avoid C because its so tricky (they'd spend more time learning the inconsistencies, pitfalls, and details than they would on programming principles...there's pleanty of time for the former). I would avoid C++ because if you want to get them into OOP, go Java, Python, or Smalltalk. I also am in favor of introducing them to functional programming languages like LISP, or even better, ML. Besides, aren't they at that age that they're learning about a little discrete math in school? You know, what it means to be associative and commutative, etc? That would tie in nicely to ML (or some other nice functional language). Functional languages surprised the hell out of me when I got to college...I had NO idea something like that was out there. And most of all, enjoy! They may not follow in your footsteps, but while they explore your world, treasure it! |
| Bah! (Score:2) by jetpack (wrgcnpx@ubhfgba.ee.pbz) on Friday May 26, @06:06PM EDT (#602) (User Info) |
| You people are making me crazy with all these suggestions. The correct answer to this question is obviously INTERCAL!
|
| Classic Languages for Children: Smalltalk and Logo (Score:1) by DannyKumamoto (kumamoto@austin.apc.slb.com) on Friday May 26, @06:10PM EDT (#610) (User Info) http://www.cyberflex.slb.com |
| Smalltalk (e.g., http://www.squeak.org/) is a classic language for children to learn programming. Xerox PARC did extensive research in the 70's (almost 30 years ago) with Palo Alto students (6th grade or so). A good summary about it can be found at: http://www.rheingold.com/texts/tft/11.html (Adele Goldberg and Alan Kay's research papers are even better, but I haven't found them on the web (yet)....) Logo is always another alternative: http://el.www.media.mit.edu/groups/logo-foundation/ |
| interpreted / scripted language with graphics (Score:1) by peter303 on Friday May 26, @06:10PM EDT (#611) (User Info) |
| I think most people are saying don't start with compiled formal languages. Thats why we hear DASIC, VB, Python, LEGO, etc. Too much time in the compile-debug loop will turn kids off. Also kids want the code to DO something. Graphics provides this. ***original Homebrew Computer Club member*** |
| Same problem (Score:1) by freddevice on Friday May 26, @06:19PM EDT (#617) (User Info) |
| I was faced with the same problem about three years ago. My son was taking a great interest in programming. I felt he had to learn for himself how on OS worked, how a compiler worked etc. I believe these were things that you have to understand if you are going to spend your life doing this stuff. You can't learn that sort of stuff in a closed enviroment. Gave him a linux system, spent some time teaching him C ( because that is the language used). Now if I want to know how to do something under linux I ask him. |
| Easy Anser (Score:1) by el platano (rkirk@DIE_SPAMMERS.calpoly.edu) on Friday May 26, @06:23PM EDT (#622) (User Info) http://topflight.net/ryan |
| Java!!! Java is freakin' great! It's a clean language and allows you to play around with graphics and multimedia stuff right from the start. Teaching them how to do cool stuff they can put on a web page and show their friends is a good point, too. I cut my teeth on C++, then my University (Cal Poly) recently switched over to Java and I'm retaking the courses just because Java's so much freakin' fun. Everybody's talking about Java these days, and you can do some pretty cool things with it. Definitely consider it. Ryan Soy el plátano! No tengo gusto de monos! |
| Teach by Learning (Score:1) by RA-Zero on Friday May 26, @06:24PM EDT (#624) (User Info) |
| 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. |
| JavaScript (Score:1) by Relyt (relyt@bigfoot.com) on Friday May 26, @06:27PM EDT (#630) (User Info) http://relyt.vr9.com/ |
| I think that JavaScript would be a good basic intro, because it uses the web, which is good, and it has the same basic syntax as C++ and Java. Personally, though, I'd ask them what they want to accomplish. If they want to write for the web, teach them JavaScript. If they wanbt to make hardcore programs, teach them C++, it is *very* powerful. Take me, for instance. When I was 14 (a year ago), I wanted to do some game programming. So I got a book (Teach Yourself C++ in 21 Days, Jesse Liberty, SAMS Press, a very well-recieved book on Usenet), downloaded Bloodshed Dev-C++ (http://www.bloodshed.nu/), and got started. I have a long ways to go, but I am getting there fast. If a kid is interested in something, he will go far. Don't underestimate us, if we're interested, we will succeed. But remember, teach them what they want to learn!!! --- relyt |
| I started with c++ (Score:1) by Cypher22 on Friday May 26, @06:28PM EDT (#631) (User Info) |
| I'm 17 right now and i first started with c++ in windows because thats all our school offered.Now i am working on perl. I thought c++ was really easy to start off on. |
| One word.. LOGO (Score:1) by VWswing ("I saw the best minds of my generation....") on Friday May 26, @06:28PM EDT (#632) (User Info) http://www.plogic.com |
| Remember that? When I was a kid they started us on dacta technic legos & logo.. that was the way to do it (though my first programming language was basic on a ti 99/4a "I saw the best minds of my generation...." |
| Results == interest (Score:1) by ScannerBoy on Friday May 26, @06:32PM EDT (#636) (User Info) http://digitalassassins.com |
| Probably the biggest hurdle I had to overcome learning C when I was 12 was that it took a long time to get any kind of results, and doing anything graphical in C takes an advanced programmer. However, rather than tossing a huge language at them why not start with somthing basic like HTML (or whatever version of mark up you prefer), get them used to using editors and what not. HTML provides instant results which will keep their interests high. Once they have the basics down (2 weeks tops) move them into your favorite type scripting language, Java, JavaScript, for rollovers and neat effects, then if you want maybe some ASP, or even ASP to control simple database queries. After all they'll be able to build sites about the things they know best...themselves! It will also get them used to searching the internet for examples and tutorials. I realize many of you will simply see this as producing a hack programmer who doesn't really know much, but remember they are only 13 years old. By building some basic skills with instant visual results children will be naturally curious about other languages and possibilities. Later in college they will have a more formal training (inevitably C or C++, or if your really lucky Scheme like myself...Ugh!) I think is absurd to think you'd be able to churn out a C programmer at 13 unless they spend some serious time on it. Before you know it girl/boyfriends will adjust their thinking. This method will give them strong insight in to the capabilities of the web and allow them to share with their friends and family. "Course that's just my opinion and I could be wrong." Dennis Miller --You have just been scanned-- |
| The Least Frustrating -- JAVA? (Score:1, Insightful) by Anonymous Coward on Friday May 26, @06:34PM EDT (#637) |
| I've coded in C, C++, Scheme, PROLOG, and have seen Pascal. I'd consider teaching them a language that isn't frustrating -- at first. Of the one's that I've tried and seen, I think that I'm the least frustrated with JAVA. It has excellent documentation, IDE's, and I can do a lot with a little (Graphics, excellent error messages, etc.). |
| realbasic (Score:1) by sometwo (someone@NOSPAMtechnologist.com) on Friday May 26, @06:40PM EDT (#642) (User Info) |
| If you have access to a mac, you might also want to try Realbasic. This is supposedly a lot like vb but the programs are compiled better. It's all oop and is demoware too. It can also built to both Windows and Mac systems (compiler is mac only). |
| The best choice is Smalltalk (Score:1) by sjmgaut on Friday May 26, @06:41PM EDT (#643) (User Info) |
| With only a few operators and keywords, and the most complete class library, Smalltalk is an obvious choice --- Deux choses a retenir pour reussir dans la vie: 1. Ne pas dire tout ce que l'on sait. |
| here is what you do... (Score:1) by IamLarryboy on Friday May 26, @06:42PM EDT (#644) (User Info) |
| Just pick up an old 286 with a colour monitor. It is bound to have some version of MSDOS on it and that comes with QBasic. Show them a function or two and let them fool around at their own pace. If they like it they'll keep doing it and will teach themselves. If not then you tried but you cant force them to learn to programm. QBasic was the peak of Microsoft! --- In the beggining the code(software) was created. This has made a lot of people very rich and has been widely regarded as a good move. --- |
| Logo! (Score:1) by Moogoo on Friday May 26, @06:42PM EDT (#645) (User Info) |
| Logo was my first language. I started it in third grade, and boy did I love it. Although now that I think about it, I don't think I learned any programming structures from it. The only thing I ever did was make the turtle change colors and such. Pretty pictures, oooohh. |
| FutureBasic on the Macintosh (Score:1) by johnrpenner on Friday May 26, @06:42PM EDT (#646) (User Info) |
| One of the best languages to start with is FutureBasic on the Macintosh. It does away with a lot of the cruft of earlier basic revisions, modernises the language with local variables and real funcions and libraries. Some improvement in FutureBasic over traditional Basic languages: - No more line numbers - No more Goto (you can do it, but highly discouraged - it uses real Functions instead). - It compliles instead of interprets - Modern GUI Event-driven architecture - Resable Modular Code - Local and Global Variables - Recursion - Conscructs like While and Multi-line IF statements - Parameter passing through Functions. - Ability to use #includes - You can easily transition to a more robust language like C++ because the principles are the same, except you just start using { } instead of While ... While End which is more like English for while you're learning it. 2cents. johnrpenner. |
| A good Smalltalk; some really visual environments (Score:2) by Lumpish Scholar (psrchisholm@yahoo.com) on Friday May 26, @06:45PM EDT (#648) (User Info) |
| Squeak has a lot going for it, but familiarity for Windows users is not on the list. Probably a better choice would be Dolphin Smalltalk; it "feels like Windows" (a good thing in this case), it's a real Smalltalk, it comes with good tutorial documentation, and there's a free (as in beer) version available. Good news: Smalltalk was designed (back in the 1970s, assuming computers as powerful as we have today!) to be a programming language for kids. Bad news: Really smart kids took to it like fish to water, but most really struggled. Those of us who cut our teeth on punch cards and Teletypes were used to command line (or worse) interfaces and text programs. Today's kids aren't; even typing Smalltalk programs may bore them. Consider Stagecast Creator or Toon Talk as a couple of purely visual development environments. They're more suited towards development of games and simulations, but that's a plus if the goal is to get your children excited about programming (probably the right target at first). Here are a couple of stories about teaching kids to program: This one from Kids Domain has a lot of links to resources, while this one from Suite101.com is an interview (with fewer but entirely distinct links). |
| SICP (Score:1) by SpringRevolt on Friday May 26, @06:46PM EDT (#650) (User Info) |
| Structure and Interpretation of Computer Programs Abelson & Sussman (or some such). I have bought many programming books over the past ... n years (n>10). This is the outstandingly best one (has a clear view of OO). Buy this. Learn from it. Then buy/download the impelentation of choice ((Win + VB) vs (Linux + C(++)) not an issue. |
| Teach concepts using games (Score:1) by nullset (nullset@dookie.netn0sp4m) on Friday May 26, @06:52PM EDT (#655) (User Info) |
| The best way is to teach them how to think like a computer. One of the best programming lessons i've seen is when the teacher asks the students how to make a sandwich. He/She then follows the students instructions exactly, no more, no less. You can then teach them some simple programming concepts. There is surprisingly quite a bit of programming material aimed at children. |
| Turing anyone? (Score:1) by Astin on Friday May 26, @06:54PM EDT (#656) (User Info) |
I, like so many others, started out with BASIC when I was 9, on a Commodore 128 (in that yellow-screen mode). It was fine and dandy, and taught me some basic programming concepts, but I wouldn't recommend it The problem with BASIC is that it's "spaghetti programming", using GOTO and GOSUB statements regularly, making it hard to follow a basic programming structure. I'd recommend Turing, it's somewhat Pascal-like, but without the nit-picking. (ie.- no need for semi-colons, or brackets, etc.). It uses relatively plain english commands (put, get, etc.) and has auto-formatting at the push of a button. It's a structured language, and an object-oriented version is also available. In fact, Turing was developed as a learner's language, with the idea that one would move onto C with little problem. It was maintained by the University of Toronto, not sure if it still is or not. Note however, that it uses an interpreter, not a compiler (an external compiler IS available however), and tends to be slower than C, and not as powerful. But it is an excellent learning language. - In hell, treason is the work of angels. |
| Our kids use Linux (Score:1) by SnapperHead on Friday May 26, @07:03PM EDT (#666) (User Info) |
| My girlfriends kids use Linux all the time. They range in age from 6 to 9. They know how to login, start up X, load Quake3 and play there games. Outside of that, they really can't do that much. But, they are learning. My gf wanted to teach them on somethimg easier like Windows. I refussed, let them learn something! The biggest thing you have to remember is that THEY have to want to learn. If they are not interested, they won't to do. VB wouldn't be such a bad idea. I started in BASIC and Turbo Pascal. (Mostly Pascal) No matter how much bashing you do on MS, for simple things windows will do. But, for anything that requires any sort of power. Then theres good `ol *nix! I think starting off with "Hello world" is way too simple. Start showing them what you can do. Write something for them. Then example to them that it does take sometime to learn to program. Give them some goal, write a simple text based game. ( gotta love those :) Then they have something to shoot for. Once they get going, let them go at there pas. But, don't let them give up. until ( succeed ) try { again(); } |
| Try Logo (Score:1) by pornking on Friday May 26, @07:05PM EDT (#669) (User Info) |
My first language was Applesoft Basic, but I couldn't really get into it. I really got into programming when I learned logo. It was easy, and I could grow with it into advanced programming topics. (It's really a dialect of Lisp.) I was playing with references, recursion, and binary search trees in no time. When I got into college and learned about pointers, I realized that I already knew about them. I breezed through what most people considered the hardest part of programming 102. Logo lets you go from printing your name and moving a turtle around to some pretty advanced topics. The only thing it doesn't support is OO, but you can always introduce Python as the second language. I use VB occasionally, but it has inconsistencies which I always run into and the editor gets in the way. Can anyone tell me the difference between Let and Set? Why do you need one sometimes and not others? When do you use . and when do you use ! to access members? Perl is powerful, but it was designed to be easy for Unix admins. I think others who learn it end up shaking their heads a little even if they grow to like it. Python is a great language. It is easy, consistent, has an interactive interface, and scales from the easiest programming to some very advanced stuff. The only reason that it is my second choice is that it shields you from lots of things involving the use of references. You can't, for example, have variable X which is a reference to the variable Y. X can only be a reference to the object Y references. (All variables are really references.) Also, I don't know of any graphics packages that can be manipulated interactively like the turtle in Logo. (Tk is easy, but in Python, you have to set it up and then run your event loop. No interactive experimentation.) I think there is a need for a learning language that:
Basically, I think a good language for teaching children would be as friendly as Logo, as consistent as Python, and as conducive to cs theory as scheme. |
| Java : Structured, Object Oriented and "Cool" (Score:1) by wood on Friday May 26, @07:06PM EDT (#670) (User Info) |
| My wife (an accountant) wanted to learn a language. Her experience with computers was pretty much limited to playing with boards & pieces & parts at the office. I gave her "Just Java 2" and Visual Cafe (JBuilder wasn't a free download then). After a little reading she created her first object for my birthday (I'm a real geek, I guess). Java offers plenty of opportunity to learn OO and programatic style. It's cross-platform (someday your kids will laugh at all of the "platform wars") and C-like. Get 'em interested today: Download the Java Media Framework and play a short movie in Java. Do some MP3s before the acronym becomes illegal. Hell, give them the vile "Nervous Text" we all hate.
Let 'em have fun. Cheap Advice: You do all the setup and installation of the environment. Focus on the code, they'll become SAs on their own. |
| Start Simple (Score:1) by Raffi Spock (raffir@nettaxi.com) on Friday May 26, @07:07PM EDT (#671) (User Info) http://www.raffi.8m.com |
| I started with QBasic at 8 after finding a book in the library. A year later I was making graphical games. Soon I started using VB. Then(seeing the cost of DJGPP) taught myself C. Now I program Perl and use modified Slackware. Life is good. The world is coming to an end; Eat dessert first! |
| Haskell (Score:1, Insightful) by Anonymous Coward on Friday May 26, @07:08PM EDT (#672) |
| Teach your children functional programming; they'll either love you, or come back and try to kill you in 10 years. In all seriousness though, it really depends on what your/their end goals are. If its just straight-up app or game programming then definitely stick with a procedural language but if you're interested in actually expanding their minds, you might want to consider a functional language. Functional programming would teach them many fundamental mathematical concepts that, for whatever reason, the North American education system seems to gloss over in elementary and high school. More importantly, it would help them learn to think in a structured mathematical fashion which, in the final analysis, will provide manyfold more benefits than just learning how to write an app. For those of you who are even now thinking of flaming me with "kids could never understand functional programming", I refer you to the poster above who warns us not to underestimate the minds of children. After all, wasn't LOGO everyone's favourite trendy-1980s-teach-kids-to-program language? (granted it was more a logic programming language, but the dependance on recursive thinking is still there) Just a thought. |
| PERL!!! (Score:1) by nullhero (jakeeboy@well.com) on Friday May 26, @07:08PM EDT (#674) (User Info) |
| Elements of Programming Perl is really good. I gave it to my 8 year old nephew and loaded ActiveState's Perl Build for Windows and he's writing out Perl Scripts like mad after about a month. I was truly surprised at how quickly here got up and running. |
| C was my first language (Score:1) by cyanoacrylate (crispin@@myra.com) on Friday May 26, @07:08PM EDT (#675) (User Info) |
| But I'm not sure that it should be everyone else's (= vs. == is a good example). Further, at the University of Victoria, they moved to teaching Java and I keep hearing complaints about how bad the 1st and 2nd year's code is. Plus, you have more of that C-the-second-most-cryptic-syntax-in-the-world (brainfuck) problem. Basic doesn't really teach control structures so I wouldn't suggest it either. Actually, don't tell them about gotos at all - take the section out of the book, or at least tell them how evil they are. Personally, I thought Modula-2 was a really cool language when I studied it a few years ago. Very logical, nifty nesting, no super wacky syntax, but exposure to something that looks mostly like Java and C. If that's hard to get a hold of, then Pascal should be a good language also - it has the control structures, and clean syntax. Cyano |
| brainfuck [was Re:C was my first language] (Score:1) by evil_deceiver on Saturday May 27, @01:03AM EDT (#832) (User Info) http://justice.loyola.edu/~mcoffey/ |
As a matter of fact, I don't think brainfuck is all that cryptic. But perhaps you could discern my bias from my sig. :) I'd go so far as to say that brainfuck, having been forced to be both logical and simple by virtue of its drive for compactness, is an excellent teaching language. It's a good introduction to the concept of arrays, to ASCII, and to while-loops and sentinel values. I would not go so far as to say that brainfuck is a good first language, but it might be an excellent companion language to C (which was also my first language, and which I do still recommend as a first language: it gives you a good foundation, and is absolutely imperative if you want to be a UNIX developer). Especially since its interpreter and certain tools are written in C. Anyone interested in learning more about brainfuck can visit the presentation page I set up a couple of semesters ago, when I had to deliver (you guessed it) a class presentation on the language. It was meant as a companion to my talk and demo programs, so if you don't find it as informative as you'd like, follow the links at the bottom. Or, better yet . . . . Anyway, if you think brainfuck is bad, you've obviously never tried Befunge. ;P ++++++++++[>++++++++++<-]>+.<++++[>++++<-]>+.<++++[>---< -]>-.+++.[-]++++++++++. |
| REXX (Score:1) by jfwcc on Friday May 26, @07:11PM EDT (#677) (User Info) http://titan.glo.be/jfwcc/pull/jfw___Daily_Briefing.html#links |
| It's a kind of scripting language, but can be compiled to object code. It runs on Windows, Unix, IBM's /360 to /390, IBM's ES/9000, AIX, in short: Everywhere. It has system calls facility. You can even choose what other system the call should go to (on a mainframe, that's important; on Unix it's not). It is VERY easy to learn, yet VERY powerful. Some financial gov't in the US uses a complete REXX-written application. I used it for connectivity between mainframes and AIX workstations and almost everywhere. The different interpreters are either free (for Unix, there's "Regina") or commercial (a very good one is from Quercus Systems for Windows). Since the commands are very intuitive (that was the goal of the developer, an IBM employee) you can almost use it without any learning curve. Kids - I guess - will make more use of system calls over time, and develop the special SENSE that either shows the talent, or does not. Just keep in mind, programming can't be learned. You either have the talent, or you don't. But unless you let the kids check it out, you can't know. |
| Python and can we have better topics? (Score:1) by willhelm on Friday May 26, @07:12PM EDT (#678) (User Info) http://www.bluesock.org/~willg |
| Python. One of the missions of Python is to become ubiquitous as the ultimate powerful learning language. They have documentation up the wazoo. And several books (Learning Python) that walk beginning programmers through some quick fundamental concepts. Also, in the last few months, the headline articles on Slashdot have become more and more neophyte-related. Is this now News for Young Adults? What happened to News for Nerds--where we're assuming Nerds have already answered all these questions? Do the people posting topics like this read Slashdot? If they did, they'd realize this is a topic that gets covered in almost every single language-war related article. While I understand that I can tune Ask Slashdot articles out, I am somewhat saddened that this is no longer a place for Nerds, but rather for Nerd wannabes and political types and beginner developers and trollers. I don't know if Slashdot folk have a mission statement revision, but "News for Nerds. Stuff that matters." doesn't work anymore. |
| Re:Python (Score:1) by docz on Friday May 26, @08:41PM EDT (#738) (User Info) http://quark.emich.edu/ |
| I agree that Python is *the* language to learn. From there, add C, and then anything else as necessary. As to where to start, go with the simplest of programs at first-- it doesn't need to have an integrated MP3 player to be useful. Python runs on lots of POSIX machines, and has a win32 version. there's also a version that compiles python code to java byte code called JPython. python home page current python documentation |
| Assembly (Score:2) by youngsd (s d y@zilber.org) on Friday May 26, @07:15PM EDT (#680) (User Info) http://home.att.net/~youngsd/ |
When I was 12, I started learning Basic in school (on Apple IIs at school, C64 at home). I quickly realized that Basic would not permit me to create the games that I could buy at the store. That made me wonder what those were programmed in. Asking around a bit, I was introduced to assmebly language. Not realizing that assembly was supposed to be too much for a kid, I bought a C64 programmer's bible (which covered the assembly instructions) and started teaching myself. In no time, I had a working knowledge of assembly, and from that point on, I've been in love with programming. The great thing about learning assembly early is that it makes learning other languages (Fortran, C, C++, etc) not seem so forbidding. Steve |
| Tcl Robots (Score:2, Interesting) by GroundBounce on Friday May 26, @07:20PM EDT (#685) (User Info) |
| A great tool I have used with my 11-yr-old son is Tcl Robots. Basically, it's a Tk application where the user writes small Tcl procedures to control robot "tanks" around a battlefield. You provide the algorithms for how to move, when to shoot, how to scan for enemy tanks, etc., by writing a procedure in Tcl. The program then runs your tank against other built-in or user generated tanks on a battlefield canvas (the canvas is part of the program, not created by the user). This has had several good effects: First, the kids are doing actual coding in a real programming language (albeit Tcl, not C). Secondly, they get very quick results in a graphical fashion. Third, several kids can write their own tank code and compete against eachother, which can raise the level of interest by making it kind of a game for them. I wish I had access to the URL right now, but a google search would likely turn it up quickly. |
| Visual results leave a warm fuzzy feeling (Score:1) by Groth on Friday May 26, @07:21PM EDT (#686) (User Info) |
| I think many people have hinted at some good ideas with regards to teaching good principals, challenging childeren, and keeping their interest through visual stimulation. Java gives a good SDK for developing visual applications relatively quickly. It's highly typed and object oriented so it provides some conceptual models that must be learned, you can just go freely writing crappy code like with other languages (not naming names). The combination of the JDK with a solid base language gives a good teaching platform. Mindstorms require the use of varying degrees of logic to solve varying degrees of problems and has the benefit of seeing results quickly and easily. As a clean programming language I think Python is also a good solution as many people have pointed out. The only thing I'm unsure of regarding Python is the ability to produce something engaging without knowing Tkl or X ugliness. |
| One thing VB has going for it . . (Score:1) by moreati (siu99aw@rdg.ac.uk) on Friday May 26, @07:24PM EDT (#688) (User Info) |
| I'll first admit this: VB is a bad language - I started in it, and it's only now in delphi and C I'm learning good practises. But one thing that makes VB more appropriate to a beginner is immediate results. The VB IDE has strong user feedback, incorrect syntax is flagged the moment a line is completed, controls change as properties are edited. I'm not just talking about visual form design but other 'shortcut' features in particular the immediate or debug window which allows on the spot execution of a simple piece of code. This makes the discovery process all the more interactive, engaging and ultimately fun to use (barring ideosynchrasities which drive those expirienced to distraction). I'm not saying use VB because it's a good language or it teaches good programming technique. But because it's that bit more likely to get them hooked, the finer points (a pride in elegance they bring) can come later. Incidently if there is another language in Windows that anyone feels these critieria name it then we could give the best of both worlds. Alex Willmer |
| Bill Gates got his break w/ BASIC... Nuff said. (Score:1) by PurdueRob614 on Friday May 26, @07:24PM EDT (#689) (User Info) |
| BASIC stands for Beginners All-purpose Symbolic Instructional Code. Although it was inherently designed for beginners, you run out of usefulness relatively quickly, and it doesn't promote good programming techniques. Don't pollute their minds with VB or any other Microsoft product. If Microsoft knew how to teach good programming techniques would we there be any of these VB viruses still running around??? If the kids are very young, Logo is a good way to get them motivated about computers and geometry. If they are junior-high schoolers, Pascal is a good language to start in, but only if you can find interesting programs for them to work on. Many times people get frustrated if they do not instantly see results that seem fun. If they are interested in the web, why not start with Java or Perl? Personally I started with Logo, then BASIC (cringe), then Pascal, and then with C. Unlearning the BASIC wasn't a big deal for me, but I know it is for many students. I am a teaching assistant for an freshman engineering programming course, and it's the perfect example of people with no programming experience. They come in with nothing, and leave w/ a good rudimentary knowledge of C and FORTRAN. We come up w/ things that deal with what they are working on in their other classes, so they can see how programming can help them. Teaching a good high-level language such as C teaches people how to relate math and science with algorithms, which will help their problem solving skills. Do you want your kids to be assimilated by Microsoft? |
| Let Kids Be Kids!! (Score:1) by root_dev_X (root_dev_X@SPAM.KILLS.CHILDREM.yahoo.com) on Friday May 26, @07:31PM EDT (#692) (User Info) http://blender.sufftech.net |
| OK, i'll admit it - i'm a geek. I'm a hardware weenie, there's very little i like more than to be knee deep in mainboards and cabling. However, i find this article disgusting. Call it flamebait if you want, but this needs to be said. Whatever happened to letting kids be kids? If a child has an aptitude toward programming or other geek 'arts', then it will become apparent and the child learn what they crave to know. But i find the idea repulsive that some of us want to take it upon ourselves to teach programming along with the alphabet. I think that we would be doing a great disservice to children if we taught them to program. For one reason, i think that programming as it exists today is a fad. That's right, a fad. I believe that the groundswell of popularity of programming will end in mass unemployment for skilled programmers (it's already starting to happen in the Silicon Valley and eslewhere). But aside from that opinion, I think that we should allow gifted children (programmers and otherwise) to find their talents on their own. Flame Away. Alex Alex "If you can't say something nice, say something surrealistic." |
| The wrong question (Score:1) by mightbeadog on Friday May 26, @07:31PM EDT (#693) (User Info) |
| The right question is, "what languages should you show them?" The answer is, "as many as possible." The world in which we learned to program has been gone for (internet) centuries. We'd be fools to predict what would be fun for them today. So find a list of languages, do very short intro's as many as you can, answer as many questions as you can, and help them get whatever information they want. |
| It doesn't matter. (Score:1) by vampdsy (stuff@pghgoth.com) on Friday May 26, @07:33PM EDT (#695) (User Info) http://www.vampyradaisy.com |
I started out with BASIC at the age of 8 on a TI99/4a. I believe my first coding enterprises were to the effect of making print statements form ASCII pictures, later becoming "if someone types this, then that is returned", later some simple text adventure games. However, I'd also been exposed to Hunt the Wumpus on my dad's HP calculator, so I didn't think all programs should look like Qbert. I guess my thought on this is that I really enjoyed making things that were as simple as "Hello World!" at the first, and used that bottom framework to move onto the next concept. Creating something that simple isn't always as simple to a child on their first program -- make sure you're proud of them if they do make something say "HI DAD!" only! On the other hand, they might also think they can create QuakeIIIArena starting out... if you find they're blocking at that point, perhaps introducing them to more simple games like text adventures or "fish" from /usr/games could aid them in learning to code something more immediately available. In the end, it's really up to how you interact with them as a parent to a child that helps them learn the most out of it. Be supportive and helpful and always proud. Btw, both my brother and I are in computer fields -- I'm a SysAdmin and he's developing networking protocols for wireless networking as they pertain to mobile robotics. We are both very grateful to our father for showing us BASIC at young ages now; but more importantly we're glad for the time he spent with us as he passed away before he could even see the results of his forethought in his children. Gwendolyn R. Schmidt |
| On BASIC, LISP, C/C++, Win32, and BeOS (Score:1) by Kohntarkosz (eaux, at home, dotcom) on Friday May 26, @07:34PM EDT (#696) (User Info) |
Here are some of my thoughts on this:
|
| Re:On BASIC, LISP, C/C++, Win32, and BeOS (Score:1) by mbpomije on Saturday May 27, @03:01AM EDT (#871) (User Info) |
Although it's a snap to get started in LISP, and I love the language personally, LISP becomes subtle and arcane quite quickly, at least in my experience with Commmon LISP (Scheme is, I'm sure, much easier). For example, try explaining how defmacro works to a kid, and see how far you get! Well, defmacro provides fewer traps and much more expressive power than the C macro facility. defmacro may not be suitable for a child's first exposure to programming, but you can do a lot in Lisp without it. The Apple R&D department had a lot of luck using Lisp to teach programming to kids. |
| start with C Games. (Score:1) by Damon C. Richardson (root@localhost.localdomain) on Friday May 26, @07:38PM EDT (#697) (User Info) http://www.asynchrony.com |
| My first book was "tips and tricks of the game programming guru's" The great thing about that book was that when my mind wandered I wrote programs like a file transfer program that work with 2 computers serial ports. I see alot of BASIC on this topic and I wound not think that Basic would be exciting. ( It wasn't when I was young ). (You could learn alot from a man page). |
| Typing in listings to learn. (Score:1) by scoo' on Friday May 26, @07:43PM EDT (#702) (User Info) |
| This brings back memories for me. I started out on an Apple IIe typing out program listings from books as a kid. Just a few ideas about techniques which you might be able to use which worked for me as a kid. First of all find a program listing in a book somewhere which does something which captures their imagination and doesn't include to many advanced coding techniques. (I learnt Turbo Pascal from typing in an adventure game.) Get them to type in listings. When the listing is done help them debug it. During this time they will have picked up a good bit of knowledge about syntax (even if they don't know what syntax is!) and flow control and everything else. The goal here is not so much completeness of knowledge but breadth of knowledge. You are trying to turn them on to the possibilities of the language so that they have something to aim for. Of course this probably depends a good bit on the age of your kids (I was roughly 10 when I started programming, a fairly late starter) and what their learning style is. Obviously it may make sense to intersperse this technique I am suggesting with others such as the small things first, slow build up, "hello world" approach. Anyway hope this helps. I don't really know what language I would suggest learning first. Perhaps you could give them a choice between different languages? (Setup demos? I'm clueless really!) |
| How about an emulator? (Score:1) by zizzo (reiXman@eudXoramail.Xcom) on Friday May 26, @07:53PM EDT (#706) (User Info) |
| No one seems to have mentioned emulators for old 8 bit machines. I know I learned on an Apple II. A couple of advantages: 1) Kids can't ruin an emulated computer no matter what they do. 2) Almost all 8-bit home PC's had simple graphics and sound systems. 3) Most had built in Basics and some sort of ML monitor. 4) These old machines were fully comprehensible to me by the time I was 16. I got "it", how the CPU accessed the RAM, how the I/O cards worked, how the disk drive worked... it all made sense. This has never been true on any of the machines I work on today 5) I sincerely doubt learning on a bass-ackward language like a line numbered basic will screw up their thinking forever. Lots of us learned that way. Learning it wasn't the only way was a learning experience in itself, one that I'm glad I had. There are numerous disadvantages too but I bet you'll come up with those on your own. I just wanted to point out a new option. |
| Re:How about an emulator? (Score:1) by macwhiz on Saturday May 27, @09:15AM EDT (#938) (User Info) |
| I'd definitely second this -- it's my plan if/when I have children. I learned programming on the Atari 800, and moved on to the Apple II. Both machines were fully comprehensible. A young child can easily learn what those boxes do at the chip level, and apply it easily from BASIC. Modern OSes have so many APIs and layers that you can't get that direct correlation between hardware and software so easily. You can make more complex programs, but I doubt it's as good for learning basic computer concepts. |
| Turbo Pascal for DOS (Score:1) by dybdahl (lbd-no-spam@dybdahl.dk) on Friday May 26, @08:05PM EDT (#713) (User Info) http://www.dybdahl.dk |
| Of all the languages I have seen since I started in 1980, Borlands Turbo Pascal for DOS was clearly the best for childrens use. Ease of use combined with lots of possibilities makes it real childrens play, and it still is, year 2000! Text mode software might not be the most interesting in an adults eyes nowadays, but it's far better than any Unix scripting tool or C/C++ because it has this integrated environment with integrated system libraries, where you don't have to know a lot about protocols or external libraries, and it still provides power. When the children want graphics or GUI, they can upgrade to Delphi for Linux or Windows. |
| My First Language... (Score:1) by Dice on Friday May 26, @08:10PM EDT (#719) (User Info) |
| ...was BASIC. On DOS 5.2. My dad, who was doing mainframe programming at the time, bought me the book "BASIC Programming for Kids" or something along those lines. I tore through it, hacked up gorilla and nibbles which came with DOS and generaly raised hell in the computer labs at my elementary school :) Ah, the good ol days. After BASIC I went on and did other things throught elementary school, picked up programming again at the tail end of Jr High when I learned C. Since then I've picked up C++, LPC, x86 assembler and Python. I must say that after the first language, all the rest were just a logical progression and learning new syntax. (except assembler, which was a breaking down of the concepts I learned in C ;)) Anyway, back to the point. Although BASIC was my first language, I'm very impressed with Python and LPC. IMO, LPC is in many ways superior to C++... except you really can't use it for actual application development :) Then again, your kids might think it'd be fun to develop areas in a MUD. That would also be a way to get their friends involved, they could code up areas and share the game with their friends. Wahoo :) The Court is well aware that there is a substantial body of public opinion, some of it rational... - Judge Jaxon |
| I always recommend Java to beginners (Score:2) by goingware (crawford@goingware.com) on Friday May 26, @08:16PM EDT (#724) (User Info) http://www.goingware.com |
| I always recommend Java to beginners, as a first language. Note that I generally prefer programming in C++ for my own applications for various reasons (I like manual memory allocation and pointers, and tweaking code, and stuffing bits and stuff) but that's not what a beginner needs to know about, they need to get stuff running quickly and easy without ever having to reboot their machine because of a pointer bug. I'm not sure what are the right books for a kid, maybe "learn Java in 21 days". One nice part is that once you teach them how to write an Applet they can show off to their friends on their web pages. For an IDE, I suggest MetroWerks CodeWarrior for Java. Get CodeWarrior Pro if you want to do C++ too. CodeWarrior supports a variety of processors and OSes. When they move over to Linux (and they will move over to Linux after your gentle urging), they can use the CodeWarrior IDE on Linux for a familiar UI and won't have to write makefiles. That's the other thing - first way to scare off a beginner is to require him to write a makefile to compile a project. Mike |
| HTML + glue language (+SQL, maybe) (Score:1) by slaker on Friday May 26, @08:17PM EDT (#725) (User Info) |
| This is probably gonna sound like a bad idea but... I think a really cool place to start is with a language that can easily flow between web and database apps (PHP or Python or something - I don't think I'd use Perl). Querying a database isn't difficult to conceptualize, and could probably be made pretty cool to a lot of kids (say, with sports scores or Britney Spears' vital statisics or something). Teaching them to do it with in a way that can easily transfer to the web - where the fruits of their work are easily visible - would be a really nice motivation. What I'd do is spend some amount of time teaching one of those stripped-down languages that gets used for "web stuff". Teach them the basics of the language while at the same time asking them to think of creative ways to solve problems. I'd put a lot of emphasis in either working in groups or some decent mentor-type environment where kids aren't just on their own... and tell them all along that what they're going is going to end up on the web. The language they work with is absolutely secondary to the experience of learning. Anyway, after they've done their problem solving or at least taken a stab at writing something like a program, take some time and teach them HTML. This isn't a big deal. It's standard fare for college sophomores majoring in liberal arts nowadays, which means a reasonably intelligent 10-year old should be able to learn it in just a bit more time (no slam against liberal-arts types, they're just typically not technical people). Anyway, teach 'em HTML, then teach them how to get their programs to either work with that HTML or to spit out the HTML pages themselves. I taught a 12-year old cousin this way, using ASP and HTML (I did some database work for him) - we made set of web pages that kept statistics for his baseball team. If you're really brave, you might even venture into SQL - at least the basic SELECT, UPDATE, INSERT and DELETE commands. There's a lot of cool stuff that you can do with that combination. -- I wanna decide who lives and who dies - Crow T. Robot, MST3K |
| Mainframe work (Score:1) by yetisalmon on Friday May 26, @08:17PM EDT (#726) (User Info) http://www.dougal.org |
| I started out programming mainframes in COBAL. It's what I enjoyed most. Maybe have him look at core kernel code? Just a thought. |
| Game AI (Score:1) by Falrick on Friday May 26, @08:19PM EDT (#727) (User Info) http://www.ilstu.edu/~njsmith |
| How about one of the various games out there that let you program a bot? I took place in The Adventures of Stickman, a programming contest at Illinois Wesleyan Univeristy at Normal (Information located here). It was probably the single most fulfilling coding experience that I have ever taken part in. It was extremely gratifying to see a game that I had a hand in. They have posted the server and clients that the contestants wrote are available online. The clients are written in C/C++, so it may not be the easiest language to start out with. However, using something like KDevelop, it makes development much easier. Be warned, though, that there will probably be some porting involved as it was developed for a SparcWorks compiler on Sun systems. See the readme for more information. Oh, and if you download it, I'm sure the officers would like to know. Some more about the contest: The chalenge was to write an AI client for a PacMan style game. You have a stickman running around in a maze eating pellets and avoiding, or eating, monsters and other stickmen. Just navigating the maze presents an interesting challenge (especially because we only had 8 1/2 hours to code it!). It's a great way to get familiar with C or C++ (API available for both) because its educational and entertaining. Your kids could colaborate on a client, or write clients to compete against each other. If they beat my partner and my client, let me know :). Oh, we got 3rd. Not too shabby out of 19. My skin feels like eggs |
| Pretty stuff - and no reason to start high end (Score:1) by parm (chris@parm.net) on Friday May 26, @08:21PM EDT (#729) (User Info) http://www.parm.net/ |
| Thinking back to when I started programming, all I ever wanted to do was to write programs that drew cool stuff. I ended up learning trig aged 9 in order to draw a circle because the Acorn Electron didn't have a circle primitive on it. Many varieties of BASIC come with decent enough graphical primitives with them, and whilst BASIC teaches a few bad habits, it shields you from needing to worry about real world issues (which, face it, you don't want to worry about age 11). Another great thing is that BASIC is usually available as an interpreted language. I certainly couldn't hack the idea of compiled languages when I was 11 - I liked to code, type RUN and see results. It's only now I've grown up that I see the value of things like compilers, IDEs, OO design and stuff like that; kids don't need to worry about that kinda thing. Another thing - why not consider an older machine? C64s, Speccys, BBC Micros and all that lot all had perfectly adequate BASIC interpreters built into them, with pretty good graphics libraries. For rapid coding and bomb-proof stability they're still excellent machines (and you can pick 'em up for next to nothing these days) - okay, you'll never run Windows on 'em, but why do you need to run Windows (or Linux or *nix) in order to learn to program? |
| Young kids: ToonTalk; older kids: HyperCard (Score:1) by PerlDiver on Friday May 26, @08:31PM EDT (#732) (User Info) |
| Even very young children (old enough to know their letters and numbers) can be started on programming with Ken Kahn's ToonTalk, an animated programming kit that introduces even such advanced concepts as recursion and functions in a fully visual, direct-manipulation, non-notated way. Kids learn by playing with an on-screen toolbox, robots (methods), birds (message passing channels), scales (comparison operators). I saw Ken give a ToonTalk demo a few years ago and I was blown away by it. If your kids are too old for "kid stuff", start 'em off with HyperCard, a great introduction to object-oriented programming concepts like inheritance, encapsulation, and message passing. The embedded programming language, HyperTalk, supports functions, event-based methods, recursion, etc., with a very English-like syntax. HyperCard provides a visual object hierarchy already populated with rich actions, and extensible with additional functions and methods. (The object hierarchy is not easily extensible, but by the time the kids hit that limit they will be ready for Java, Perl, or Python.) The only drawbacks to these two great teaching tools is that neither one of them runs on Linux! (ToonTalk: Windows only; HyperCard: Mac only) |
| Recommend RCX Command Center for Lego Mindstorms (Score:1) by psyclops (psyclops@psyclops.com) on Friday May 26, @08:41PM EDT (#739) (User Info) http://www.psyclops.com/ |
| I found a great programming tool for the Mindstorms system - RCX Command Center. It is a simple C-like programming language (actually, the language is 'Not Quite C') that will teach the basic concepts of variables, subroutines & functions, loops, etc. It's not as powerful as LegOS, but is easier to learn and much more convenient (one-touch compile, download and run), and comes with a programming tutorial. I think that learning to program by controlling lego robots would be a fun, challenging and rewarding process that your kids will love! Nick Donaldson mailto:psyclops@psyclops.com Bit Wrangler Extraordinaire! http://www.psyclops.com/ |
| Emulators (Score:1) by cowbutt on Friday May 26, @08:45PM EDT (#742) (User Info) http://www.cocoa.demon.co.uk/ |
| Well, many of us probably started on 8- and 16-bit home micros (which aren't available any more), so why not do the same thing and start with an emulator of an 8-bit machine - this has the advantage that there isn't too much to learn about the environment before they can start programming, unlike Windows or DOS or UNIX or... I'd suggest a Spectrum/Timex emulator, but that's just me... |
| Results (Score:1) by 1DeepThought (deepthought@nospam.linuxstart.com) on Friday May 26, @08:58PM EDT (#745) (User Info) |
| I thnik it is obvious from the answers here there are a number of suitable languages. I think a particular language is very subjective. Personally I would suggest PASCAL as that is what I learnt and I found it simple and logical. However, I have to say that a very inportant factor is results. The "kids" are going to be much more likely to program and be involved if they can see good results from their work. Spending the first few sessions teaching them a bubble sort on an array isn't going to cut it. Teach them some cool graphical or similar stuff straight to get their interest then teach them the stuff they need to know.
My slashdot number is Prime too |
| Anyone ever heard of CZ? (Score:1) by MrChris2 (c.j.haggan@nospamcomp.brad.ac.uk) on Friday May 26, @09:07PM EDT (#748) (User Info) |
| CombatZone is a very simple language based on a 'control the little tanks and kill each other' premise. The trick is that each tank has to be programmed from scratch by the user. The language itself isn't complex and I have been using this to teach people the basics of programming for over a year now. If you are interested take a look at it on: www.student.comp.brad.ac.uk/~cjhaggan Any comments about it please direct them to me... the author (Matt Peck) is not contactable anymore :( Just my two cents, Chris |
| Ever heard of OOT? (Score:1) by ace118 on Friday May 26, @09:26PM EDT (#754) (User Info) http://fly.to/shawnmei |
| I am in grade 10 in Ontario, Canada and last semester I took my first programming class. They taught us in an interpreter based language called Object Oriented Turing. It contains most major commands (print, graphics, math and ever TCP/IP) the best part is the editor completely prevents any errors from being in the program (syntax or logic) by checking before. It teaches first timers how to prevent their own work from having errors by having a good syntax. I recently even won a competition for one of my programs. More info is available at the Holtsoft website. Holtsoft |
| Start Simple, then move . . . (Score:1) by oddRaisin (odd_raisin@hotmail.com) on Friday May 26, @09:30PM EDT (#755) (User Info) |
| I realise that windows is far removed from the DOS 3.0 days that I started in, but I think that a good place to start is with batch files (.BAT). This is a _really_ primitive form of shell script that allows a person to sting multiple commands together. In old DOS days, you could set one up to, say, copy all the files from your a: drive to another location and zip them there with just one command. Later implementations of the bat interpreter allowed the use of interaction and jumping, etc. After that, I moved to BASIC, but it might be worth going to something a bit more intuitive. Perl, I like, but it's more than just a little confusing, especially since you can always do things another way (The motto of perl? :). I've always liked Delphi, if there into the entire windows scene. It has basic OO concepts. I guess you might want to consider what they might be doing. I find that as a sysadmin that I rarely, if ever, use OO in my day to day work. As a developer, especially for the *nix platform, I still see C as being a dominating force. So If OO and visual stuff wasn't on the list as being desirable, I'd introduce C. Or even the shell scripting on Unix. It's closer to the batch programming on DOS, but, obviously, much more powerful and extensive. Limited command set, very useful functionality, and still used today (and probably tomorow). |
| Dark Basic (Score:1) by Lord Omlette (ajain@cnct.com) on Friday May 26, @09:35PM EDT (#758) (User Info) http://www.omlettesoft.com/ |
| http://www.darkbasic.com/ It's not free, but it's a basic language that focuses on 3d game programming. Lots of simple tutorials and examples are included. The power is pretty impressive. It's for Windows... -- Peace, Lord Omlette AOL IM: jeanlucpikachu |
| Just use BASIC under linux! (Score:1) by firewood on Friday May 26, @09:53PM EDT (#761) (User Info) |
| One common thread here is that many programmers first learned to code in Basic. This may simply say that most of the contributors to this thread learned to program more than 5 years ago. The majority of all computers sold from 1978 to 1995 or so came with a BASIC intepreter included free. Thus zillions of kids could learn to program by just tinkering around in BASIC, and without the need to digest some semi-religious tome on {structure|types|lists|objects|etc.}. Even though the {Logo|Pascal} school claims that this was bad way to start, the ratio of good to bad coders seems about the same, whatever the first language, IMHO. Good coders seem to (mosty) outgrow their childish ways; plus those old rapid prototyping skills come in handy when there's the need to evolve software at "internet speed". Anyway, one can still start out playing with the classic BASIC language on a linux boxen: There's Yabasic http://www.yabasic.de/ (GPL'd) and Chipmunk Basic http://www.nicholson.com/rhn/basic/ (that's mine) which both have both linux and windows ports. Chipmunk Basic also has a MacOS port which includes sprite graphics. Books on programming in the classic BASIC can easily be found in any public library that hasn't had a huge acquisition budget over the past few years. Given that nearly every computer sold these days comes with a html and javascript interpreter, and that one can write some simple, instant feedback code with these languages, I expect javascript to be next popular beginning language. All that's missing is a few books with titles like "101 games in jscript"(tm), etc. Who's up? IMHO. YMMV. |
| Oh no... (Score:1) by Ian-K (echo triwnkwr@ywhoo.com | sed s/w/a/g) on Friday May 26, @09:54PM EDT (#763) (User Info) http://www-users.york.ac.uk/~tak100 |
| Not BASIC, please! All the lecturers at my uni. (yes, I am a computer science student) foam if you even say the word and I tend to agree with them (but not because they are my lecturers). It's generally accepted to be a horrible language if you wanna teach somebody the principles of programming (or at least, teach them _right_). And if it makes any difference to you, keep in mind that Basic was designed by Bill Gates himself (not that it matters to me, but I thought you should know if you already don't) From my personal experience, I'd say to start off with Java. I started learning it last September and it's very easy to pick up and not cryptic at all. Plus, it's OO, which is a very good way to start with. At this point I have to note that before I started uni I had no programming experience at all (unless you call batch files and a bit of BASIC "programming"). I'm particularly happy I didn't get to learn much BASIC beforehand and I'm equally happy that I got to learn Java. As you might have guessed, therefore, my experience on programming languages is very limited and in a way I am very much like your kids on this aspect. Then, you might also want to consider Eiffel. It's much like Java plus more powerful. OK, it's not a mainstream language, but I've heard only good things about it... (I've never used it but I DO plan to do) When we started our course at uni, the first thing we were taught was Scheme, on the course "Principles of Programming". Now, I know that Scheme is simply lots of parentheses :-) and a b@$t@%d to learn but I guess the folks at uni should know better... Personally, though, I wouldn't exactly have it at the top of my list... :-/ Alternatively, you can also teach them Prolog along with whatever you might decide to teach them mainly. It's a 4th generation language and it introduces some very interesting concepts behind programming. We were taught Prolog last year and I have to say that the concepts behind it and its potentials are definitely worth knowing... Anyway, hope this helps a bit... Trian -- I know one thing: that I know nothing. |
| Historical ignorance about Basic (Score:1) by firewood on Friday May 26, @11:17PM EDT (#797) (User Info) |
| Ian-K writes: And if it makes any difference to you, keep in mind that Basic was designed by Bill Gates himself (not that it matters to me, but I thought you should know if you already don't) Absolutely false. Learn some history of computing. The BASIC programming language was designed by two Dartmouth College professors, Kemeny and Kurtz, in 1964. Gates and Allen (allegedly) just rewrote an existing DEC BASIC interpreter for the Altair 8080 about a dozen years after the BASIC language was designed. BASIC was designed to give non-science students a simple introduction to programming on time-shared computers. By any historic metric, Kemeny and Kurtz's design was an amazing success. Before the web, probably more non-science|ee|cs students learned to use Basic than all other programming languages put together. By contrast, the relative percentage of scheme|eiffel|prolog|smalltalk programmers is, to a first approximation, zero. Nice elegant languages, perhaps to be studied like brontosaurs and Esperanto. |
| What to program IN or What to program? (Score:1) by minister of funk on Friday May 26, @10:07PM EDT (#770) (User Info) |
| I like the idea of programming a text adventure. Research contemporary and classic languages and expose your children to a variety of languages, explaining the features of each as you understand them. It probably wouldn't be a bad idea if they learned different languages at the same time. Allow them to choose their own language. I started programming when I was 6 on Applesoft BASIC. It appears we have quite a collection of us Wozniakers here! Programming various games in lo- and hi- res, was good experience, but I don't think it was a) the best place to start or, b) the most beneficial. My father is an educator who was pursing a Master's degree in "Computers in Education" during my gradeschool years. Here's a man who grew up building houses with his father. He passed those material-processing skills to my brother and I. He loved to make things with his hands and see the masterfully finished product. Unfortunately, he never grew to appreciate programming in the same regard. My point thus far: My father allowed me to learn "over his shoulder" and eventually, he would ask me to help him with his assignments. Those were the days where I learned to be "too stupid to know something could not be done." That, I believe, it one of my greatest assets as a programmer. The project that taught me the most was my adaptations of the "Choose Your Own Adventure" series. (Bantam?) If nothing else, it'd teach your kids how to type! After I had done all of the data entry, and my logic was setup, I was ready to enter my second book. It took me 2 days to type in the first one, and a couple hours to describe the program flow. I began to wonder, "How can I make this process easier?" Teach your children how effective Laziness is at motivating... The first step was obviously, "Trick my sister into typing it for me." I then spent the next day or two trying to develop a language that would allow me to script any adventure. I took a pencil and marked an ordinal number on every unique section of the CYOA book (I think it was one where you were a little girl in Japan who, on occasion, was possessed by the spirit of an evil martial artist). I then created a file "cooker" that would take the individual files my sister typed in BankStreet Writer (yeah BABY! Them were the days!) and combine them into a random access file with a descriptive indexing header. I could very quickly type all of the questions and script a logic path with hooks into the indexed data file. Now I could get my sister to start typing other books. It was cool, my dad was a teacher who could bring home computers in the summer... we had two Apple IIe's... Late night Lode Runner tourneys FREAKIN' ROCK! But I digress... Anyway, the CYOA "Engine" was trivial to write. The cool thing was (and I didn't realize this at the time) that I had developed a meta-language and a simple database. I modified that engine to display text and graphics. I created a proportional bitmap font. All of these features added caused me to refactor my engine code. As I added more features, additional features became easier to add. I started learn how to "think ahead" and design for extendability. I believe the phrase "domain language" (DL) is used in The Pragmatic Programmer to describe what I called a "meta-language". The DL allows tight definition of project vocabulary and easy assertion of project goals. If you have not read this book already, please do. You ask what language you should teach them first? Make them write their own, and write an interpreter for it and ANY established language. I added more features to my CYOA "Engine":
I have fond but very faint memories of LOGO as well. I learned more about FORTRAN and was exposed to C my senior year in highschool. I had already done my brother's FORTRAN stuff for him 2 years earlier. C was new to me. Guess what I did first? Ported my CYOA engine. The first language that I can really say I had complete mastery of was Borland Paradox's ObjectPAL. An object-oriented database scripting language. I wrote several databases, and GUI's for them, and totally fell in love with ObjectPAL. I became very frustrated when I tried to do anything in Access becuase of the perceived inconsistency. I ported my CYOA engine to a Paradox Database. Then it was time for me to get into HTML. I wrote a script to dump the contents of one of my Paradox databases into and indexed and fully navigable web site. That was fun... but not enough. So I created an HTML version of my CYOA engine's display ability. My coworker was working with Oracle and the brave new technology called CGI. We were running a little Sun Netra server with 32 MB of RAM and a Sparc 5, I believe. The C libraries he used to interface with Oracle caused his compiled programs to be around 2 MB in size. His programming style caused him to write a new program for every new task. Every HTML form had it's own program. This was chewing up disk space, processor and development time, so I wrote a scripting language with enough vocabulary to describe the processes he was performing. My interpretation engine weighed in a 2 MB since it had to incorporate the Oracle libraries, but each "script" was around 1k, and it was fast. Fast enough for me to port me CYOA engine... I've since developed my own low-overhead database management system and corresponding scripting language that my entire development team uses to create web applications. The engine weighs in around 80k and is currently running on Windows NT, 98, 95, Linux on SPARC, Linux on Intel, Linux on PowerMac, and Linux on a little Cobal Qube. Don't get me wrong, we still use other languages when we come upon a task that can be performed more efficiently with a different tool. A year ago, I took on a side project where I was tasked with creating a knowledge-base maintenance utility. This company had five other companies bid for the job. Did I undercut the other guys? Oh hell yeah! What I brought to the table was my Choose Your Own Adventure Engine, with it's integrated editor, spell-checker, and basic database. I showed them the web interface before I quoted them a price. They were in awe. They asked, "Who developed this?" I replied, "an 11-year old child." Perhaps I become too attached to projects. I learned so much from creating and extending that CYOA engine that I can't bear to let it go (even though I gave up all rights when I sold it to the aforementioned company...). I once wrote a report on Spain when I was in fourth grade... I used it in sixth, seventh, eighth, tenth and eleventh grades... Keep in mind, the first language that a student learns will be the one with which they fall in love. As long as they can tear themselves away from that language and incorporate more tools, that's good. If they can fall in love with a language they create, all the better! If you stayed with me this long, THANK YOU! Be sure and visit CareerLink.org! I'd love to play with Mindstorms. I haven't had the fortune to have enough time to do so. That little Mindstorms commercial where the three-wheeled-camera-wielding robot snaps a picture in the shower...priceless... THAT is the motiviation of great programmers (no, not skin-shots) -- having a blast doing what they love. If your kids can fall in love with a language they create, they will actually fall in love with the thought process required to create that language, and THAT is indeed priceless. Talk to you later, -J.D. |
| perl? (Score:1) by godEcho on Friday May 26, @10:11PM EDT (#772) (User Info) |
| i know that perl may not be the best way to learn how to program, but it may not crush creativity and ingenuity like some other "less flexible" languages might. kids are noted for their way of thinking of things differently (just got done reading Ender's Game, heh heh). you don't need to tell TIMTOWTDI to them twice ;) deus ex machina. |
| Best Language for Kids? Smalltalk! (Score:1) by lvarney (linuxguy@linuxfreak.com) on Friday May 26, @10:22PM EDT (#778) (User Info) http://w3.one.net/~lvarney |
| Right now, there are more jobs available for VB programmers. And, probably, more jobs for COBOL coders, too. But I believe that the future looks brighter for OO, and the best language for that is Smalltalk. Granted, it's not the easiest language to learn, especially for those who have been coding in procedural languages - which means it's almost imperative to start young people in Smalltalk. Catch them before their minds have become ossified! |
| Programming language to start kids with... (Score:1) by splspl on Friday May 26, @10:32PM EDT (#784) (User Info) |
| I would try Java. You can create GUI's with very little effort and it's object oriented. The JavaDocs are also a great resource for Java documentation. Also they won't be tied to Win98 as a platform to program on. I would suggest JDK2 1.3, switch SUN currently has released for Windows, and IBM (www.alphaworks.ibm.com) has released for Linux. The Linux version is still a release canidate, but is usable enough to program with. |
| QBASIC (Score:1) by stevarooski (steve0@u.washington.edu) on Friday May 26, @10:35PM EDT (#785) (User Info) http://staff.washington.edu/stevelm/ |
| I started out long ago with the mighty Quick Basic. From there, I went to C, then C++ and Java, and here I am today becoming a CS major. Eek. ;o) When I started to program in 6th grade, I just wanted to make games. I didn't care how, just games. It was very easy to learn (I learned from the help files and AOL articles), and kept me interested! Though it was undeniably cool in my mind, QBASIC has gone the way of the dinosaur now. Besides, some of these other posts are right: there are other languages like Python that would start them out programming in the object-oriented sense. But for a kid in 6th grade, it was perfect--and it'd run on any old machine! The only thing that might not interest kids about it--and what made me switch to C eventually--is that its hard to make the leap to decent (for the time :o) graphics. (Screen Mode 7 or 11 is the way to go!) Anyhow, end of reminisce. My .02. :o) -S http://students.washington.edu/steve0/ steve0@u.washington.edu |
| Complications... (Score:1) by green42 on Friday May 26, @10:36PM EDT (#786) (User Info) |
| I started programming in BASIC on an apple IIc at age 9 or so, and it was absolutely perfect. I don't think, however, that BASIC continues to represent an adequate soltuion. Interaction with machines has become a _lot_ more complicated in the last 10 years, and I fear that a command line interface is unlikely to spark much excitement in a group of younger kids. I can't really justify that claim (the idea still certainly appeals to me!), but I have a hunch it's valid. I think that programming is best learned with a particular motivation in mind (I wrote my first BASIC program to implement a formula that calculate the day of a week based on the date). Transferring ideas to code is just the next logical step... Perl's too convoluted for a beginner, as is C++ (or c). Pascal is a good start, but frustratingly rigid. That said, I think that programming is best learned alone; buy the kids some books and let them read if they want! |
| I'm a Programming Kid(now Teen) (Score:1) by GoldJediDragon on Friday May 26, @10:45PM EDT (#788) (User Info) |
| I started programing when i was just alittle kid i started on a 386 makeing useing basic, then i moved up the ladder of langs, to c, c++, VB, soon VC++, i also have dappled in many many others along the way, perl java cgi, etc. I say the kids should start with a great lang c++ it's easy quick fun and quiet a ton of stuff about it. The driver in a week |
| Why not Tcl/Tk (Score:1) by Duckula on Friday May 26, @11:39PM EDT (#802) (User Info) http://www4.au.freebsd.org/~brettw |
| I think that maybe Tcl/Tk would be a good place to start as it would allow them rapid development of gui programs in a language that is platform independant. "I laugh in the face of danger...then I hide until it goes away" -Xander (Buffy The Vampire Slayer, Witch) |
| How about Director or Flash (Score:1) by greggman (gregg@nospam.greggman.com) on Friday May 26, @11:46PM EDT (#805) (User Info) http://www.greggman.com |
| Both programs are very visual. Both are able to program simple to relatively complex games and other web apps. The biggest problem is they are expensive. The plus is instant results and there are several books on how to use them. A friend of mine has been using Director to make various solitare games. It takes him about 4 hours per game to get it playable and then another few days to fix a bugs and adjust stuff. Of course he's a pro but it does show how quickly things can be done and there are lots of websites with examples to learn from. http://www.flashkit.com http://www.macromedia.com/support/flash/ -gregg |
| Dark Basic (Score:2, Informative) by i-Chaos (i_Chaos@ThePentagon.com) on Friday May 26, @11:51PM EDT (#807) (User Info) |
| I believe that the most simplistic yet useful "language" to learn is Dark Basic http://www.darkbasic.com I mean, kids aren't going to want to code databases and word processors - they want GAMES! Dark Basic is VERY simple to work with, and is a step up from QuickBasic only because of functionality. I mean, give a kid a week (and some guidance) and he can probably code himself a fully 3D game utilizing Direct3D. And now that they've released source code to their demos (which took them only a day to code and look very good), you've got some resources to work with. Give it a look, it's great! Being the idiot that I am, I can't begin to code in C++ I mean... I can probably code OOP stuff, but I really haven't found a simple way to use direct 3D. How long do you think it'll take me to code a simple demo where I have a 3D tank created in 3DS or Milkshape rolling around on 3D terrain in C++? It'll take a day for me just to learn that. Took me 10 minutes in Dark Basic, including the time to read the docs on it. ...I am proof that intelligent beings are not always intelligent... |
| The kids will make another worm! (Score:1) by AntiBasic (kingjosh@hotbot.com) on Friday May 26, @11:57PM EDT (#810) (User Info) http://anti.pyar.com |
| We should not teach any of these kids Microsoft-centric languages like VBScript, WordBasic, etc because they'll make the largest worm yet by accident! I am sofa king we todd did. |
| Gift them the thirst, not the glass. (Score:1) by Art Popp (artpoppatgetdotnet) on Saturday May 27, @12:30AM EDT (#821) (User Info) |
| According to this list I was a late starter. I started with my Vic20 in BASIC at age 11 and was programming in Assembly at 12.
As you know programming requires a drive to surmount bugs, bad documents and to endure frustrating hours of non-working code to find the simple stupid mistake that bound the whole thing up. In the many self-taught people I've talked to the drive to persue this daemon comes from the need to perfect something...
If you haven't yet, introduce them to computer programs that are in their immediate reach, Infocom games, PacMan style graphics games, screen savers, sensor reaction robotics, and X10 control programs (to name a few). When one of these things lights their bulb, then pick the language. One of the more important things you will teach them with this approach is that there is no "right" language, this is a great lesson.
The beauty of everything above (except X10, which is just cool) is that these programs blossom in complexity.
PacMan starts off simple and cool, while you are designing the sprites, and tallying the score. When you want to make the ghosts smart enough to corner the PacSter it's suddenly real programming.
Text Adventures start off as the two word only, Verb + Noun parsers, but once this victory is achieved one thirsts to interpret "Smash Jack with Hammer While Turning Crank", correctly. And to design a universe to suit this complexity.
Screen Savers are the ultimate in flexible creativity. They can start with a bouncing ball, which will lead to an exploding ball, and adding gravity effects to make the peices fall and bounce properly, thence to fireworks, shading, animation, ray tracing, then to hard stuff.
Robotics programs can be the simplest in the world, from simple reactions to sensors, to teaching a robot arm to spread peanut butter on bread, then imbueing a rover with a map of the house.
All of these projects can start in BASIC or Parallax Basic, but can flower into Assembly, C, LISP, wherever their dreams take it.
|
| My 3.14 cents (Score:1) by Xidus (slashdot@xidus.xidus.net) on Saturday May 27, @12:39AM EDT (#822) (User Info) http://xidus.xidus.net |
| I figure I might as well throw in my own experiences, if only to be a part of one of the most popular threads I've ever seen on Slashdot. My experience went something like: Logo in school (required), GW-BASIC at home (voluntary), Pascal at home (sorta), Visual Basic, C, C++, Delphi (all voluntary), then I got hooked on Linux and started devouring C, shell, Perl, sed, awk, php, tcl/tk, etc. I personally taught myself after a class in Logo, and one class in Data Structures in C. It's helped greatly to have a mentor along the way, though. (my dad) Logo worked well for me as an introduction. It's a good way to start younger kids on basic concepts. Basic was lots of fun to play with, and I believe it was a valuable experience, no matter what people say about possible damage to a young person's future programming ability. If you have a kid who -wants- to learn, give him or her a BASIC manual and turn them loose. Many kids will thrive with this sort of treatment. I know I did. Visual Basic was a great experience. Note that I was using version 1.0, not the present new-fangled ones. I haven't tried anything past version 1.0, but I probably wouldn't recommend it anymore. I'm trying to think of something else that would be analogous... maybe Tcl/Tk with a GUI builder. The experience with VB was that I finally got interested in doing -useful- things, because it was simple to throw together a small app. I used VB on Windows like I use shell script (or the command line!) now. It also introduced me to event-driven programming, which is valuable experience. There's nothing quite like actually getting into C. The best thing I ever did related to C was to take a class in Data Structures. It's a great way to really dig in and start learning about pointers and such in-depth. I don't recommend even thinking about C++ until later. Much later. Experience on Unix systems encourages programming experimentation. I think everyone's noticed this. Having so many useful and usable tools handy seems to inspire some people to great heights. Give a kid a project, let them use whatever tools they want -- great learning experience. That's basically how I got where I am. My advice to people working with kids: -) If the kid is -asking- about programming and has a genuine interest and an ability to learn on their own, then by all means give them a book and turn them loose. Especially in languages like BASIC, kids will do great things if they're self-motivated. -) If you want to just expose them to programming concepts, give Logo a try. -) Try a simple event-driven language pretty early in the process. I think Tcl/TK would be a great one to start on. Interpreted languages are VERY useful for beginning programmers. -) Don't try to teach C++ or Java right off the bat. Or even Object Pascal (ie, Delphi). Work on the programming basics first. My personal opinion of C++ is that it's way too much work to be reasonable for use in small projects -- and that's all a kid's going to be working on for a while. C++ has its place, but it shouldn't be learned as an early language. -) Mentors are essential. Having a parent who knows what they're doing is a great thing if the kid has a good relationship with that parent. Otherwise, even an e-mail buddy who's willing to take time to explain things is going to help out a lot. Hmm... anyone interested in starting an online mentoring network? :) That's all I can think of at the moment... initial experiences are going to vary greatly between programmers, so this is just what I think might work. Don't sue me if your kid renounces technology and becomes a monk after being introduced to C. ;) -- $ more ~/.sig ******** .sig: Not a text file ******** |
| A language specifically designed for this: JJ (Score:1) by kiniry (sroland1138@hotmail.com) on Saturday May 27, @12:39AM EDT (#823) (User Info) http://www.cs.caltech.edu/~kiniry/ |
| There is a new language available that is specifically designed for introductory instruction in programming. It is called JJ and is a procedural and object-based (you grow through models), simple programming language that focuses on constructs and correctness. It is web-based, so no need to download anything, has lots of documentation, and is geared specifically toward beginners. More information can be found at here Disclaimer: I was a language designer for JJ. |
| Speaking from experience (Score:1) by quickquack (qslack@spamme||fourthdev.com) on Saturday May 27, @12:42AM EDT (#824) (User Info) http://www.fourthdev.com/ |
| I'm 12 years old and not writing BASIC programs which display text on the screen. I know perl, php, C++, C, html, css, javascript, vbscript, xml, and I'm learning Assembler. I also know how to conduct HTTP, FTP, POP3, and SMTP transactions by hand. I use NT and Mandrake. I believe I can speak from experience. Kids learn best when they aren't sheltered but rather encouraged to learn as quickly as possible. I have at least 20 books on topics ranging from marketing to databases to Active Server Pages to PHP and I can certainly testify for the fact that books work. If kids are introduced to computers when they are young, around 6, then they'll start off knowing a little, then by age 9 they may want to learn HTML. Also not all 12- and 13-year olds are stupid and know nothing. I am aware that I know more than the average 6th or 7th grader but I'm not alone. Is the Linux thing out for Windows 95 yet? |
| HTML, GVIM, and a specific goal (Score:2, Interesting) by .gpb (gpb@gpb.seanet.com) on Saturday May 27, @01:02AM EDT (#831) (User Info) http://gpb.seanet.com |
| HTML. Although it is not really a programming language, I think it is a great start. It gets a beginner used to using a text editor and formatting code neatly. Despite having a reputation for being very unintuitive, I recommend GVIM as the editor to use. It is a wonderful piece of software, and if the beginner hasn't developed bad habits by using another editor it should be easy to learn. The beginner should write HTML that complies 100% with a DTD, and use validator.w3.org to verify compliance. The best document type to start out with is probably HTML 4.0 Strict. Only once a beginner has learned how to use a text editor, and can code clean HTML should they learn to program. My primary suggested language for beginners: I'd suggest Python as many others have. My second suggestion: Learn how to use Microsoft Access and VBA. Yes, this are many problems with MS Access and VBA, but it is also fairly easy to use and the GUI environment provides immediate feedback. This is also (currently) a more marketable skill than python. Of course, in a few years I expect Python to be in heavy demand. More important than choice of language, is a goal to meet. I personally learn much faster when I have a specific goal in mind. For example, one of my long term goals is to learn Java. This has been a goal for some time, but I didn't make much progress until a more specific goal came about. In this case, I needed a java applet for a web page. I couldn't find one available that met my needs, so one weekend I taught myself enough java to be able to program the applet. Instead of setting the goal of teaching someone how to program, I suggest inventing a project that would interest them. Then get them to make finishing that project their goal. For kids, a good project might be building a database of their whatever junk they like collection, or write a game with their favorite pop culture icon. |
| programming shouldn't be mandatory (Score:1) by blowhole on Saturday May 27, @01:06AM EDT (#833) (User Info) http://blowhole.cjb.net |
| I started programming in the 6th grade with Q-BASIC. It's a great program for kids to start with. But I don't think that trying to teach a whole class of kids is a good thing. I've taken CS at my high school and let me tell you, some people just don't "get it" and too many people abuse the power the computer has to offer. Everyone says that programming will be a vital skill in the future, but then everyone will be saying "users are losers." Come on, we geeks need SOMETHING for ourselves. -"Ask me about Loom." |
| Re:Best Way to Get Kids Started in Programming? (Score:1) by WebSerf on Saturday May 27, @01:10AM EDT (#835) (User Info) |
I personally started programming around 1981 on an Apple ][+. Apple Basic provided very easy access to the graphics hardware but if you were really interested in speedy graphics code the only hope was to buy the 6502 assembler and learn that. I eventually learned both Basic and assembler. Graphics was a major driving force in both areas. So what to do today? I don't recommend giving them anything to do with Windoze unless you want them to go Borg on you. Probably the closest you can come to easy UNIX graphics today is Java. You can get a Java book and download a free compiler and be writing "Space Wankers from Planet Crock" in a few days. Perl is basically for CGI and command line work. I'm not sure of the graphics support in Python but it's a much cleaner language than Perl. Simpler, and more object oriented. If it has good graphics and isn't too slow it might be the way to go. Basic has a bad rep but the modern Basics are pretty modular and don't *necessarily* teach spaghetti code (I had a lot of unlearning to do when I got my first C compiler, by contrast). The only problem is that the only UNIX/Linux Basic interpreters I've seen are VERY rudimentary and don't do graphics at all. |
| Teach them VRML! (Score:1) by Untitled_No3 on Saturday May 27, @01:41AM EDT (#844) (User Info) |
| I'm not a programmer, but as part of my BSc. in Physics I learnt Fortran and csh scripting (!). I thought computers were horrible. Then I discovered VRML, (before I installed Linux), and I began fooling around with notepad and the Cortona browser. Pretty soon I began learning javascript and ECMAscript to include more interactivity, and made a start on using Java with the External Authoring Interface. It also hooked me into HTML. In other words, it's not programming, but it's a good gateway that I think would help to get kids excited by the kind of power they can exert over a virtual world of their own design, all by typing in series of commands. VRML has a sense of immediate visual gratification which is just right for kids, even if they're just animating a bouncing ball and making it change colours. Hell, if it wasn't for my own experience I wouldn't be in training now to be a 3d animator :) |
| Which language (Score:1) by freax (freax@pandora.be) on Saturday May 27, @01:50AM EDT (#846) (User Info) http://users.pandora.be/skatan |
| Kids should not start with languages like Visual Basic because then they will get a complete wrong idea of what programming is. If you are planning to learn a kid how to program I think the best language for him is pascal (use gpc or freepascal and rhide or mcedit). I personally learned programming with pascal, after that I started with visual basic, delphi, (linux), C , perl, php3, Java , etc. I was 14 years old when I started with pascal. However, in *nix I am sure you could teach him/them how to program using script languages. I don't think buying a book will help him/them a lot because books about programming are rather difficult to understand. |
| You'd be surprised ... (Score:1) by srealm on Saturday May 27, @01:56AM EDT (#849) (User Info) |
| You would really be surprised at a kids capacity to pick up complex processes ... They did a study a few years back, where they started primary school kids (age 5 - 12) doing senior highschool mathematical problems, and they picked it up, and they became proficiant at it. Not all kids can do this, but children have a MUCH greater learning capacity than they're given credit for, you just have to be able to keep their interest -- ie. give them a project to do, thats THEIRS and THEIRS ALONE. I say DO teach them on *nix C, standard C, get them to learn it and then move to *nix C++, once they can program in those, they'll have such an advantage over every uni graduate you wouldnt believe. I learned C under DOS when I was 15, and I always, even back then, was hearing about these genius 12-13 y/o programmers, and wish I'd been interoduced to it years before. I have since moved to *nix, and wish I'd gone to IT before aswell. I say give your kids every advantage they can have by introducing them to *nix C at a young age -- they WILL be able to pick it up, dont worry about that, children could learn an entire forign language ASWELL as their own before the age of 5, they have no problems with that. They will probably thank you for introducing them to C at that age when they get into the workforce. They'll probably also end up being my boss :) |
| Delphi. (Score:2) by Pig Hogger (lugalle@-DOPESPAM-yahoo.com) on Saturday May 27, @02:17AM EDT (#854) (User Info) |
| Get them started with Borland Delphi. They'll learn :
-- |
| Start them with C or maybe C++ (Score:2, Informative) by Spunkee (jpb@netins.net) on Saturday May 27, @02:31AM EDT (#861) (User Info) http://www.netins.net/showcase/pb/ |
I started programming when I was 12. I got myself a book on ANSI C called Type and Learn C by Tom Swan. I'm sure it's a bit dated now, though. When I was 14, I started in with C++. I've never owned a book on C++ and got all the info I needed off the web. I'm seventeen now and still learning and doing. I never did anything but copy a few example BASIC programs from a book before I started with C. So the point I'm trying to make is: It probably isn't necessary to start them with a simpler language. When they get the C syntax down and the basic stuff like conditionals, data types, pointers, arrays, etc., you may want to introduce them to C++. The reason being so they don't get too acquainted with C programming paradigms. I've read about and experienced the rough transition to object oriented programming from too much procedural programming experience. That's the reason why many people say one should learn C++ from the start and skip learning C before hand. I disagree with that, though; as many things are easier to learn when you're not concerning yourself with abstract objects and the like. Of course, that's just my opinion. I don't want to start a holy war here. I also wouldn't let them get to acquainted with the standard C library. That seemed to make it difficult for me to learn the standard C++ library (STL, streams, etc.). I think I'd make sure they've got pointers down before you show them C++. Pointers are hard enough to learn (IMO), because a person often doesn't understand why they're needed at first. And then you start trying to explain to them the differences and similarities between pointers and references and when to use one or the other and it all comes crashing down. :-) Once again, though, that's just my experience. Please don't flame me if you've been coding since you were 6 months old and found pointers to be the easiest thing to grasp. :-) And lastly: If they use Win98 exclusively, then I'd get them a copy of Visual C++ 6. It's a nice IDE with an easy-to-use but relatively powerful debugger. It can do simple, singe-file based projects just as well as it does large projects. And the Windows console subsystem makes the programs seem like they're running under DOS (so they don't have to make "hello world" show up in a window :-). I also think it would be good since they're already familiar with the Windows environment, and they wouldn't need to worry about doing trivial OS tasks. Just make sure they stay away from all that MFC and "ClassWizard" crap. :-) I don't think I'd even mention the existence of Visual Basic to them. :-) Good luck! // Spunkee |
| what I started on... (Score:1) by JesusOfNazareth on Saturday May 27, @02:40AM EDT (#864) (User Info) |
At age 5 I started progamming on a TRS-80 (Radio Shack CoCo) in Color BASIC. Boy was it fun! Graphics were pretty easy and low and behold ten years later I used the CoCo for a science project and won! The programming manuals that came with it were the best. They had this crazy cartoon dude with a tv for a head and TRS-80 for a body. Because of my past, I must have my xterm colors set to lime-green background and black text. Murder on the eyes but the nostalgia more than makes up for it. Anyways, I think BASIC might be your best bet. It isn't quite as intimidating as other langugaes can be, and you can do some funky stuff without too much knowledge, keeping your kids' interests which is always necessary. One problem though - BASIC may enforce bad programming practices if you're not careful (GOTOS! globals!). But hey, I turned out fine, except for my lime green fetish. |
| reply 779 - some relevant experience here (Score:1) by dhammabum on Saturday May 27, @02:40AM EDT (#865) (User Info) |
| I am currently taking a c programming class (remedial education ;) and my 13 year old daughter looks at my tortoise & hare text game and thinks I'm daft. She associates computers with *graphics*, not text. She has shown some very slight interest in web pages, so maybe she might have a go at HTML, but BASIC???? Forget it. It's just a short step from phil to oguk. |
| Pascal? (Score:1) by corecaptain on Saturday May 27, @03:20AM EDT (#877) (User Info) |
| I started out with BASIC on an apple iie. I quickly moved to pascal. I think it depends on how into it the kids get. If they just want to start understanding simple things like what is a variable, loops, etc then BASIC would do. I say just find a good introductory book that is short and gets to the point quickly and use whatever language the book uses. In my opinion the best approach is to kindle their interest and let natural enthusiam take over and then they can decide what languages and problems they want to solve. |
| People have done research in this area (Score:2, Informative) by mbpomije on Saturday May 27, @03:35AM EDT (#878) (User Info) |
| Programming languages don't need to be toys for kids to be able to use them. As a matter of fact, it may be that by removing the warts that make other languages hard to use, a language can be more powerful. People at XEROX PARC during the 70's were doing great research teaching Smalltalk to kids. If you interested in teaching kids how to program, you must see this video. The video shows ten year olds writing useful programs. The Apple Advanced Technology Group did impressive work with Common Lisp in education during the 90's. |
| How about LabView (Score:1) by wagnerer on Saturday May 27, @04:02AM EDT (#888) (User Info) |
| Take a look at LabView's G language. Its a completely GUI based language. While the compiler is $3000 there is a student version that is nearly fully functional available for ~$80. The latest version even has several internet protocols builtin. Plus it has an excellent math library and data analysis package that would do very well for any science classes they take. |
| Assembler with direct screen writing! (Score:1) by xXRyanDGXx on Saturday May 27, @04:03AM EDT (#891) (User Info) http://hm...its blank |
| please dont teach them any kind of basic. It has a syntax that just messes people up for later on when they will want to learn C. maybe this would be too much for them when it comes down to messing with to much memory but if you do it right I dont see why they couldnt start out with a few sub-routines for pixel writing and just write dos-based asm programs. it isnt that complicated! once they get the idea of being able to mv bytes(explain it as a number or string value) between registers adn calling code sections it is all fairly simple. they may be writing lots of code when it comes to more than simple line drawing. but it'll be fun for themto do some simple graphics along with their printf style calls without having to bother with the libs anmd api's that you have to call all the time when you use VB! Maybe I've been a coding too long and I'm off my rocker. But if anyone agrees tell me so. of course kids often dont actually wanna get their hands to dirty. they would rather dream of the games they want to make. But you know you're kids better than any of us stupid /.ers :) I always suggest that anyone, who is already interested and is over 13 years of age, start with C because of how logical it is and 50 keywords isnt all that much to learn. really! -ryan fsckin' Microshaft corporate wh*res run those schools. I cant believe they teach them vb. python is what the highschools should teach but that isnt good for MS and graphics work. |
| Graphics programming (Score:1) by gedanken (zadell*removethis*@uiuc.edu) on Saturday May 27, @04:09AM EDT (#892) (User Info) |
| Face it. What draws people to computers these days are games with flashy graphics. So teach the kid openGL. in school i learned calculus and trig way before i needed to because i started out with graphics programming. It is the perfect way of having a kid think of an idea, and actually be able to see it in action. and it is a lot cheaper then lego mindstorm sets. -gedanken "It is unworthy of excellent persons to lose hours likes slaves in the labor of calculation." -Leibnis. |
| Only one place to start (Score:1) by linux_penguin (linux_penguin@REMOVEMEhotmail.com) on Saturday May 27, @05:10AM EDT (#900) (User Info) |
| Commodore 64... start with BASIC, and then as their interest peaks, get an AR cart and Turbo Assembler and teach them some 8 bit assembler. Its the only way to learn how to write tight code, and you also learn about memory-mapped devices etc. I know you don't believe me, but ask most of the top coders where they started.... Simon "Where would Microsoft be today if they waited until their software actually worked?" - Hyperion Bay |
| For the under 12 crowd: Start with Prolog (Score:1) by Googol on Saturday May 27, @05:13AM EDT (#902) (User Info) |
| ...as soon as they can handle punctuation and typing (age 9 or 10) I've actually tried this--sit the kid down in front of a prolog interpreter (there are several free-beer ones). From 3rd Grade on they love making up predicates about their friends. dork(X) :- likes(X,soccer). likes(X,Y) :- girl(X),boy(Y),brownhair(Y). ?-likes(susan,_). =googol= |
| Dude, you're asking the wrong question... (Score:1) by MartyJG on Saturday May 27, @05:17AM EDT (#904) (User Info) http://screem.org |
| You don't need to know what language to teach them, you need to know how to motivate them to learn more. You can give them the most complex language there is, but as long as they have a goal to reach with it - and they really want it - they'll learn it. \\//MJG. insignificant sig |
| Thats the way we had it...started with LOGO. (Score:1) by da_King on Saturday May 27, @05:24AM EDT (#905) (User Info) |
| Well, I am about to cross the teens, and I still remember the way our teacher in 5th grade (India here...so don't compare the 2nd or 5th grades etc.) told us what LOGO was. Yes, she said LOGO was a language (okay..controvertial..). We started with LOGO....drawing figures. Then we were told that we could do calculations with LOGO !!! this showed is the PRINT command in LOGO. Then we moved to the PRINT command in BASIC, along with all LET, FOR , etc. . . . . then you can add other languages, perhaps starting with PASCAL, then C, C++...and the list can go on and on... But yes, don't tell the kids to leave the "good-looking" Win98 and switch to *nix early... Let them see the weaknesses and strengths of each OS themselves.... And yes, btw, some schools here (not all) still start with LOGO these days. |
| Clarity and cleanness (Score:2) by Simon Brooke on Saturday May 27, @05:57AM EDT (#910) (User Info) http://www.jasmine.org.uk/~simon/ |
| The most important thing when introducing kids to computers is getting them to structure what they want to do, and to understand the difference between the structure of the problem and the cruft introduced by the programming language. Consequently, the very last languages I would introduce them to are languages like BASIC which does nothing to assist clarity and structure, or PERL which has very unclear syntax. There's no point in thinking about what languages are currently popular in the industry, because if you're dealing with ten and twelve year olds by the time they're adult something new will have come along. This industry changes rapidly. But the fundamentals don't change; algorithms are algorithms whatever language you write in, and ideas of structure, modularity and granularity are fundamental. So any of these things would in my opinion be good choices:
I personally play with and hugely enjoy Lego Mindstorms, but I don't really think it's good for kids. The programming system which comes with it is really poor, and none of the programming systems which other people have developed for it really seem suitable for kids - except, possibly, a smalltalk-based one which only runs on Windows and consequently I haven't tried. ;; It appears that /dev/null is a conforming XSL processor. |
| bootstrapping (Score:1) by -=Saiko=- on Saturday May 27, @06:09AM EDT (#911) (User Info) |
| I started, like many others, in BASIC. However times have changed and I can imagine your kids won't be too excited about programming in BASIC. The most important thing (IMHO) to keep in mind is that you want them to start out very simple and small and teach them 'clean' programming. At the same time you don't want to overwhelm them with all that shit that is included in the development environments these days. You want them to learn programming first and not how to use Visual Studio or JBuilder for example. I would suggest starting in plain-tekst Java. Give them a feeling for coding the old way. It is a very clean language and it allows you to start very simple and work your way up. Also, it runs on Linux as well as their win98 gaming consoles ;-) |
| C++ or something object oriented (Score:1) by active8or on Saturday May 27, @06:23AM EDT (#912) (User Info) http://come.to/knutweb |
| I think Object oriented laguages like C++ or objective C represent a much better way of thinking. So why not? Anyway, 911 post?? This has to be a record even for slashdot! - Knut S. |
| Forget the lang debate - teach design 1st. (Score:1) by rad2170 on Saturday May 27, @06:41AM EDT (#915) (User Info) |
| All these posts on what prog lang to use when teaching kids programming is going about it the wrong way. Teach them the basics of design first and worry about the code afterwards. I taught my nephew programming when he was 12 by using lego. Lego? Yes - Lego! I would give him an exercise to do - say build something simple like some sort of machine/building etc. Once built I would get him to describe exactly what steps were used to build it. Once he could do that to the point where he or his brothers could recreate the finished object just by using his description he was well on his way to good programming fundamentals and the lessons learned could be transposed to *any* programming lang. Teach them the fundamentals of good program design first and worry about the coding later. Starting off with "main () { printf ("Hello, world!\n") ; }" is going to just cause them to become frustrated and bored, not to mention bad, programmers. My nephew is now 17 and he still maps out *exactly* what he wants the program to do before he even decides *which* lang he wants to use (he uses several - both win and nix based). The result? Damn good code with very few coding errors, even fewer logic errors, written in a lang that has been explicitly chosen as the right lang for the job needed. |
| I'm torn on this one (Score:1) by Ghrul'hal on Saturday May 27, @06:56AM EDT (#917) (User Info) |
| On one hand, Java is modern, well designed, comprehensive, and platform independant, which could do a good job teaching fundamentals all the way through most any project, at which point its similarities to C++ would be of great help as well. However, the difficulty of distributing Java apps to the average associate of a 10 year old is quite a disadvantage. As interesting as any project may be, there's nothing like the satisfaction of seeing your friends enjoy the fruit of your labor along with you. If you want to crank out interesting, professional looking, user-friendly apps from the get go there's nothing like VB. Actually, if you could let them at both Java via a plain old text editor and VB via the wizz-bangness that is Visual Studio it'd be interesting to see how they take to each. Whatever you do, don't just stick em with some "fring" language. They'll thank you for it later. |
| Whatever happened to Logo? (Score:1) by FooRat on Saturday May 27, @07:15AM EDT (#924) (User Info) |
| We had a logo (remember that turtle thingy?) course back in Std. 5, in primary school (South African schooling system) thats about 12 years old, that was over ten years ago, on some ancient microcomputers. Looking back that was damn ahead of it's time. Now they have "computer literacy" in the syllabus and I suspect its just learning how to click a link in a browser and type a document in Word and useless crap like that. Heck, there was even a weekly television program for kids where they showed you how to do stuff in Logo, and they had a bunch of kids there on a variety of early computers (commodore's, spectrums, vic20's etc) all doing Logo. In a 3rd world country. Over 10 years ago. I guess the current, sad trend has been towards the stupidification of computing, a very dangerous trend for a third-world country that should be embracing technology if it wants to survive and progress. Personally I think Logo is a really good beginner language for, say, the 6 to 12 age group. BASIC is also good. I really learned to program in QBasic. Now I do fulltime C++. What bothers me most, the way I remember it, the majority of kids were more than capable of understanding how to use Logo. Nowadays we treat kids as if they're generally too fucking stupid to handle that stuff, and we isolate a small percentage of "bright" kids, decide that only they're capable of doing "heavy" stuff like programming, and box everyone into "roles" that usually define the course of their careers before they even hit puberty. "Sorry you're doomed to be a Word "user" for the rest of your life but Johnny over there is clever so he can do programming, guess you'll have to try athletics" type of thing. |
| Teach them English frist, then give them Smalltalk (Score:1) by mroberts on Saturday May 27, @07:30AM EDT (#925) (User Info) |
| Seriously. Basic will stunt their growth. Forget all the bastard languages like Java and C++, give them a real object-oriented language like Smalltalk. This will encourage conceptual thinking while giving them a clean syntax and the immediate feedback of an interactive environment. |
| Start them on assembler! (Score:1) by bubber (jim@softwaregadgets.com) on Saturday May 27, @07:33AM EDT (#927) (User Info) http://www.softwaregadgets.com |
| I started with assembler and I think that is the way to go. Get them a plain DOS machine (or a PDP like I started on :-)) and dos debug. To many programmers today don't have a clue how computers work and can hardly tell a bit from a byte. When you start out with programming the first and most exciting state is exploration, not the building of useful software. If you give your kids VB they might produce some runable software on the first day but they will not have a clue what they have really done, and then the time spent will wasted. And if they don't get mesmerized by assembler and refuse to go to bed, they probably should stick to playing games. "Remember: You found out yesterday, so it is probably not obvious to the rest of the world yet...Unless you are a _very_ slow." |
| Tweak The Little Bits (Score:1) by jumbolo on Saturday May 27, @08:21AM EDT (#931) (User Info) |
| Why not start with Assembler? This programming language gives them all the necessary tools to really play with all the internals of a computer system, ranging from 'Hello World!' to a cool game that shocks their friends with unpaired capabilities (making them future top kernel hakers!). ** It's this a joke or not? ** Probably you should try with Python whose general features can make them play from 'Hello World!' to a good game too. |
| Forget about the fancy IDEs (Score:1) by mikael_j (mikael.jacobsonMEEPT@MEEPThome.se) on Saturday May 27, @08:53AM EDT (#933) (User Info) http://nollbudget.copy.orsa.se |
| A lot of people have suggested VB,C++ with QT and so on, and the biggest problem with all of these is the fact that they use complicated IDEs (QT has Kdevelop), now I remember learning to code back when I was 8-9 years old, I was coding SV-BASIC on a Spectravideo SV-328, and it was easy and straightforward, or, just easy enough for me to understand. =) Then one day I was visiting a friend of mine, and his dad was coding C or something (can't really remember), and he was using this fancy IDE (I'm guessing it was Borland), and I didn't understand anything so it quickly bored me. I guess you get the point of what I'm trying to say here... Mikael Jacobson Famous last words - "Well, let's turn it on and see what happens." |
| Visual Basic? Hmmm. (Score:1) by tom_newton (tom@-spam-egg-and-chips-misconception.org.uk) on Saturday May 27, @09:02AM EDT (#934) (User Info) |
| Is it really interesting to "code" in VB? Woo, look lads.. I made a really interesting... database? :) Not only does it teach you almost nothing bar how to control your stress by berating a paperclip ;~) but it ain't interesting either. I would suggest starting as you mean to go on. C++. Unix. If you want super-fun coding, TBPH OpenGL is not that hard to get started in (kick off by ignoring the Z axis, etc., ignore displaylists..) and you get immense satisfaction from having a green square rush about in response to keypresses ;) -- -= Tom Newton =- |
| Delphi is the way to go... (Score:1) by flipper9 (PatrickCarroll@iocomp.com) on Saturday May 27, @09:14AM EDT (#937) (User Info) http://www.iocomp.com |
| ...with a programming newbie. It has all of the simplicity of Visual Basic with the power of C++. We do all of our development in Delphi becuase you can rapidly devlop fast and reliable programs without complication. After they get their feet wet with Pascal, it should be easy for them to learn C++ or any of the C++ programming IDEs out there on Unix and Windows. |
| What About Scripting? (Score:1) by Drows (drows@stur.dhs.org) on Saturday May 27, @10:38AM EDT (#948) (User Info) http://stur.dhs.org |
| I started my programming in mIRC (an IRC client for Windows). The language was simple and I was able to whip up things such as powerful bots to run my IRC server, a simple email program that sent and recieved mail, and I was working on a simple text browser and http daemon when all of my scripts got erased...grrr... The point is though, scripting in mIRC had it's advantages. It gave me good programming style, gave me a really nice introduction to basic commands for text alterations and if-then-else statements, and since mIRC is an internet app, it helped me to understand IP addresses, sockets, ports, and allowed me to chat and get ideas while writing the scripts. Hope this was helpful. Life is like a pair of boxers, you always have to hang loose. |
| Free Reign (Score:1) by apropos (wcstom (dude-man) yahoo.com) on Saturday May 27, @10:51AM EDT (#951) (User Info) |
If you want a kid to really get interested in something, use something similar to the Montessori method. Give them something to play with that is a challenge to their intellect, show them how to use it, and let them decide if they want to. I'm assuming they've already gone through a lot of games, or they wouldn't be interested in a computer at all. How about you install Corel Linux (easy to use) and point them at some web sites with open source games. After playing the game for long enough, their curiosity will turn to how the thing works. If I'd had open source when I was 15 I would know ten times as much as I do today. I'd be fluent in a dozen or more languages rather than 3 or 4. I would have much more confidence as a developer because I would have had years to study the code of world-reknowned experts like Linus and Alan. As far as programming, if they're interested in computers it will eventually roll over into software development - it's natural. So just give them a box and let them do whatever they want. The opportunity for a developing mind to be unconstrained by limits (not being able to answer questions because of closed software) is going to produce minds brighter than the generations before. I really envy your kids. If I were almost a teenager and had a cable modem I'd be unstoppable. Is that I good thing or a bad thing? :-) |
| How about Scheme? (Score:1) by Cartman2000 on Saturday May 27, @11:05AM EDT (#953) (User Info) |
| Ok, i don't use Scheme and I don't know one who is using it. But I think it perfectly fits as a language for teaching programming skills. The syntax is clear and even a bit advanced stuff like recursion and lists can be easily done. There's also a cross platform teaching environment available called DrScheme (http://www.drscheme.org). A nice introduction book to scheme is "Little Schemer" (I think its called that way). DrScheme also provides a GUI. I think that is important as I remember my first programs where all graphic related stuff. It's just more fun to move a circle than writing the good old "Hello, World!". Another alternative would be Python with WxWindows also cross platform and clear syntax. |
| The Way to Go (Score:1) by zysus on Saturday May 27, @11:16AM EDT (#956) (User Info) |
| Having gone through the process of learning to program in the last few years i think i could help you out with this one. I started out learning BASIC on the Apple II and at the same time picked up Lego Logo. I found these to be easy and at the same time useful for simple things (like helping with math homework). I then moved on to pascal and then C. In reterospect this was a good progression as it went from simple languages to more robust and powerful languages. However, these days, in the world in win9x, and *nix, there is little reason to teach your kids Logo, BASIC or even Pascal. Mindstorms would be different, and really really cool as i'm sure they love legos, but isn't that expensive? I would stay away from LISP as it would probably be a little hard for them to grasp at that age. Perl is a wonderful language, but the idiomatic nature it tends to take on is difficult for beginners (i know, i'm teaching myself perl). I don't know anything about Python, but i've heard that its a nice simple language, you might want to start there, i really can't comment on that. If I were you, I would just jump right into C or C++ and teach them slowly, they should be able to understand if the concepts and methods are explained well. The only thing i remember having trouble with when I was learning C (around age 13) was pointers (bad explanation, kids like pictures...), so i don't see any reason they couldn't understand C or C++. You could teach them HTML, but it won't help them write any real programs, you need a scripting language to do most things, and J-Script is about on par with C as far as difficulty goes. Hope my experience in this is helpful. |
| Language usually dosent mater. (Score:1) by jellomizer (nospam_tfraser_@_nospam_._mail_._nospam_._hartford) on Saturday May 27, @11:42AM EDT (#959) (User Info) http://excaliber.hartford.edu |
| When I was in 1st grade I learned the concept of how to program in Basic on an old TI system. I didn't have much interest in programing then but I learned the fact if I type a command and pass a parameter something will happen. Then until I was in 3rd grade I started to mess with print and goto statemnets and doing some math on it. and graduly Till 5th and 6th grade I was do some multimedea in Basic on my new XT And I got better at basic programing untill Freshman in highschool where I finaly took a programing class and learned pascal. and then Senior year I learned C+ish. But in this situation I had parents that were suportive for my learning but they have no computerskill at all. So Untill I was 15 I had no strucured programing. But in your case where you can actually help you children learn how to program you can probably get them started in C, C++ because it seems that this is the language you understand the most. I would probably sugest useing something like borland C++ builder or some other C++ with GUI front end. Because the kids need a sience of acomplishment and something to show off to their friends. But sience you can help you children you can also teach them structure. Just make sure to keeps the kids EGO if you make it too hard they will probably give up on it. And if you make it too easy like then they EGO will be inflated and then they will feel that they know it all. (I know a lot of kids who started programing in VB and they feel that they can do anything in VB but then you look at there code you find it sloppy and no structure, when they get into collage they do proly because they have to releard their practices) I had to learn how to stop using Global varables all the time. But what even language you choose just be prepared to program graphics and sound quickly in it. Do as athor says not as charactor dose. |
| LOGO (Score:1) by brad_f (bradley_f@removethis.hotmail.com) on Saturday May 27, @12:05PM EDT (#964) (User Info) |
| I'd start out with Logo (If you can find it), then move on to C/C++ (console), and then C/C++ GUI. If you want, learning HTML and PHP would also be of great benefit (cause then you can *share* the crap you make :-). I started out with Logo in 3rd and 4th grade on some real old Apple ]['s (this was 1993-1995). I have also found that a good math background really helps. EG, in Minnesota, they offer this program called UMTYMP (University of Minnesota Talented Youth Mathematics Program), and basically all they do is just teach you math once a week for 2hrs after school. The homework load is quite heavy, but still manageable (especially in the Pre-High School years). Anyway, I started UMTYMP in 6th grade, and took Algebra I and II. 7th grade: Geometry and PreCalculus. 8th grade: Calculus I (equivalent to Calc AB and Calc BC at your high school). 9th grade: Calculus II (Differential Equations). Also, I have found that BeOS (http://free.be.org) has a pretty cool GUI design, and it is a good place to start GUI programming. brad froehle |
| Encourage, don't push (Score:1) by Potatoswatter (alkrauss_at_erols_dot_com) on Saturday May 27, @12:14PM EDT (#966) (User Info) http://stats.distributed.net/rc5-64/psummary.php3?id=226557 |
| Well, I dunno if I should be making the 962nd post to this thread, but here are my 2 bits anyway. The most important thing is that they don't feel they have to be doing this. It's the difference between school and play. Also, they want to be making interesting apps w/out the experience. My suggestion is to make little, nice, simple apps using your best form and clarity, but with little features missing. They may then, at their leisure, read through your code to see how it works and add the missing features themselves. This is roughly how I learned to program, and I think it worked very well :v). Ramble on! mfspr r3, pc / lvxl v0, 0, r3 / li r0, 16 / stvxl v0, r3, r0 Fix Extrans NOW!! |
| Logo, Common Lisp or REALBasic (Score:1) by roffe (id=roffe, address=tag.uio.no, you figure it out.) on Saturday May 27, @12:56PM EDT (#970) (User Info) http://www.uio.no/~roffe |
| I've already decided. I'll give my children a choice between UCB Logo under Linux, or Common Lisp, REALBasic or Logo on the Macintosh. (if they choose REALBasic, I'll take it as a comment on my lack of child rearing skills). but first, my children will learn English, because the language of programming is English (first they'll have to learn Norwegian, because that's what we speak in this country). then they'll have to be around a lot of people, to learn to listen and understand others, because that's a prerequisite in almost any programming project. if they turn out not wanting to be programmers, that's OK: I would like them to program because it is a nice way to learn to think - that means that just any programming language is not OK, it should be one that alllows representations of abstractions, and preferably also to guide. Common Lisp + LEGO Mindstorms is what I'd really like to have. -- Rolf Lindgren, cand.psychol |
| I started with a visual hack in GW-BASIC (Score:1) by fugl on Saturday May 27, @01:06PM EDT (#971) (User Info) |
| Our first computer was an ATARI-800 which had basic on it. But (of all things) the limiting factor for programming on that thing was the dumb keyboard. You had to push hard on each key. But we did do some little programs. My dad would help us to write programs to do interesting things. (what they were I can't remember) It all really started for me, though, when we got our first PC, an 8086. We learned GW-BASIC mostly by looking at games that were already written. (Back in those days you'll recall there were a lot of games written in BASIC) I was probably 8 or 9 when we wrote my/our first 'real' program. I think it actually started as a math and geometry discussion, which we decided we wanted to program into a program. With my dad's mathematical help we wrote a program in GW-BASIC to draw a square on the screen and then draw another rotated so many degrees and so on. Then we started hacking. We added colors, changing colors, had the squares change size up and down, added randomness, etc. etc. Hours of fun, from a very simple idea. In the same era I also had a lot of fun writing useful things like menus and so on to make it easy to launch my favorite games. Visual feedback is important if they're very young. I agree LOGO is probably a great start if they're young. If I had kids now I would probably start with LOGO then Javascript/HTML, then move to Java applets and then make the essential leap to C++. |
| Dont' teach a programming language (Score:1) by jjn1056 (jjn1056@yahoo.SPAM.DIE.DIE.DIE.com) on Saturday May 27, @01:11PM EDT (#973) (User Info) |
| As a former teacher, I think it would be better to teach kids logically thinking skills, rather than a programming language in particular. If someone has strong problem solving abilities and a good logical sense, they will be able to pick up whatever language of the day and get the job done. Remember, by the time today's children grow up, the hot language of our time will likely be unused. I really love perl, but even I don't think people will use it much in 20 years. Often, these classes only teach the mechanics of the language, not the ability to think independently and logically. Like they say, when you only have a hammer, everything looks like a nail. You end up with students that can solve the problems they studied, but can't generalize enough to solve problems they didn't cover in class. At some point in a child's education, a high level language, like BASIC, should be introduced to show the fundamentals of programming. General concepts like conditionals and loops should be the emphasis, and the language taught is only a means to that end. In fact, I think you really need to evaluate the student to decide which language best suits her disposition. Some child naturally have strong abstract thinking skills, and could probably start with BASIC, while others would benefit from something they can see and feel, like Lego Mindstorm robots. I think it is important to keep the diversity of our children in mind; no one way is best. I realize this goes against our standardized teaching methods, but I think most would agree that the failure to recognize the individual needs and abilities of students in a major failing in our current educational system. Of course, I'm biased against computer programming classes; I only ever took one (FORTRAN) class, which I failed. Now I can program all day in Java, Javascript, Perl, whatever. I also majored in Philosophy and Math, so obviously I think that's best. You are doomed to discover you can never recover from the narcolyptic country in which you once stood; where the fire's always burning but there's never enough |
| Teach them to write BAD code (Score:1) by Ornendil on Saturday May 27, @01:51PM EDT (#979) (User Info) |
I begun my programming career with BASIC and went on later to Pascal (a two-week programming course on summer vacation for kids). Now I know _many_ other languages, like C/C++, Java, Perl, PHP and others. My point is: DO NOT teach them the one language they'll probably be using for the rest of their lives. DO teach them GOTO - it is after all easier to understand than functions. It is a bad habit, but so what? Kids won't be publishing anything after a year of programming in the age of 14. There isn't a perfect programming language. Kids will be learning many languages anyway. So; get them started with bad habits so that they can really learn and understand WHY they are bad habits! Basic IS a good way to start - Pascal is a perfect second language. Both make pixel/line/circle graphics easy. |
| I Got It! (Score:1) by pipeb0mb (pipebomb@mac.com) on Saturday May 27, @01:54PM EDT (#980) (User Info) |
| How about teaching them how to read and write? I am not being facetious, and I am not implying that your kids are stupid. Indeed, some very bright kids out there are functionally illiterate. Don't believe me? Read the rest of this page, and count the instances of misspelled words and run on sentences. I have an 11 year old foster daughter, who is on her schools Honor Roll, and is in an 'advanced' reading class. I can not listen to her read aloud. It is painful to hear the hesitancy and the mispronunciations. She can not spell the word chicken. I swear to God. Indeed, when I downloaded a sample spelling test off the web, I tested her, and she scored less than 50% on a THIRD grade level. However, when spoken to, she is quite articulate. It saddens me that so many children are getting immersed in the internet and gaming world, when they can not even read and write. Please, do not take this as a flame, but, instead, take it as constructive criticism. Oh, btw...the 11 year old is now given only restricted PC access, and we test her spelling 3 times a week with verbal tests. She is improving greatly. Get the kids away from the PC and the TV, and turn off the Slim Shady and Britney Spears. You will be amazed at what they can then accomplish. Good luck. "Don't try to confuse the issue with half truths and gorilla dust." Bill McNeal (Phil Hartman) News Radio |
| My suggestion, Microworlds (logo's successor) (Score:1) by jzig on Saturday May 27, @03:19PM EDT (#983) (User Info) |
| Microworlds project builder (microworlds.com) is how I learned programming when I was betweent he ages of 11 and 13. My school had an excellent computer teacher, and she used this software extensively, albeit on macs. It might be slightly expensive, but it's logo, incredibly improved. I don't know if it's the best possible solution, but I loved it in middle school, and it led me into my current knowledge of Perl, c++, etc. It also has a free porject viewer if they want to share them with their friends. It is very complete and logical, but I remember it being slow. might have been our old m68k macs, though. Great at teaching algorithms. |
| Mindrover (Score:2) by adamsc (chris@improbable.org) on Saturday May 27, @03:38PM EDT (#986) (User Info) http://improbable.org |
| http://www.mindrover.com Basically you use a graphical programming environment to build small robots which compete in competitions. The game aspects would certainly get kids interested and the programming environment is a seductively easy way to get into modern event driven programming. __ If you want to work in the San Diego area building websites and don't want to work in Dilbert's world, I'm hiring. |
| Logo and Lego! (Score:1) by rips (ripper@wollongongOhotkeyOnetOau_changeOfordot) on Saturday May 27, @09:30PM EDT (#997) (User Info) |
| Logo is definately a good start! I started programming in Logo before I could spell some of the commands (I had my father write the word 'circle' with a picture of a circle next to it) when I was in kindergarten. Its very visual so kids will get feedback from their work straight away and it supports proceduralisation, loops, and in some of the later versions even sound. Because its interpreted its very simple for a kid to run a program compared to compiled programs and you write, run and edit your programs from within the one (very simple) IDE. VB and Python are both very easy to learn but probably not as well suited for children as something like logo which teaches the fundamentals of programming in a much more visual way. Personally, I've gone from Logo on the Apple IIe to QuickBasic on PC, to C/C++, to Assembler to a whole range of other languages since then and I couldn't have hoped for a better place to start programming than logo. |
| DJGPP (Score:1) by Dungeon Dweller (jhart|(eight)|at|doubleyou|vee|you|dot|ee|dee|you|) on Sunday May 28, @10:23PM EDT (#1011) (User Info) http://www.tpu.org |
| Hook em up with DJGPP under windows, and set them up a linux partition. Get them hot for Linux, teach them about sysadmining. Help them hook up a webserver/irc server and such! They'll eat it up and be kernel hackers in no time. Hook em up with some 3D programming libs under linux. They'll take a shining to the sheer programmability of *nixes over windows. Have a blast! TPU |
| PASCAL, LEGO, LOGO, Game Scripting (Score:1) by Zerothis (zerothis@northSPAMPROOFcoast.com) on Sunday May 28, @11:45PM EDT (#1012) (User Info) http://homepages.go.com/~zerothisis |
| Well, you fail to provide any clue are too their current comprehension level, but. I can honestly say my fist digital programming experience was with a toy. It was called "Big Trac" And if I recall it was the first toy (videogames are something other than toys I guess) with a microprocesser. Luckly for me my first digital programming experience was not C, I would have givin up the idea right then and there. I learned BASIC, but don't recommend it. To this day I reflexivly think "GOTO". There are better basics these days though, Visual Basic, QBasic and the like. I learn LOGO second, I found it much simpler that basic and not really a learning experience. On the other hand my teacher didn't know much about Computers (One of the teachers had to teach the computer class and it fell to the typing teacher, poor guy) and I learned LOGO after learning BASIC. I notice LEGOs are mentioned alot in this discussion. That's a good toy (even if they are making them more specialised and less useful these days). Nice thing about legos is kids can be familiarised with them from birth and as they out grow putting things in their mouth and distructive behavior you can get the smaller and more intricate varities of LEGOs. LEGOs will teach the skills necciassry for many, many different things including programming. LEGOs are also great for exercising artistic expression and imagination (two things that are often discourage when learning programming in structered education, so engrain these values while you can). Another important thing later is to not let your kids think they should outgrow LEGOs. Pascal is a good stepping stone to C. I would recommend spending a week or so with HTML before any programming languages, this will let them see a computer interpreting their imagination (in a limited way) much better than most games will, easyer than programming language will and these creations can be shared with peers. Let them create a bit on your web page or even help them create their own pages. All these are good choices but may lead to dissipointment, all these things require alot of effort for a little bit of result, most certianly from a child's perspective. Something that allows more instant gratification is game scripting. There are many games out their that let players create their own levels, not just graphically, but with events and enemy AI. AND ESPECIALLY IMPORTANT TO A KID, a game level is something they can share with others kids their age and STILL BE COOL. Not neccissasly so with C or even LEGOs. Some of these games accually feature programing *as* a gameplay element. Many of these games are innapropriate for some yonger children so it may take a little work to find the ones that are suitable. But they are worth looking for. I'm sorry I can't recommend very many but here's the ones I can think of right now:
There are others out there. |
| They needed graphics yesterday .... today the net (Score:1) by codepawn on Monday May 29, @02:54AM EDT (#1014) (User Info) |
| I wrote a text game on a C64 in basic but then text games weren't all that odd. These days kids live immersed in multimedia and I just don't think you can hold their attention without the promise of graphics. Initially my thought was ... if they're 11 - 13 start them with C or C++. On reflection though perhaps there are too many hurdles re: graphics and there are certainly a whole host of problems relating to memory leakage, buffer overflows etc that you probably don' really want to burden them with so .... Get them to learn Java. The JDK is free. They can deploy their apps on the web for their friends to look at. It's sandboxed and garbage collected. Graphics are easy and you can even go up to 3d if they get caught up in it. Interest in Java is still pretty high enough to maybe stoke their interest. There are tonnes of docs in print and online. In particular the Java Tutorial is a good web read (wouldn't buy the book doesn't work as well in print form IMHO) but there are tonnes of other code snippets, tutorial type examples around. In my view one of the hardest things is thinking of a simple enough graphics program that they can work on so you might want to start with breakout or something like that. I had a lot of success with 14 - 15 year olds writing a ping pong type game in basic but a lot of them just could get their heads around the fact that bouncing off an obstacle was an illusion to be simulated by the programmer. One of the old time favourites was snake and I think that Nokia has ressurected that one so a Java game of snake might have all the elements you need ie. graphics, can play one player, wouldn't be too big, would be a good task to get them writing loops and incrementing decrementing variables for snake size etc. Other things your might try are visualisation of objects in 3D. I also had some sucess (ie. high level of enthusiasm) getting some 11 - 12 year olds to write fragments of code to display polyhedra. The 3d illusion really got them. I think though that you needed to get kids onto some graphics say two or three years ago because that was the big thing. Now I think you're really going to need to address network connectivity and multiplay so here's another idea. Dad could write a little tcp server with a simple text protocol that relayed messages to clients that were connected and stick it on the web. Kids could write clients that talked to each other by connecting to the server. Once they had a session going they could flee the mother ship and continue on their own or continue to route via a forked process on the server (you choose). The advantage here is that a) Dad gets to do something for them codewise that they can actually use b) they can write applets as simple as two (or more) person chats through to graphically based multiplayer games. Once they exhaust the limits of the awt in Java there's the 2d stuff and then the 3d stuff. Also down the track if Dad's server is in C then the kids can get the source and try and overflow the buffer and smash the stack just for fun. If they get tired of Java get them onto C, C++ with openGL which will get them producing 3D in no time. Well there are just a few random thoughts that were floating around in my skull. Hope your kids have fun ! I look forward to the day when my daughter can get into some of this stuff. |
| AMOS Pro (Score:1) by HoriZoNe on Monday May 29, @05:42AM EDT (#1016) (User Info) |
| AMOS Pro on an cheap old Amiga is the best way. It was for me (I am now employed as a unix C-programmer). It connects to any TV-set. It is fun for them to bring the computer to school and show of to friends and they need something they can carry around. If your kids want to learn programming that goes right into productivity and creativity rather then computer terms and DOS white-blackness and graphics and sound-driver issues that is so common in PC-computing :-). You can instantly design a moving sprite and compose sampled/tracker music. You can show graphical results instantly and also having FUN while doing it. I can't think of any kid that would have the patience to learn complex syntax and wierd screen mode settings and DOS limitations on their first programming experience - they WILL get bored. With Amos Pro, I never bored out... I still have fun using it from time to time. Guess the hard part is the use of another platform... |
| My own discover : BASIC, 9old, ASM68, 12old (Score:1) by Vinz on Monday May 29, @08:12PM EDT (#1023) (User Info) http://vinw.ctw.cc |
| We were nine when our teacher, in a little school in the south of France, made with us our first project in MS BASIC (french Thomson MO5 compputers), that was a Power 4 (Puissance 4 in French, game where you put coins in the seven columns of a 7*6 matrix, in order to align 4 coins before the other (gravity only allows you to put coins over top coins of the row)). We used a 40*24 8*8pixel character and redefined a part of the characters bitmaps (encoded in decimal in DATA fields, conversions made as an exercise, imagine the bet for a 9years old kids class), while the program was checking every move, having forced inputs (no buffer overflows here ;p), and finding who was winning [it just lacked AI, but I think it would have a little bit too hard for us kids, and thus disgusted even the most passionated of us (me for instance ;oP)]. Then I had a computer, made my own programs in basic (and mostly lost a lot of time doing nothing at all of productive, but eh...). One day I saw a review of a game (Xenon 2 on Atari ST, by the Bitmap Bros), the game magazine explaining that the game was 800Kbytes of pure assembly code. I subscribed for Assembly courses, bought me an assembler, and started at 12 my first asm program (stupid ClearScreen). Then did almost nothing for 4 Years but algorithms in Basic again (sound compression, fractal imaging and a printer dithering driver for printing 24bit images on my DeskJet550C printer). Then back to assembly for a bit more of word (principally demo effects and sound thingies on 68030, then using DSP56001 (on Atari Falcon 030 - greaat machine I still have) and finishing by using and programming PCs (a bit of demo too on 486 and early pentiums). Then I'm now a dumb ass in computer science wasting my time on stupid web sites doing nothing but Windows administration to pay my lunch, room and Flysurf ;-). They'll loveit yeah, Basic (I also read lots of programming articles, and before basic, I had as french kids did, learnt LOGO around 7 and 8 years old. Great educational stuff !). Vincent |
| Delphi is great (Score:2) by Hard_Code on Tuesday May 30, @12:09PM EDT (#1029) (User Info) |
| My first official procedural programming class was in Pascal. Pascal was designed as a language for instruction and it does quite well for that purpose, leaving complicated things like pointers under the covers (but still accessible if necessary), while supporting clean and intuitive top-down procedural design. Of course, it isn't object oriented, which is where Delphi comes in. Delphi is Object Pascal, the OO superset of Pascal. So Delphi can first be used to teach the kid normal, procedural console programming. Then graduate them up to OO concepts. And then onto full OO RAD GUI design. Delphi is really great in this respect...you can go from the very basics, to creating a full-blown OO and/or GUI app really painlessly. You don't have to expose any of the complicated stuff early on, unlike with C and C++ where you must have a tome of knowledge in your head, and a penchent for reading cryptic runes before you even create a Hello World. The language scales ;) As is evidenced by the fact that Delphi is (or at least was, last time I checked) Borlands #1 selling product. Plus, Object Pascal is being brought to the Linux platform with Kylix, which is a great bonus, and will provide a smooth transition (hopefully) for moving from Windows development, to Linux development and understanding. I really started with BASIC, but I don't think that is the ideal beginning language. It is loosely typed and doesn't give the same intuitive structure Pascal does (we should not have to explain the peculiarities of "DIM" and "REDIM" or the weirdness of different starting indexes, or that a type of variable can be denoted by the symbols $, #, !, %, & (*UGH!*)). Jazilla - Pure Java Browser |
| Course available for teaching programming to kids (Score:1) by stefloquentin on Wednesday May 31, @11:02AM EDT (#1032) (User Info) |
| Hi To reply to the question of whihc language to use: I learnt by experience that Smalltalk is really good and natural. The kids really learn easily. And this is fun. By the way, if you are interested I'm designing a lecture (this will be a book at the end) where I teach kids (teenagers) the concepts of programming why do we need loops, what is a variable, why do we need abstraction.....in a fun way For that I use an object-oriented logo approach ;) I implemented a bad turtle in Squeak http://www.squeak.org/ (the Smalltalk developed by Disney) The problem is that my lecture is in french BUT the code are in english so you might be interested. For more information look at http://www.iam.unibe.ch/~ducasse/WebPages/Teaching.html#turtle you will the code and the pdf of an early version Then you have to take squeak. The first chapter on installation is not really good. If you want to know what the kids are doing at Ecole Francaise de berne look at: http://kilana.unibe.ch:8080/TurtleGallery We started recently this wiki so it does not show all the drawing ans scripts they made but this is fun Stef I hope that we will have a french and english version in the future |
| What I've Done (Score:1) by DeltaStorm on Friday June 02, @06:58PM EDT (#1034) (User Info) |
| I started teaching myself BASIC on my family's commodore 64 when I was in about 4th grade. We through it out when we got a petium based machine, and I stopped learning. Fortunatly I got a Ti-83+ for my math classes and started programing on it. I picked it up quickly and now am fairly good. |
| Re:Pascal/Basic (Score:1) by pbjoiner on Friday May 26, @04:12PM EDT (#277) (User Info) |
| I started with TurboPascal by Borland. It was a beautiful learning expereince that gave me the programming habits I rely on today to remember what the h3!! I was trying to do when I come back on the thing three months later. I would hope to G*@ that there is at least a similar product available for my kids (if they ever get born). |
| Yes, but don't necessarily _push_ the math... (Score:2) by Christopher B. Brown (cbbrowne@hex.net) on Friday May 26, @04:34PM EDT (#371) (User Info) http://www.hex.net/~cbbrowne/linux.html |
| Functional languages do have some attractive properties, as they behave in quite regular ways, to the point of being "mathematically predictable." (At least, until it comes time to take out the trash... ) Unfortunately, notable ones like ML and Haskell head very quickly into the arcania of type theory, which may be a bit more math than you want to push at youngsters that are still working on getting used to the notion of abstract ideas. In contrast, the arcaneness of "pointer twiddling" in the C descendants is rather nasty. Contrast with the arcania of "program structure" in Pascal, where a single semicolon out of place causes great contortions... Lisp-like systems have irritating quantities of parentheses. (At least, for the first month that you use Lisp...) Which all goes to say that all the languages out there have some strengths and some weaknesses. |
| Re:Here's why not BASIC, try Java (Score:1) by Master of Kode Fu (jSoPeAyM@sStPeAeMlSbPrAiMdSgPe.cAoMm) on Friday May 26, @04:36PM EDT (#377) (User Info) http://steelbridge.com |
| Great quote, but out of context. That statement was made almost 20 years ago, when BASIC had devolved into the numbered-line version that was included in most personal computer ROMs of that day. Even BASIC's creator's, Kemeny and Kurtz, denounced such versions and wrote a book called Back to BASIC in which they lambasted these "street BASICs." The BASIC that Dijkstra was talking about is quite different from today's variants, such as Visual Basic or REALBasic. You might also find the commentary on what Dijkstra said here. |
| Re:MS-DOS Batch Programming (Score:1) by /dev/trash (takeone2@excite-nospam.com) on Friday May 26, @05:28PM EDT (#529) (User Info) http://redhatisnotlinux.org |
| Add it in permanently? What if I have a dual boot system with oh say Linux? |
| Re:Assembler AND BASIC (Score:1) by Hairy1 on Saturday May 27, @02:45AM EDT (#866) (User Info) |
| I agree that BASIC is a bad place to start learning a modern language. I believe Assembly is a bad place to start for the same reasons. The problem with assembler is that its different for every machine, it has no structure or objects, and thus learning it first will give you bad habits. Assembler is also very unforgiving - definitly not a first language. Its also not very usefull for much of anything else these days, with even small imbedded processors having higher level languages. |
A chronic disposition to inquiry deprives domestic felines of vital qualities.