SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Many years ago I taught a school-year long programming class to 2nd, 3rd, 4th, & 5th graders using BASIC.
That's what worked for me way back then too. I could introduce GWBASIC as a much better calculator than the hand held ones they used. Instead of just the one (or 26) memories that their calculators had, BASIC had as many memories as you could think of names. Add line numbers to your statements and suddenly you were writing programs! etc etc.
But a 3yo who hasn't learned to read yet? I think that is far too early. I would still be teaching her the equivalence of "yes/true" and "no/false" as well as the logical meanings of AND, OR and NOT.
I suppose some sort of logic trainer (which switches turn the light on?) might be in order but it would need to be in the form of a fun game.
I'm very surprised on the rather technical suggestions. All you would aim for at that age is to develop the logical reasoning skills. Therefore my suggestion would be to have a look at Scratch developed by MIT. This is relatively easy and done in such a way that it is fun for children. Personally I would consider it still be a bit much for most 3 year olds, though!
There are slackbuilds for it, although I can't comment on how well they work. My children used it on a Debian system until I had enough of maintaining it.
I had one of those oversimplified "Karel the Robot" courses in college. I was rather sick of that robot after a while. So I looked at what is in Slackware, trying to answer the question. Without a book, the best answer to me was gawk because `info gawk` is fairly reasonable...but not quite there unless you have a specific task that needs Awk. So no answer there. kturtle has been mentioned at least twice already. With a book, Perl is nice because of the book presentation, Ruby maybe better because it does OO without being nerdy about it. [Plus if you don't want to buy the Pickaxe book, a version of the book is available at http://ruby-doc.com/docs/ProgrammingRuby/.] I wish I had Ruby as my first language, just because basic procedural programming and basic OO programing are both easy.
FWIW, I took only BASIC and FORTRAN (77) in college. BASIC didn't prepare me very well for Visual Basic because a lot of VB is about dealing with objects and events. FORTRAN did prepare me nicely for C because it will crush your soul for things like data types but not nitpick you to death on low-level things. Fortran 90 and later dropped almost all of the fixed-format source code files as well.
With all respects, but kids should play with stuffed animals or out of home playing with their little friends.
What's the sense to teach programming at 3-10 years old? Just to say, wow my son is the best son of the world..and your?
My 2 cents.
I started programming at seven, and don't feel like my childhood was wasted at all.
To the contrary, when my mother plucked me up from in front of the computer and tossed me outside to play in the dirt, I resented it quite a lot.
Yeah, you shouldn't force kids to do or like something, but instead see what they are interested in and good at and let them do that. I would have to agree with all the others that say 3 yo is not the best age to start programming. Around 8-10 yo would be a much better time, they will be more ready for it and may enjoy it more.
I had one of those oversimplified "Karel the Robot" courses in college. I was rather sick of that robot after a while.
There is a huge difference between a three year old and a college student....
Scratch is aimed at young children and my children enjoyed playing with it; essentially it works by dragging pretty capable blocks into the desired sequence of events and can do pretty advanced stuff. In doing this they learn the concepts of programming without typing and having to read books/text that are a no-go for most children this age. This I have personally seen working with small children of ~5 years old.
My daughter is 3, and she can type, draw with GIMP, and play ktuberling. I am wondering what slackers think about best ways to teach programming. I know I am kind of cheating by bringing this very general question into this forum, so how about this: what does Slackware already have in the way of teaching tools? I am afraid that if I leave it up to chance, her first language is going to be bash. But who knows, may be it's for the best?
Thinking back to my own childhood I find that I learned to code not because but seemingly in spite of the languages that were thrown at me: Pascal, Logo, MSX Basic. Well, Logo was kind of OK. And the thing is, I mostly appreciated how both Logo and MSX Basic allowed me to draw graphics more or less from the command line.
I would rather buy her a box of Lego adapted for her age. A couple drawing books with pens of all colors. A garden swing. Anything but a computer. There's still time for that later.
LOL kiki, I am not pressuring her to learn programming at 3, and I'll be perfectly happy if she never expresses any real interest in coding. But if she's anything like me, she's probably going to think it's fun. And this stuff is just fun to discuss. This thread already has a bunch of interesting suggestions, and my favorite is probably "being a robot". Now that's education, and it can be done with legos, too
Quote:
Anything but a computer.
I don't see anything wrong with some computer exposure. It's just another toy. And if she has genuine fun with libreoffice/gimp/ktuberling, then why not? It is infinitely better than watching ads on a spy-phone. And we limit her screen time to weekends, too. She's a geeky type, just like her parents. She's reading an alphabet book while I am writing this, for fun...
Don't mix up your ambitions with parents' ambitions about own kids.
I'm not talking about you or the author of this thread
But really I don't understand this "urgency" to learn when you're so young.
But hey, this is my point of view, not law
... my suggestion would be to have a look at Scratch developed by MIT.
A co-worker of mine had kids who loved Scratch. They were older than three of course. You wouldn't want time spent programming to take away from more appropriate activities for a three year old, e.g. reading Herodotus and Xenophon.
There is a huge difference between a three year old and a college student...
True enough. At the time, I might as well been a three-year-old child, though. Good course! but the professor treated his interpretation of the robot as an exercise in method acting. Cool for 2 weeks. Decent for 4 weeks. At 8 weeks, way too old, make it stop.
Right now, I'm torn between a) memories of that course and looking for ways to make them go away, and b) memories of REXX on OS/2, how it was explained well and worked in a lot of places, wondering if there is a similar experience on Slackware. But (a) will win, so somebody else might pick up the baton on my behalf. "The robot cannot turn left, it can only go forward and turn right. Make the robot do the same thing as turning left..."
Start her off learning the basics of scripting. You don't need to learn Bash per say directly, but how to properly script using common language scripting with techniques derived from Bash, Zsh, tcsh, and Dash.
Start her off with things like how to write a script to run an echo, check a file, run applications with triggers and flags, etc. Then move her into scripting using Bash derived techniques, Dash techniques, Zsh techniques, etc. to let her learn a variety of scripting languages and the techniques used by each.
She'll learn well through Slackware. It's a great teaching tool.
A long time ago (circa 1975) I played a game derived from Oware (or Awélé as we call it), only harder, with a girl 3 1/2 years old. Believe me or not, I never could beat her.
Last edited by Didier Spaier; 11-10-2014 at 05:26 PM.
My thoughts on the Slackware way would not be to learn to program to learn to program, rather it would be to learn to program to fulfill some need.
I started learning programming because I wanted to write a game when I was a kid. Something that stuck with me is an old magazine article that non programmers were more creative game designers because they did not know the limitations of the platform. For example the Commodore 64 I was writing my game on had 8 sprites so every game idea by true programmer would always have 8 objects in it. Non programmers might design a game with 11 objects and leave it to the programmers how to get 11 objects out of 8.
To me thats similar to the slackware way. The Slacker says I want the system to do something and then goes and finds a program or write a script/code to do it. Where the other way would be to sit down and read through a programming book which teaches commands and structure. The Slackware way will get it done first even if its not the prettiest way to do it. The structured programmer will get through chapter 1 of the programming book in the same time.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.