LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware way of teaching coding? (https://www.linuxquestions.org/questions/slackware-14/slackware-way-of-teaching-coding-4175524906/)

qweasd 11-09-2014 06:25 PM

Slackware way of teaching coding?
 
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.

dugan 11-09-2014 06:39 PM

Quote:

Originally Posted by qweasd (Post 5267300)
My daughter is 3... I am afraid that if I leave it up to chance, her first language is going to be bash.

You mean she'll be the best person in the world?

Anyway, check this out:

http://www.nostarch.com/pythonforkids

metaschima 11-09-2014 06:41 PM

A bit young for programming. Bash would be the simplest and easiest to learn, but I don't think you can get a kid at this age to program. Either way, the first thing I programmed was a Lego Mindstorms at age 10 or so. You can do things with Lego mindstorms on Linux too:
http://tldp.org/HOWTO/Lego/

I guess some type of programming game might work as well ... I mean there has to be something interesting for a kid.

Richard Cranium 11-09-2014 06:44 PM

Slackware comes with all sorts of languages. Python, lisp (via clisp), perl (the flatus of the devil IMO), ruby (almost the flatus of the devil IMO), whatever gcc supports [there's several], and various shell scripting languages.

It's not much effort to add go, forth (via pfe or ficl), haskell, lua, and even more.

I can't provide any insight on what a 3 year old girl would find fun enough that a computer would do if you if you told it how to do it, much less your 3 year old.

Didier Spaier 11-09-2014 06:46 PM

I suggest LOGO, that is designed for that purpose.

Ideally that would be to remote control a physical turtle with a pen to draw, dunno if that's available/expensive

T3slider 11-09-2014 06:55 PM

Slackware includes kturtle which would probably work for the very young, but even better would be a drag-and-drop LOGO-like programming language to start. I don't have any suggestions but it may be wise to look for such a program...kturtle is not really *that* kid-friendly which is unfortunate considering what it is.

astrogeek 11-09-2014 07:00 PM

That is a bit younger than I started mine (7-11), but I think they could have grasped much of it even earlier!

I started mine programming with PHP, set up a web server and gave them a place to keep and run their pages and also easy access to the PHP manual online supplemented with a few printed books. (Mine were all home-schooled as well, so this was a good fit.)

With some really simple introductions to the basics of writing valid PHP (<?php echo"Hello World!"; ?>), simple loops, variables and such... they took off on their own! In particular, they all were immediately energized by having a real application fo their math knowledge - it all fed on itself!

My reasoning for PHP was that within a simple web page it gave them a simple but powerful UI, avoided data types and let them get down to the flow control and rather much instant results.

As it turned out, within a couple of years my son (the oldest) was dreaming in C/C++, Java and just about anything else he could get good information on!

So, you will certainly need to do a bit simpler intro for a 3/4 year old, but make it easy for her to try some simple things on her own, input, IF/ELSE, output, and don't underestimate her ability to soak it up!

qweasd 11-09-2014 07:11 PM

Wow, kturtle, talk about a solution under my nose. By the way, I don't mean just for right now (although that would be cool too), but also in the next few years.

genss 11-09-2014 07:22 PM

my first contact was QuickBasic at cca 8 years of age
after i got the hang of it i drew a few pictures and made a menu to choose (think i made an animation too)

found this basic version while googlin, it looks nice

LOGO is awsome though


i usually recommend basic to people of any age to start learning programming
reasoning is that it is easy to learn the basic logic behind programs in... well basic (if, if-else, goto, variables, etc)



@Richard
couple of assemblers too :)

mlslk31 11-09-2014 09:14 PM

Quote:

Originally Posted by qweasd (Post 5267300)
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?

I tried to learn bash bit by bit from the bash man page. I'd rather have my teeth pulled out with pliers then have to do that again!

It used to be that my Barnes & Noble had a nice selection of O'Reilly books. I did OK on learning something if there was such a book to go with it. [Of course, the Camel is always at hand.] However, my local Barnes & Noble closed years ago, so I don't know if the B&N bookshelf is as nice as it used to be. All I have here is Books-a-Million, and my luck has never been good there. To learn "______ in 24 Hours" never takes 24 hours, and "______ for Dummies" doesn't quite get me up to speed.

Just my two cents about saving myself long periods of frustration.

TracyTiger 11-09-2014 10:35 PM

Plotter Simulation
 
Many years ago I taught a school-year long programming class to 2nd, 3rd, 4th, & 5th graders using BASIC. Different days for each grade level, one class 90 minutes long each week. There were homework assignment and quizes. This was a volunteer after-school program I established at a public elementary school.

At first I introduced a set of instructions to "program" a simulated plotter device. First they created and followed the instructions on paper, they were the computer. Next they typed instructions into the computer to have the computer display the results.

After they grasped the ideas of instructions controlling a device, typing and storing instructions on a computer, dealing with errors, I then taught them the BASIC language the rest of the year.

We concluded the year with a hangman program where different groups of students were responsible for different routines used in the program. The younger students required a lot of help with this final project but the older students required only a little help.

--------------------

Next year I'm considering teaching an introductory programming course to "economically challenged" teenagers through a charity organization. So a few months ago I recreated my imaginary plotter device with its instruction set so it would run on a Slackware system.

My plan (if I teach a class) is to use this simulated plotter to introduce basic concepts then move to kturtle for additional programming concepts. I've tested it out for a couple of hours on a few kids with encouraging results.

The first version of the program written in the summer grew "organically" as I learned the nuances of ncurses and tried to figure out what I wanted the program to do. Not the best example of good coding practices. :(

Two weeks ago I cleaned up and simplified the program "specs" so I could rewrite the program and be less ashamed of the coding.

My plotter simulation is more about a sequence of instructions and doesn't qualify as a programming language. It has branching, looping, and subroutines but it's missing conditional execution/branching and variables among other features. The program is not meant to stand on it's own. It's intended as a computer lab tool that accompanies lecture, handouts, etc.

In case anyone is interested in my program, I'll resurrect this thread in a few months when I finish rewriting it.

ttk 11-09-2014 11:06 PM

My niece is ten, and is starting programming with Javascript. It's not my favorite language, but has the advantages of being as simple for starters, and as complex as the programmer can handle as they get more experienced. There are also good tutorials out there and Logo-like teaching tools which start the novice with a graphical interface (in their browser) instead of vi or nano.

http://learn.code.org/

Barring that, there's nothing *wrong* with bash! :-)

kooru 11-10-2014 06:12 AM

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.

Soderlund 11-10-2014 07:43 AM

Quote:

Originally Posted by kooru (Post 5267493)
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.

They will have a much easier time in school if you teach them things when they are young. They will already know how to read, write and do maths while the others are struggling. Of course the reason is not to laugh at how stupid the other kids are -- that's horrible, man -- but to give your children a head start in life.

I'm not going to say that programming is too early. My daughter played chess and go with me when she was 3. I think I'll wait until she is 7 or older until I start teaching her programming though (English is a prerequisite och här talar vi svenska).

They also need to think it's fun, by the way. Don't be like the parents who failed at ice hockey and try to force it on their sons even though they hate it. I knew many of those when I grew up.

C teaches you the best habits and mindset in my opinion. I shall start with that, I think. It's a bit much with the memory management and pointers. A functional (NOT object-oriented) language without malloc/free and pointers would probably be easier. I've never programmed in BASIC. Java is not such a bad idea because Swing is so easy, and they will get a graphical result rather than a text prompt, but on the other hand Java is a disgusting language. Maybe web development...

Good luck and let us know how it goes. I have thought much about this too.

moesasji 11-10-2014 07:58 AM

Quote:

Originally Posted by qweasd (Post 5267300)
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'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.


All times are GMT -5. The time now is 03:05 AM.