Author Topic: Teaching coding to a 12 year old  (Read 3372 times)

0 Members and 1 Guest are viewing this topic.

Offline dietert1

  • Super Contributor
  • ***
  • Posts: 2178
  • Country: br
    • CADT Homepage
Re: Teaching coding to a 12 year old
« Reply #25 on: March 19, 2024, 11:35:22 am »
It may be difficult to get the attention of a boy, if his concept of a computer is a smartphone that he has been using for years, mainly for nonsense like images, games etc.
About 20 years ago i happened to try and educate a twen who joined our german office in order to learn about computing ("IT Assistent"). But his interest was strictly focused on MS Windows and gaming. Neither did he write correct German, nor any code. When confronted with a Solaris installation he stopped talking to anybody and left soon after.
Also i remember buying an electronics introductory kit for two other boys as a christmas present, but it got lost. Later one of them wanted me to tune his motorcycle..
For myself it all started with two small books: One about building radios, the other one about using microprocessors. At the time there was no internet.

Regards, Dieter
 

Online xrunnerTopic starter

  • Super Contributor
  • ***
  • Posts: 7554
  • Country: us
  • hp>Agilent>Keysight>???
Re: Teaching coding to a 12 year old
« Reply #26 on: March 19, 2024, 11:48:41 am »
Yes that is a good point - what does programming a computer really mean? We have to tell it what we want it to do, within it's capabilities. We do that with the programming language it understands .... etc. Maybe start with pseudocoding, and go from there. Or just tell them to ask ChatGPT what programming is ... no just kidding.

I know how to program and get a problem solved, but I am not so arrogant to say before you I can teach programming to someone the proper way. Many here would be better at that than I am. All I can do is try right?

Another thing I think would be good for them to know is how to get a 3D printer to print what you desire. Where does it come from? Start with Tinkercad and make a box, go into the slicer program, and then run the printer. I think that would be a great thing for them to get into their heads, but I digress.
I told my friends I could teach them to be funny, but they all just laughed at me.
 

Offline metebalci

  • Frequent Contributor
  • **
  • Posts: 451
  • Country: ch
Re: Teaching coding to a 12 year old
« Reply #27 on: March 19, 2024, 01:47:55 pm »

Some thoughts and experience with my kids around ~10 until now.

12 is not very young, so whatever the approach is I think it does not have to be very child friendly.

I do not know much about Scratch, but I am not fan of it (my elder kid is using it sometimes). In general, I am not very fan of visual programming unless the kid is very young. When the kid is very young, I am very fan of physical platforms, Logo was also used like that with a robot. I purchased this (https://www.primotoys.com/) years ago when it was a kickstarter project. It was great, my kids spent a good amount of time with it. They also like playing the coding game with this one (https://www.playosmo.com/en-US/). It happened to be a natural progression from the first one.

At this age 11-12, I would try:

- Python as a regular programming language. If the kid likes it, that is great, so much can be done, but it is not easy to keep a kid interested long enough with such a language I think, at least until a level of proficiency is gained (and not only in the language but also in the environment/OS it is running.). I tried it with my elder (almost 11 now) before, but it was not very successful. Unless you found a very good book and the kid likes to follow the book, this would also require a good amount of help from the parent/teacher.

- For a quick visual result/feedback, I find NetLogo and Processing interesting. Both were naturally more interesting than Python for my elder kid.

- not a programming language but good old HTML and CSS might be interesting because it gives a visual output and it can be deployed externally so it might be interesting to see it on a browser. Something like Glitch can be quickly used. I have mixed feelings about JS, so not sure about using it as the first proper programming language.

- I tried microbit with makecode and it is pretty OK for a kid, also for under age 10. Arduino is OK but I also think it might be too complicated to start with. I like microbit and maybe a few accessories for it, or running it like a robot.
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 6419
  • Country: fi
    • My home page and email address
Re: Teaching coding to a 12 year old
« Reply #28 on: March 19, 2024, 04:39:26 pm »
Some thoughts and experience with my kids around ~10 until now.
I would be very interested in what they think of trying to make their own game using Godot.

Perhaps pose the question by showing them the 2D game tutorial.  There are lots of other tutorials, too.

It uses a very Python-like language, GDScript.

I have not used it myself, but over two decades ago I did a few projects using a multimedia authoring suite (Macromedia Director 4.0, 6.0, 7.0), and found it was easy for non-technical/non-programming types to understand and work with.  Godot being multiplatform and free makes it very interesting to me, if the same applies.
 

Offline dietert1

  • Super Contributor
  • ***
  • Posts: 2178
  • Country: br
    • CADT Homepage
Re: Teaching coding to a 12 year old
« Reply #29 on: March 19, 2024, 05:53:12 pm »
How about this?
 

Offline metebalci

  • Frequent Contributor
  • **
  • Posts: 451
  • Country: ch
Re: Teaching coding to a 12 year old
« Reply #30 on: March 19, 2024, 06:44:19 pm »
Some thoughts and experience with my kids around ~10 until now.
I would be very interested in what they think of trying to make their own game using Godot.

Perhaps pose the question by showing them the 2D game tutorial.  There are lots of other tutorials, too.

I just quickly checked and they might like it. The problem with many of such platforms is it requires to follow some tutorial and documentation, and it is usually English only, and although they might know some English, it is probably still not enough to follow a tutorial like this. This might be very OK for a few years older kids.
 
The following users thanked this post: Nominal Animal

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14666
  • Country: fr
Re: Teaching coding to a 12 year old
« Reply #31 on: March 19, 2024, 09:14:02 pm »
12 is not very young, so whatever the approach is I think it does not have to be very child friendly.

Agreed. At 12, children can usually start learning a "conventional" programming language without too much difficulties (unless it's really not their thing, in which case insisting will probably not work anyway).
And they learn so much faster than we do once adults.
 
The following users thanked this post: pdenisowski

Offline DonKu

  • Contributor
  • Posts: 40
  • Country: us
Re: Teaching coding to a 12 year old
« Reply #32 on: March 20, 2024, 01:22:49 pm »
Maybe start with pseudocoding, and go from there. Or just tell them to ask ChatGPT what programming is ... no just kidding.

Or psuedocode then use ChatGPT as a Python reference. ChatGPT typically leads me to the correct syntax faster than an old school Inet search, or older school howto guides with examples of everything except the thing needed, or, heaven forbid, oldest school reference tome meta-language.
« Last Edit: March 20, 2024, 04:00:55 pm by DonKu »
 

Offline pdenisowski

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: us
  • Product Management Engineer, Rohde & Schwarz
    • Test and Measurement Fundamentals Playlist on the R&S YouTube channel
Re: Teaching coding to a 12 year old
« Reply #33 on: March 20, 2024, 02:11:59 pm »
At 12, children can usually start learning a "conventional" programming language without too much difficulties (unless it's really not their thing, in which case insisting will probably not work anyway).

Agree completely.  I've been coding as a hobbyist and as a professional for > 40 years and taught myself BASIC programming from a book when I was 14 (on a ZX81 - no graphics, no hardware interfaces, just a black and white TV screen and a cassette recorder).  I literally wrote the programs out on paper with the line numbers before typing them in.

For a truly motivated young person, I would also recommend learning programming the "conventional" way.  If they continue into computer science in college and/or have a career as a coder, most of what they do will likely also be "conventional" programming. 

I've seen lots of kids who think Lego Mindstorms, etc. are "cool" (and, frankly, they are), but quickly lose interest when introduced to "real" coding.

2079848-0




Test and Measurement Fundamentals video series on the Rohde & Schwarz YouTube channel:  https://www.youtube.com/playlist?list=PLKxVoO5jUTlvsVtDcqrVn0ybqBVlLj2z8
 

Offline Picuino

  • Frequent Contributor
  • **
  • Posts: 975
  • Country: 00
    • Picuino web
Re: Teaching coding to a 12 year old
« Reply #34 on: March 20, 2024, 02:30:10 pm »
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal. Only a small percentage of people do that. The typical 12 year old student has a hard time learning something like that. Maybe the problem starts with motivation (it doesn't exist in most students). But surely that small feat is unlikely today in the typical child of that age. I'm not saying it's impossible, 2% of the population is gifted and will be able to learn without any problem on their own and be motivated by geeky subjects like that today.
We must take into account that years ago computers were lived in a very different way than they are today.
 
The following users thanked this post: pdenisowski, golden_labels

Online coppice

  • Super Contributor
  • ***
  • Posts: 8812
  • Country: gb
Re: Teaching coding to a 12 year old
« Reply #35 on: March 20, 2024, 02:35:37 pm »
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal.
You have conflated 2 things there. Learning on your own takes fairly high ability. Learning with a text language is the fastest way for anyone to see meaningful results from their effort. With things that are not compiled (e.g. Python) you can write just one or two lines and immediately start to see meaningful output from your minimal effort. That's important for keeping people motivated, whether they are gifted or an idiot.
 

Offline Picuino

  • Frequent Contributor
  • **
  • Posts: 975
  • Country: 00
    • Picuino web
Re: Teaching coding to a 12 year old
« Reply #36 on: March 20, 2024, 02:39:21 pm »
When I said text language, I meant any language that is written with text, as opposed to block languages like Scratch or Blockly.
 

Online themadhippy

  • Super Contributor
  • ***
  • Posts: 2705
  • Country: gb
Re: Teaching coding to a 12 year old
« Reply #37 on: March 20, 2024, 02:45:30 pm »
Quote
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal
Sorry to burst your bubble,but not only was it normal,but was often the only way us 12 year olds could get our zx81 to do something more usefull than horace goes skiing.
 
The following users thanked this post: pdenisowski

Online coppice

  • Super Contributor
  • ***
  • Posts: 8812
  • Country: gb
Re: Teaching coding to a 12 year old
« Reply #38 on: March 20, 2024, 02:47:14 pm »
When I said text language, I meant any language that is written with text, as opposed to block languages like Scratch or Blockly.
Blockly is extremely texty. It turns programming back to something like early COBOL, where teachers feared that an equals sign would scare away most of humanity. It didn't. Word heavy COBOL did, and COBOL adapted. Even at 5 years old I suspect I would have complained about Blockly treating me as a moron, rather than inexperienced.
 

Offline pdenisowski

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: us
  • Product Management Engineer, Rohde & Schwarz
    • Test and Measurement Fundamentals Playlist on the R&S YouTube channel
Re: Teaching coding to a 12 year old
« Reply #39 on: March 20, 2024, 03:56:02 pm »
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal.

I take that as a compliment!  I also learned to read Hollerith-encoded punch cards to get my Computer merit badge in Boy Scouts so yeah, definitely not normal :)

« Last Edit: March 28, 2024, 02:36:53 pm by pdenisowski »
Test and Measurement Fundamentals video series on the Rohde & Schwarz YouTube channel:  https://www.youtube.com/playlist?list=PLKxVoO5jUTlvsVtDcqrVn0ybqBVlLj2z8
 

Online coppice

  • Super Contributor
  • ***
  • Posts: 8812
  • Country: gb
Re: Teaching coding to a 12 year old
« Reply #40 on: March 20, 2024, 04:12:45 pm »
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal.
I take that as a compliment!  I also learned to read Hollerith-encoded punch cards to get my Computer merit badge in Boy Scouts so yeah, definitely not normal :)
Fluency in reading EBCDIC holes was almost a requirement in the good old days. Sorting out the errors on punch cards could be tough without that. They printed the text along the edge of the card, but the ink could rub off quite easily.
 
The following users thanked this post: pdenisowski

Offline Picuino

  • Frequent Contributor
  • **
  • Posts: 975
  • Country: 00
    • Picuino web
Re: Teaching coding to a 12 year old
« Reply #41 on: March 20, 2024, 05:39:23 pm »
Quote
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal
Sorry to burst your bubble,but not only was it normal,but was often the only way us 12 year olds could get our zx81 to do something more usefull than horace goes skiing.
In those years there were few who programmed their ZX or their Commodore. And this despite the fact that at the time there was a proliferation of magazines with programs and technical articles about our beloved computers.
 
The following users thanked this post: pdenisowski

Offline pdenisowski

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: us
  • Product Management Engineer, Rohde & Schwarz
    • Test and Measurement Fundamentals Playlist on the R&S YouTube channel
Re: Teaching coding to a 12 year old
« Reply #42 on: March 20, 2024, 06:53:34 pm »
In those years there were few who programmed their ZX or their Commodore. And this despite the fact that at the time there was a proliferation of magazines with programs and technical articles about our beloved computers.

And books too :)

Test and Measurement Fundamentals video series on the Rohde & Schwarz YouTube channel:  https://www.youtube.com/playlist?list=PLKxVoO5jUTlvsVtDcqrVn0ybqBVlLj2z8
 

Offline metebalci

  • Frequent Contributor
  • **
  • Posts: 451
  • Country: ch
Re: Teaching coding to a 12 year old
« Reply #43 on: March 20, 2024, 07:04:34 pm »
Quote
To all those who learned programming with 12-14 years old on their own, with a text language. I am sorry to tell you that you are not normal
Sorry to burst your bubble,but not only was it normal,but was often the only way us 12 year olds could get our zx81 to do something more usefull than horace goes skiing.
In those years there were few who programmed their ZX or their Commodore. And this despite the fact that at the time there was a proliferation of magazines with programs and technical articles about our beloved computers.

I learned programming BASIC from the Commodore magazine, it was the only resource I had, until I got a book. I was ~10.
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21849
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Teaching coding to a 12 year old
« Reply #44 on: March 20, 2024, 07:51:54 pm »
A caution to posters: be careful generalizing from "the way it was" to "the way it should be".  Just because you grew up on text interfaces (or punched card :-DD ) doesn't mean it'll work for everyone, or as well as it did for you; especially given that myriad alternatives exist today.

Put another way, a much lighter-weight version of the "I had to walk to school uphill both ways, so you should too" thought process.  An easier experience for the new generation does not invalidate the hardships (or indeed, trauma) you endured at a similar time in your life.  Nor does it preclude us from congratulating your perseverance through those hardships. :)

The best thing about programming these days, is the myriad ways to get into it; try the spaghetti strategy, throw everything and see what sticks.  Maybe it's Scratch, maybe it's something else, maybe it's text maybe Python maybe Java maybe something else.  Maybe it's something even more specialized yet very powerful, Unity for example.  Or, I'm a bit loathe to suggest it as I've actively avoided it myself so far, but it's also my understanding that there are moderately powerful creative tools in games like Roblox, even.

The real danger, honestly, is the paradox of choice: we have so many to choose from today, it's hard to narrow it down to a few.  I would suggest trying everything in this thread (maybe even the punched cards, hell -- there are in-browser emulators out there, give it a go, why not! :D ), and then some.  Even just picking a few from here will do well to resolve that paradox.

For my part, I can only speak to what I did, and why; in my case, it was the curiosity over this arcane interface, yet potentially unlimited insight into, and power over, the computer I had (which, I started on a hand-me-down 8086 from a neighbor -- with 128k EGA, so powerful..!).  Which meant not just QBASIC but DEBUG as well.  (Between me and my older brother, we had drummed up some DOS manuals and other docs that gave enough info to assemble trivial programs, like printing a string in DOS.  Not sure when, I don't have a copy of it handy, but somewhere along the line I had written a ~60 byte program, mouse drawing pixels to the screen.)  By end of high school, I had written a number of 3D graphics programs in QuickBasic, helped to various degrees with ASM routines (CALL ABSOLUTE), mostly based on other programs and a book or two I'd seen along the way.

My curiosity is probably exceptional, though.  It is said, schooling tends to have the effect of stomping curiosity out of children, which is in my mind a cardinal sin.  But it's also merely a symptom, one of many in a vast cluster of imposed downward trends in this country and elsewhere; but that's a topic for another (non-)discussion.

Tim
« Last Edit: March 20, 2024, 07:58:38 pm by T3sl4co1l »
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19802
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Teaching coding to a 12 year old
« Reply #45 on: March 20, 2024, 08:58:30 pm »
Yeah, well. I started out with a 20min walk each way to a 5 channel teletype for editing. To insert a character, copy at 5cps, hope you don't miss the spot, thump a key, and continue copying. Return to collect results next day.

No, I wouldn't want to go back to that, and I continue to be amazed youngsters tolerate figure-shift/letter-shift/symbol-shift.

But that is all utterly unimportant!

What matters is tailoring the tuition and objectives and examples to the individual little person. Only the OP can do that :)
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online xrunnerTopic starter

  • Super Contributor
  • ***
  • Posts: 7554
  • Country: us
  • hp>Agilent>Keysight>???
Re: Teaching coding to a 12 year old
« Reply #46 on: March 20, 2024, 10:15:17 pm »
I got a TRS-80 when they first came out because I wanted to program a computer. I also subscribed to the magazine 80 microcomputing which it turns out had AI on the cover of an issue way back then.  :-DD

In the magazine they had programs in BASIC listed - some pretty long. I'd have to type the entire thing in by hand. Many wouldn't run right because of typing mistakes by me or errors by the programmer. I thought it was great fun to fix the programs or change them. Also, there was not a single person around that could help me out if needed. I had to do it on my own. But that's what I wanted to do - that's why I got the thing!

That is a bygone era. The vast majority of people don't want a computer any longer to have fun debugging programs, or learning how to program. In fact they'd be upset if the programs they run from any source had any errors at all. If they think they are "in the know" they'd probably now be asking "Why do I need to program when ChatGPT can do it for me!"

And so, that is why I am asking how to teach a 12 year old how to program. Right now I am torn as to how to do it, after reading all the responses. Would a 12 year old really sit still and learn programming by typing in commands. Like hey were going to get the computer to add up 10 numbers and give us the result. Oh yippee! Or does it now take more "cuteness" to get it done like color graphics and moving blocks around on the screen? I will report what happens if Mum decides to let me try.

Thank you all for the ideas!
I told my friends I could teach them to be funny, but they all just laughed at me.
 

Offline shabaz

  • Regular Contributor
  • *
  • Posts: 206
Re: Teaching coding to a 12 year old
« Reply #47 on: March 20, 2024, 11:19:13 pm »
Some of it may have to be played by ear, i.e., once you know a bit about the kid, some ideas may come naturally about what to teach and how. Admittedly that's easier if it is a family member than a kid you may not have met often.

Hopefully everything could be a learning opportunity once there's some interaction and the kid gets curious. I sometimes leave out tools, or print out a slide rule or leave calipers/micrometers around, and that's something unique they will learn right there, even if it's totally random, like about what diameter their hair is, etc!

Binary numbers are super-easy for 10+ year-olds to pick up when taught. Even if it's not a programming language, it's a building block towards programming one day.

There are soldering kits* on AliExpress for 74HC-based LED clocks and timers, and it's possible to explain on a diagram what each chip does, including how the mapping needs to be done from binary to 7-segment, and they can check that with a multimeter, as the seconds or minutes change, and they can see the counter signals changing according to their newly found knowledge about binary numbers. That teaches something about how something as complex as a clock can be broken down into signals all the way from the 7-seg, down to a vibrating crystal. Again, that's not learning coding directly, but code is broken down into functions, too. Sketching ideas with diagrams, flow-charts, pseudocode, are all things that will build confidence without really having to make a decision on programming language initially.

The kid may surprise you. My similar-aged nephews can sit for hours typing random made-up stories into an ancient electric typewriter because that's unique to them, and they get to see the characters typed one at a time. It's worth keeping a bit of tech or simple science experiment around the house for them to question, take apart, or play with, just to see what gets them interested.

There are even weird "fidget spinner" toys these days because life is boring for a lot of kids if they don't get more interesting things to do. When I saw those toys, I realized just how bad education has become (not the teachers' faults, it is funding issues usually).

If the child has a sibling or school friend, they could take turns typing code from a book while the other dictates and spell-checks. Kids can easily copy Python text-based games from books by doing that, and then they can edit them with their custom strings, etc.

* Just to show that kids will easily (and happily) spend hours soldering, this video shows how an AM/FM radio (including surface-mount chip!) was soldered at the ages of 6 and 8.. it might not come across in the (poor-quality) video, but right at the end, when they heard it for the first time, they were actually speechless when it dawned on them that had managed to do something quite complex. I think a clock/timer would be an awesome thing for a 12-year-old to assemble and then be able to explain to his parents how it functions at the chip/building-block level.


 

Offline pdenisowski

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: us
  • Product Management Engineer, Rohde & Schwarz
    • Test and Measurement Fundamentals Playlist on the R&S YouTube channel
Re: Teaching coding to a 12 year old
« Reply #48 on: March 21, 2024, 10:58:54 am »
It is said, schooling tends to have the effect of stomping curiosity out of children

"Never let school interfere with your education" - Mark Twain :)
Test and Measurement Fundamentals video series on the Rohde & Schwarz YouTube channel:  https://www.youtube.com/playlist?list=PLKxVoO5jUTlvsVtDcqrVn0ybqBVlLj2z8
 

Offline pdenisowski

  • Frequent Contributor
  • **
  • Posts: 725
  • Country: us
  • Product Management Engineer, Rohde & Schwarz
    • Test and Measurement Fundamentals Playlist on the R&S YouTube channel
Re: Teaching coding to a 12 year old
« Reply #49 on: March 21, 2024, 11:07:51 am »
Would a 12 year old really sit still and learn programming by typing in commands. Like hey were going to get the computer to add up 10 numbers and give us the result. Oh yippee! Or does it now take more "cuteness" to get it done like color graphics and moving blocks around on the screen? I will report what happens if Mum decides to let me try.

All reminiscing aside (and as the father of two engineers) it depends on the child and on the (parent's) goal.  If a child isn't interested in typing out text (even if that text produces pretty graphics or makes things move), then they probably are not going to "go far" as a programmer or learn to do anything "useful" with code. 

Moving blocks around on a screen might be fun (and that's perfectly okay as a goal), but I suspect that it doesn't really set the stage / foundation for learning "real" programming.

An analogy:  lots of parents buy their small children musical toys, often with the idea that this will somehow nurture an interest in or appreciation of music.  But if you want your child to really learn to play piano, they have to learn on proper instrument, have good instruction, and practice regularly - in my opinion, beating on a toy xylophone with a stick isn't really a "first step" in becoming a pianist :)
« Last Edit: March 21, 2024, 11:09:31 am by pdenisowski »
Test and Measurement Fundamentals video series on the Rohde & Schwarz YouTube channel:  https://www.youtube.com/playlist?list=PLKxVoO5jUTlvsVtDcqrVn0ybqBVlLj2z8
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf