Teach Your Youngster the Basics of Programming!

In summary: Python, Java, and Bash scripting.For older kids I’d go with Processing.For really old kids I’d with go get a job. :-)
  • #1
fluidistic
Gold Member
3,923
261
Which programming language would you like being taught if you were a very young person (5 to 7 years old), as a first programming language?
Worded differently, which programming language would you like to teach to your son/daughter if he/she was that age?

I've heard about Scratch and Logo. Then there's Python and Julia (not a general purpose language but may have a nice future in science and who wouldn't be a scientist?)
 
Technology news on Phys.org
  • #2
Probably scratch because of its visual style.

For older kids I’d go with Processing.

For really old kids I’d with go get a job. :-)

It really depends on interest and the fact no one programming language will be right in all cases. Expect to learn a few. In my case the major ones are java, python and bash scripting.
 
  • #3
I have a 6- almost 7-year-old and I can't get him to sit still enough to teach him programming. However, if he was sufficiently curious and patient (a lot to ask from my 7 year old), I might start with Javascript. I know I'm definitely in the minority, but it's easy to start with and if you have a browser you have a basic runtime environment. You would definitely have to ignore best coding practices and functional aspects of the language, but it's enough to show how you can build "real" things they've seen on the Web. That was the main thing that got me into programming: creating things just like real professionals.
 
  • #4
timthereaper said:
I have a 6- almost 7-year-old and I can't get him to sit still enough to teach him programming. However, if he was sufficiently curious and patient (a lot to ask from my 7 year old), I might start with Javascript. I know I'm definitely in the minority, but it's easy to start with and if you have a browser you have a basic runtime environment. You would definitely have to ignore best coding practices and functional aspects of the language, but it's enough to show how you can build "real" things they've seen on the Web. That was the main thing that got me into programming: creating things just like real professionals.

Look at Scratch and then decide if you want to hazard Javascript. For Javascript the kid needs to be at least in 4th grade and comfortable with basic math and there's so many things that can make him/her frustrated.

 
  • #5
Agreed. Scratch is much more accessible. Maybe I'm expecting too much straight out of the gate with the young'uns. I just remember starting with C++ at 10 years old and wanting to do something "real" and not liking things like this that were very limited in their capabilities.
 
  • #6
Yes when I was a kid, my uncle taught me Fortran using the user manuals with no regular access to a computer to run it. I had to wait until 12th grade where I could use it.

BASIC became popular among kids with the advent of computers.
 
Last edited:
  • #7
There used to be a thing called Turtle Programming for teaching kids. I just checked and found an iPhone/iPad app called "move the turtle" that does the same thing.

5 is a little young, but I recall in the 80s getting a bunch of pubescent pre-teens interested in the game Robot Wars. They loved that because of the competitiveness of killing their best friend's bot, or the humiliation of being killed. They also learned wonderful lessons in addition to the programming such as feeping creatureism, managing resources, and thinking strategy in addition to tactics. Those guys (they were all boys) continued their Robot Wars throughout college years via email. Two of them got PhDs in CS.

According to this wiki article, Robot wars it is still alive and kicking.

https://en.wikipedia.org/wiki/Robot_Wars

Remember, that the goal with beginners is not specific programming skills. They should be taught that they can turn ideas into code and to develop a passion for doing so. I used to teach beginners and I thought of it not as "into to programming" but rather "recruitment of future programmers"
 
  • Like
Likes FactChecker
  • #8
  • #9
fluidistic said:
Which programming language would you like being taught if you were a very young person (5 to 7 years old), as a first programming language?
Worded differently, which programming language would you like to teach to your son/daughter if he/she was that age?

I've heard about Scratch and Logo. Then there's Python and Julia (not a general purpose language but may have a nice future in science and who wouldn't be a scientist?)

Well there's the programming languages specifically designed for children, like Alice and Scratch and Logo (which you mentioned). I can't comment on these since I've never used any of them.

Then there are the "serious" (used by adults) programming languages which a child may still be able to learn to use. Probably the important things here is that the language should have a clean design and support interactive programming. Python is OK for this (it includes a REPL). Some other languages/environments are even better at this than Python and might be worth considering:
  • Pharo (a fully graphical Smalltalk implementation). This is a simple but powerful and live "pure" object-oriented language with probably the best support for interactive development I've seen in any language. (E.g. you can interactively look up existing classes/objects in the class browser and clone or modify them.) Tutorial http://files.pharo.org/books/updated-pharo-by-example/.
  • Portacle (a self-contained package of the SBCL Lisp implementation and Emacs configured to work like an interactive IDE).
I don't know if these would be suitable for a 5-7-year-old but it would be an interesting experiment to try to find out. (If it worked the child would get a very good exposure to the programming language landscape very early: according to this visualisation Lisp and Smalltalk are two of the three programming languages that have had the biggest influence on other programming languages.)

Both of these as well as most other languages worth considering are completely free, so there's no obstacle to downloading and trying out a few of them.

I'm not so convinced about JavaScript. From what I know about it it is a capable language but also quite quirky.
Julia (not a general purpose language but may have a nice future in science and who wouldn't be a scientist?)

Actually Julia was designed to be a good general-purpose language. It includes features like Matlab-like array notation which are obviously meant to appeal to scientists, but even without these it is meant to be a "serious" language with capabilities on par with Python and even Lisp. (Some Lisp programmers have gone so far as to call Julia a "Lisp dialect". I think this is pushing it a bit but Julia certainly includes https://docs.julialang.org/en/stable/manual/metaprogramming/ intended to attract Lisp programmers.)

I wouldn't recommend Julia to a beginner though (of any age), mainly because it is still under active development. I'd go with something that is more mature and better established for a first language.
jedishrfu said:
BASIC became popular with the advent of computers.

My first exposure to programming was seeing Basic loops done like this:
Code:
10 I = 1
20 PRINT I
30 I = I + 1
40 GOTO 20
I was probably about 7 or 8 at the time. Using gotos like this is of course considered bad style nowadays but I wonder if it could actually be beneficial for beginners. I've seen more than one beginner a bit mystified by loops and I wonder if seeing a loop expressed this way would give them a better grasp of what the do/for/while loops in other languages are actually doing.

One of the reasons I was tempted to suggest Common Lisp above as a possible beginner language is that it is the only really high-level (comparable to Python) language I'm aware of that isn't obsolete and has a goto feature similar to unstructured Basic and Fortran. (You can easily transliterate the Basic code above into Common Lisp, and you can also learn that this is how Lisp's various looping constructs actually work by looking at their macro expansions.)
 
Last edited:
  • #10
Scratch would be the most effective.
 
  • Like
Likes jedishrfu
  • #11
I wouldn't try to teach a programming language to a 5yo- a kindergarten child can't grasp logical arguments; and even if the learn to do it will be "destructive"... 7 maybe scratch...
 
  • #12
The thing about teaching kids is to show them by example. Logo was good at this, the commands were very simple. You just move the turtle around to draw a line, a square ... next draw a petal then a stem ... then make a subroutine to draw the flower ...

They learn looping, sequences of commands and packaging commands to make their own commands and they build on that.

They then can explore geometry and ever more complex drawings without the use of variables, data types and the usual suspects in real world programming.
 
  • Like
Likes rbelli1
  • #13
It seems that this thread has run its course. No new programming languages have been proposed for kids and that opinions vary widely on what to teach them, and so it’s time to close it out.

There are many similar threads that you can read on this subject here at PF for more opinions and ideas.

To summarize these ones are good for younger kids:
- scratch
- logo with turtle graphics
- BASIC

For older kids consider:
- Processing and it’s choice of langs Java, python or JavaScript aka p5js

For really enthusiastic students:
- Java with Eclipse or Netbeans
- C / C++ on Arduino
- programming on the Raspberry PI
- Lisp / Clojure

There are numerous books for teaching kids specifically on Amazon and numerous videos on YouTube and khan academy and many other sites.

Thanks to all who contributed here.

Jedi
 
  • Like
Likes jim mcnamara

1. What is programming?

Programming is the process of creating computer software, applications, or websites using specific instructions and languages that tell the computer what to do. It is essentially writing code that the computer can understand and execute to perform certain tasks.

2. Why should I teach my child programming?

Teaching your child programming can help develop their logical thinking, problem-solving skills, and creativity. It also introduces them to the digital world and prepares them for future careers in technology. Programming also encourages persistence and resilience as coding often involves trial and error.

3. What age is appropriate to start teaching programming to my child?

Children as young as 5 or 6 years old can start learning the basics of programming through simple games and activities. However, the ability to learn and understand programming may vary for each child, so it is important to assess their readiness and adjust accordingly.

4. Do I need to have a background in programming to teach my child?

No, you do not need to be an expert in programming to teach your child. There are plenty of resources and tools available online that make it easy for parents with no coding experience to introduce their child to programming. You can also learn alongside your child and make it a fun activity to do together.

5. What are some fun ways to teach my child programming?

There are many ways to make programming fun for children. You can use games and activities that involve coding, such as creating animations, building a simple website, or designing a video game. There are also visual programming languages designed specifically for kids, such as Scratch or Blockly, which make learning programming more interactive and engaging.

Similar threads

  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
12
Replies
397
Views
13K
  • Programming and Computer Science
Replies
9
Views
1K
  • Programming and Computer Science
Replies
16
Views
2K
  • Programming and Computer Science
Replies
9
Views
2K
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • Programming and Computer Science
Replies
32
Views
2K
  • Programming and Computer Science
Replies
5
Views
2K
Back
Top