Teaching coding to a 12 year old - Page 1
Forum section: electronics / general

author: xrunner
author_rank: Super Contributor
timestamp: March 18, 2024, 12:54:38 am
content: Was talking with a neighbor about what her three kids are learning lately (they are all home schooled). I know them very well becasue I 3D print things for them all the time. One of the things she mentioned was that she wanted the oldest one (12 years old) to learn coding. I told her I would be interested in teaching some if she wished.The advice I wanted to ask (because I have no kids) would be if using the Arduino platform would be the way to go these days. Not only can you begin by writing simple programs and viewing the text results on-screen, you would also be ready to try things like LEDs and other types of simple interesting experiments (if they wanted to go that route). I am not a teacher so I do not know the best way, but it seems like a good idea to me. What do you all think?

author: ataradov
author_rank: Super Contributor
timestamp: March 18, 2024, 01:04:39 am
content: Unless embedded is an explicit interest/requirement, I would just stick to PC for learning to code. And later translate that to MCUs if needed.

author: JoeyG
author_rank: Regular Contributor
timestamp: March 18, 2024, 01:14:27 am
content: I agree with Alex - stick with a known stable hardware platform like a PC.I would start with the free programming online using simple block graphical coding eg https://scratch.mit.edu/Lots of online support an forums.Then perhaps migrate to Scratch with external hardware to control robots etc (such as lego minstorms)https://scratch.mit.edu/ev3other hardware that can connect to Scratchhttps://en.scratch-wiki.info/wiki/Hardware_That_Can_Connect_to_Scratch

author: artag
author_rank: Super Contributor
timestamp: March 18, 2024, 01:25:40 am
content: I disagree - I think real-world applications are more interesting than screen-bound ones. And I think having an aim in mind is essential to keep a kid's interest, you can't just do programming exercises.That view is slightly moderated by the fascination of kids with computer games. If they can achieve something in the way of a game on screen, it may hold their interest and I don't know how much they care about parity with commercial games vs the satisfaction of doing something themselves.Step one is probably to find out what interests the kid ..FWIW my own son, despite being surrounded by electronics, never took much in interest in either that or programming. He was more interested in games and art. But he ended up doing a moderately self-sufficient and technical job at a semiconductor company so I guess something soaked in.

author: xrunner
author_rank: Super Contributor
timestamp: March 18, 2024, 01:34:17 am
content: Thanks for the posts so far. The kids are very attentive and I think they are pretty smart, but I don't know what they have been taught so far. If the Mum wants me to try this I'll find out pretty fast if the oldest one is interested enough to do this. I'll keep reading along here and take notes of anyone's opinion.Edit: I guess the key is - what math or logic is a 12 year old supposed to know?

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 18, 2024, 01:43:48 am
content: I dunno, NVIdia's CEO said that kids should stop learning to code.

author: xrunner
author_rank: Super Contributor
timestamp: March 18, 2024, 01:45:04 am
content: Quote from: SiliconWizard on March 18, 2024, 01:43:48 amOh my goodness. Why - becasue of the AI onslaught?

author: ataradov
author_rank: Super Contributor
timestamp: March 18, 2024, 01:49:42 am
content: No, he is rich enough that he is in the stage where he says random nonsense and people spread it around. His opinion on stuff is largely irrelevant unless you hold NVDA stock.

author: golden_labels
author_rank: Super Contributor
timestamp: March 18, 2024, 01:55:35 am
content: As a 12 year old I dreamed ofLego Technic 8485. In my imagination it was capable of much more it really could do, but the gist of it was the ability to make the machine act on its own. That comes from a kid, who not only was terrified of computers, but just a bit earlier almost burst into tears after closing Program Manager in Windows 3.x. I was terrified I broke the computer and my mother will have to pay for it.I believe that some kind of interaction between code and the physical reality is a great way to make a person interested in programming. This also opens much more opportunities for practical(1)uses and that means: motivation.If only you can provide that kind of interaction, which the Arduino board itself isn’t providing, then I’d say it’s a great idea. Otherwise I would agree with ataradov and JoeyG, as merely running the code on a separate device isn’t more attractive, while being more expensive and prone to error.In either case Scratch is something I see as a useful introduction tool and — later — a way to quickly check ideas.(1)Note that for a kid “practical” has a very different meaning than for an adult.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 18, 2024, 03:27:11 am
content: I would recommend Python: easy to use, comfortable syntax (the most common gripe / meme is about indenting, I'd say that's a good compromise versus C's arcane symbology, for example..!), rich libraries, you can do anything on a modern OS without a lot of work, granted the performance might not be there, but what are you doing that needs it, and when you do, probably someone's got a library for that already, too.Arduino, a good embedded introduction, sure. If they're inclined to work with things more hands-on, that's a way to introduce a lot of that from a programming angle.Javascript, web dev in general: the nuts and bolts of the visible internet. Trivially easy to get into: you're looking at it right now. Show off the capabilities of any desktop browser's dev tools (F12 button usually), and where to get docs (MDN usually). A rather dive-into-the-deep-end to work with DOM and lambdas and all those modern language features that JS contains, but introductions can be structured to ease into that, perhaps following a book or course, perhaps just by looking at stuff. Upsides are it's very discoverable, not like functions have doc attached in the browser (that said, there's probably a plugin for that?), but you can interrogate the properties of any object in real time, and so for example enumerate all the functions (methods)windoworMathorNumberor etc. have, and look them up separately, and see how to use them right there. Python of course much the same way, when in interactive mode.I probably started playing with QBASIC when I was... 10 ish? Computer language seems age appropriate, and, anything will do, as long as it's easy enough to make and modify catchy demos on. I'd have likely found these languages much more interesting, certainly more powerful, but also easier to use; there are so many weird quirks and limitations of something like BASIC, who knows what kind of problems I was having with it at the time (but, the online help was mostly pretty good, without which I'd have been hopelessly lost!).I wonder where Python was all these years... I've looked up hardly any history on it, and only started hearing about it myself ca. college age. It feels much newer than its introduction date of 1991(!) feels. Was there actually a DOS version of it? ...Was it any good back then?Tim

author: brucehoult
author_rank: Super Contributor
timestamp: March 18, 2024, 09:18:38 am
content: I'm on the side that says Arduino is a great way to start.Just like writing code for the PC, you can do terminal-based printf() and input, so you don't lose anything there. Except line by line debugging. I think printf is better anyway :pBut Arduino has the huge advantage that you can easily write programs that interact with the real world. Switches, temperature and light and other sensors, LEDs, motors, servos are all cheap and easily available. Even a full-sized Uno can be strapped onto a buggy or robot and control it, and of course there are much smaller but compatible boards that are even better for that.If you're NOT going to do the real-world interaction then there is indeed little point to Arduino -- unless they get advanced enough to ditch the C++ and the library and do bare-metal assembly language programming. In which case the AVR is again one of the very best choices to get started on.Writing web-based things using HTML and JavaScript is also an excellent way to get started. Kids can immediately build something comparable to (simpler, of course) things they use online every day. And they can publish their creations and send URLs to their friends! And it will work on everyone's phones as well as their PCs. There are any number of places you can get cheap or free web hosting.Simple example:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_length_converter_feet_to_metersBut the sky is the limit. You can display images and animate them. You can make drawing and painting applications. You can make complete PC / Apple / C64 etc emulators in a web page.That's also the option that today leads most easily to $$ jobs.

author: Nominal Animal
author_rank: Super Contributor
timestamp: March 18, 2024, 09:54:49 am
content: My own suggestion would heavily depend on what else the 12-year old is interested in.Aside from specific interests, if they are communications-oriented, I might suggest going the HTML+Javascript and Python/PHP backend programming route; if visually oriented, perhaps Python+Qt (applications) or SDL2 (games); if technically or mechanically oriented, Arduino + servos; if mathematically or physics-oriented, C or C++ and simulators; and so on.I would not bother with simplified stuff (visual programming languages), but start with the actual stuff, just scaled to keep interest and motivation high with suitably paced rewards. When I was that age, I was given a copy of Borland Turbo Pascal without any manuals or anything, with nothing related in the local library, and only limited and slow BBS modem access, and learned on my own. Granted, with only three TV channels and no smartphones, and no stores selling games within a hundred miles, I had plenty of time. I was ecstatic to find Ralf Brown's Interrupt List at a BBS.Do not underestimate what a well-motivated 12-year old can do on their own. If their interests have a natural intersection with any programming, math, or physics subfield, I'd use that as the source of motivation, and thus pick the approach based on that: show them how programming can be used as a tool for investigating and experimenting and creating that which they're interested in.

author: Psi
author_rank: Super Contributor
timestamp: March 18, 2024, 11:09:39 am
content: Quote from: Nominal Animal on March 18, 2024, 09:54:49 am+1 to this.It has to be fun, so will depend on what they find fun to build using coding.Maybe try a few approaches and see what they enjoy the most- Hardware buttons/switches/displays that do things.- Windows app that implements some super simple graphical stuff that can be turned into a game.- Code that makes simple soundsetc

author: Picuino
author_rank: Super Contributor
timestamp: March 18, 2024, 01:22:00 pm
content: Scratch is a very popular choice. It is primarily for programming PCs but can be connected to hardware boards such as Makey Makey, micro:bit or Lego robots (Mindstorms, WeDo...).

author: Picuino
author_rank: Super Contributor
timestamp: March 18, 2024, 01:25:44 pm
content: Another choice for beginners is code.orgList of code.org activities in my website:https://www.picuino.com/en/prog-codeorg.html

author: onsokumaru
author_rank: Contributor
timestamp: March 18, 2024, 01:58:32 pm
content: If you want programming and also interaction with hardware (motors sensors etc), M5 stack is a good option. Their bricks are based on esp32 and you can program them in UIFLOW (scratch like block programming), or in micropython, or using the arduino ide.

author: Nominal Animal
author_rank: Super Contributor
timestamp: March 18, 2024, 02:05:22 pm
content: I wonder ifGodotmight be a suitable start for some.Thefirst 2D gametutorial seems thorough but simple enough for a motivated young learner, giving a concise but realistic intuitive picture of what game development generally requires. The necessary assets (artwork and music) and even source code are provided, but the tutorial goes through it step by step.

author: kripton2035
author_rank: Super Contributor
timestamp: March 18, 2024, 02:39:07 pm
content: +1 for scratch. then once mastered, go to the arduino and c++ or micropythonc++ is more challenging to understand than scratch.

author: Picuino
author_rank: Super Contributor
timestamp: March 18, 2024, 03:54:20 pm
content: Scratch is not just another language for block programming.Scratch is developed by the MIT Media Lab (directed by Mitchel Resnick) specifically to teach programming to children as young as 8 years old.This MIT lab is the same lab where Seymour Papert, who developed the robot turtle and the educational language LOGO, worked. Papert, an advanced disciple of the famous psychologist Piaget, is the creator of the learning theory known as Constructionism.Scratch is not a commercial product, is the result of a very extensive background of experience in research and teaching programming to children.https://en.wikipedia.org/wiki/Scratch_(programming_language)https://en.wikipedia.org/wiki/MIT_Media_Labhttps://en.wikipedia.org/wiki/Mitchel_Resnickhttps://en.wikipedia.org/wiki/Seymour_Paperthttps://en.wikipedia.org/wiki/Constructionism_(learning_theory)https://en.wikipedia.org/wiki/Logo_(programming_language)

author: tggzzz
author_rank: Super Contributor
timestamp: March 18, 2024, 04:12:10 pm
content: Quote from: xrunner on March 18, 2024, 01:34:17 amThere is - and can never be - a single best way. There are many ways that might work. The trick is to find asimple conceptthat can be implemented quickly and easily, but which can also be extended indefinitely. Once upon a time, I would have suggested a traffic light controller, extended to have sensors, pedestrians, etc.What to do, specifically? Easy... Find out what interests the child, and do something related to that.What math and logic should they know? Easy.. It doesn't matter - yet. Start simple, and use that as a means of introducing concepts as necessary.

author: coppice
author_rank: Super Contributor
timestamp: March 18, 2024, 04:26:32 pm
content: I taught myself to program in Fortran II in the 1960s, when I was about 12 or 13 and had no access to an actual computer to run anything on. A bit later, I got limited access to run some things on a Honeywell machine at a local Polytechnic. I had learned enough in isolation that getting code to run on a real machine was pretty easy for me.Today its really easy to get started. Almost everyone has access to a PC, and compilers can be installed for free. Just pick a language, and get a child started producing simple command line programs for a PC. If they take to that, you can start to introduce more things. like GUI development or embedded hardware. Don't start out with complexity.

author: xrunner
author_rank: Super Contributor
timestamp: March 18, 2024, 10:52:30 pm
content: I did read all the advice and I thank you all for that. I will consider all the options presented. I will let you know if I get the chance to do this tutoring.

author: tggzzz
author_rank: Super Contributor
timestamp: March 19, 2024, 12:50:15 am
content: Another possibility: what is Lego offering nowadays?Mindstorms used to be a good starting point, but ISTR they don't do it anymore.

author: shabaz
author_rank: Frequent Contributor
timestamp: March 19, 2024, 02:46:47 am
content: I've not seen what Lego has to offer, but it could be a good option. There is a raspberrypi.com 'Build HAT' (motor control) too (no idea if it's any good), if kids outgrow any official Lego controller.Fishertechnik's app is neat. I got a kit called "Robotics BT Beginner (540587)" for my nephews. The programmability comes via flow charts, which they take to very easily (perhaps easier to use than 'Scratch', but children learn that at school with Micro:Bit, according a friend with a young kid). Learning flow charts could give them a great head-start in general.The Fischertechnik kit is expensive (200 GBP or so) but reasonably fun (although hard to use for 8-year-olds and under, because the plastic pieces can be stiff to join/disassemble).For coding on PC, some kids are interested in games, and there is a "Invent your own computer games with Python" book, it's not bad. There's also a very bright Usborne "Coding for Beginners using Python" book which is very good. I also tried "Coding for Kids Python" but that one is not good, it's written in a way that kids will not connect with, maybe adults would.

author: bitwelder
author_rank: Super Contributor
timestamp: March 19, 2024, 10:11:49 am
content: Before going into the choice of which platform, programming language, etc. I would rather first introduce in general to the 12 y.o. what coding is and does and then try to find some problem that s/he would be interested in solving with the programming.If there is a practical motivation to solve a problem or to create something specific, it will be easier to tackle the techical aspects of the programming.Based on the answers then one can think if it's more suitable start with an Arduino environment, or developing something on a computer, etc.

author: dietert1
author_rank: Super Contributor
timestamp: March 19, 2024, 11:35:22 am
content: 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

author: xrunner
author_rank: Super Contributor
timestamp: March 19, 2024, 11:48:41 am
content: 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 theproperway. 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.

author: metebalci
author_rank: Frequent Contributor
timestamp: March 19, 2024, 01:47:55 pm
content: 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.

author: Nominal Animal
author_rank: Super Contributor
timestamp: March 19, 2024, 04:39:26 pm
content: Quote from: metebalci on March 19, 2024, 01:47:55 pmI would be very interested in what they think of trying to make their own game usingGodot.Perhaps pose the question by showing them the2D game tutorial. There are lots of othertutorials, 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.

author: dietert1
author_rank: Super Contributor
timestamp: March 19, 2024, 05:53:12 pm
content: How about this?

author: metebalci
author_rank: Frequent Contributor
timestamp: March 19, 2024, 06:44:19 pm
content: Quote from: Nominal Animal on March 19, 2024, 04:39:26 pmI 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.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 19, 2024, 09:14:02 pm
content: Quote from: metebalci on March 19, 2024, 01:47:55 pmAgreed. 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.

author: DonKu
author_rank: Regular Contributor
timestamp: March 20, 2024, 01:22:49 pm
content: Quote from: xrunner on March 19, 2024, 11:48:41 amOr 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.

author: pdenisowski
author_rank: Super Contributor
timestamp: March 20, 2024, 02:11:59 pm
content: Quote from: SiliconWizard on March 19, 2024, 09:14:02 pmAgree 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.

author: Picuino
author_rank: Super Contributor
timestamp: March 20, 2024, 02:30:10 pm
content: 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.

author: coppice
author_rank: Super Contributor
timestamp: March 20, 2024, 02:35:37 pm
content: Quote from: Picuino on March 20, 2024, 02:30:10 pmYou 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.

author: Picuino
author_rank: Super Contributor
timestamp: March 20, 2024, 02:39:21 pm
content: When I said text language, I meant any language that is written with text, as opposed to block languages like Scratch or Blockly.

author: themadhippy
author_rank: Super Contributor
timestamp: March 20, 2024, 02:45:30 pm
content: QuoteSorry 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.

author: coppice
author_rank: Super Contributor
timestamp: March 20, 2024, 02:47:14 pm
content: Quote from: Picuino on March 20, 2024, 02:39:21 pmBlockly 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.

author: pdenisowski
author_rank: Super Contributor
timestamp: March 20, 2024, 03:56:02 pm
content: Quote from: Picuino on March 20, 2024, 02:30:10 pmI 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

author: coppice
author_rank: Super Contributor
timestamp: March 20, 2024, 04:12:45 pm
content: Quote from: pdenisowski on March 20, 2024, 03:56:02 pmFluency 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.

author: Picuino
author_rank: Super Contributor
timestamp: March 20, 2024, 05:39:23 pm
content: Quote from: themadhippy on March 20, 2024, 02:45:30 pmIn 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.

author: pdenisowski
author_rank: Super Contributor
timestamp: March 20, 2024, 06:53:34 pm
content: Quote from: Picuino on March 20, 2024, 05:39:23 pmAnd books too

author: metebalci
author_rank: Frequent Contributor
timestamp: March 20, 2024, 07:04:34 pm
content: Quote from: Picuino on March 20, 2024, 05:39:23 pmI learned programming BASIC from the Commodore magazine, it was the only resource I had, until I got a book. I was ~10.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 20, 2024, 07:51:54 pm
content: 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) 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!), 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

author: tggzzz
author_rank: Super Contributor
timestamp: March 20, 2024, 08:58:30 pm
content: 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

author: xrunner
author_rank: Super Contributor
timestamp: March 20, 2024, 10:15:17 pm
content: I got a TRS-80 when they first came out because Iwantedto 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.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!

author: shabaz
author_rank: Frequent Contributor
timestamp: March 20, 2024, 11:19:13 pm
content: 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.

author: pdenisowski
author_rank: Super Contributor
timestamp: March 21, 2024, 10:58:54 am
content: Quote from: T3sl4co1l on March 20, 2024, 07:51:54 pm"Never let school interfere with your education" - Mark Twain

author: pdenisowski
author_rank: Super Contributor
timestamp: March 21, 2024, 11:07:51 am
content: Quote from: xrunner on March 20, 2024, 10:15:17 pmAll 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

author: Nominal Animal
author_rank: Super Contributor
timestamp: March 21, 2024, 01:41:04 pm
content: Quote from: xrunner on March 20, 2024, 10:15:17 pmThat's exactly why I suggested Godot Engine, as the coding part really only comes in if/when they want to make things work better.Just before the turn of the century, I worked with university students who wanted to become art teachers. Very few of them had any kind of technical background, and many had not used a computer before they started university. In Macromedia Director, you had a timeline, like in audio and video editors, where you could drop elements and do 2D animation without writing a single line of code. To make conditional actions like clicking on an element jumping to another point along the timeline, you needed to write a line of code ("go to frameN", IIRC) as the element onclick handler. For more complex things, you needed to maintain state in variables, and write properLingo code.This turned out to be a perfect enticement for those who wanted to make things to learn coding, even though beforehand they explicitly stated they have zero interest in computers and programming per se.Quote from: pdenisowski on March 21, 2024, 10:58:54 amMy dad, a teacher and later a principal in comprehensive school, always said the most important thing a teacher can do in the first few years of school is to find the things that interest each student, and motivates them to learn on their own. The statistical results indicate he was definitely on to something there.

author: xrunner
author_rank: Super Contributor
timestamp: March 23, 2024, 11:29:45 pm
content: Quote from: SiliconWizard on March 18, 2024, 01:43:48 amOh boy - true story follows ...I just got off the phone with the Mother Hen. We talked about what I would want to teach them. I said I'd probably start off with showing them what the brains of a computer really is by letting them hold an old CPU in their hands, and go from there. Here it comes - but she also said the hubby (who does not do software or engineering) told her he didn't want them to waste time on learning coding because AI was going to do it all anyway.See what I'm up against!

author: brucehoult
author_rank: Super Contributor
timestamp: March 24, 2024, 12:10:32 am
content: Quote from: xrunner on March 23, 2024, 11:29:45 pmAbout five years ago when I was living in Russia a prominent member of parliament said there was no point teaching computer science in the universities because all the graduates just left the country anyway.I guess it didn't occur to hm to improve the country so the best people didn't want to leave.They don't all leave right away. There were lots of very smart people in Samsung (and Intel, and MCST, and some others), but for sure a lot were getting two years experience and then getting jobs abroad with Arm or Google or Facebook or whatever.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 24, 2024, 12:33:43 am
content: Quote from: xrunner on March 23, 2024, 11:29:45 pmWarned you.But I'm still baffled by how fast this bullshit is spreading. Incredible.

author: xrunner
author_rank: Super Contributor
timestamp: March 24, 2024, 12:39:32 am
content: Quote from: SiliconWizard on March 24, 2024, 12:33:43 amOh yea it's all over the internet now. But I want to ask the father - well why learn anything if AI has all the answers? Why go to school at all? Why not just teach kids how to ask AI all the questions they ever have?

author: brucehoult
author_rank: Super Contributor
timestamp: March 24, 2024, 12:55:42 am
content: Quote from: xrunner on March 24, 2024, 12:39:32 am"Asking the right questions" is the #1 part of all science, including computer science. And the part most people are too dim or blinkered to do.This current LLM fad will be over soon enough. There will be some things it's quite good at, just like PID control is quite good for some things (and much better than an on/off contact), but then attention will turn to the many things it can't do, and there will be fortunes to be made in that, whatever it is.

author: tggzzz
author_rank: Super Contributor
timestamp: March 24, 2024, 01:47:47 am
content: Quote from: brucehoult on March 24, 2024, 12:55:42 amFTFYFrequently answers are easy, but determining the right question is far more difficult.Some of the (relatively few) people I really respect have a knack of asking a simple obvious question, the answer to which illuminateswhole swathesof the subject.A classic one for software is "what is the definition of address or identity?".For hardware "where are the clock domain boundaries?".For distributed systems "what is the system behaviour when component X stops working?"You get the idea

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 24, 2024, 04:39:49 am
content: Quote from: tggzzz on March 24, 2024, 01:47:47 amAh yes, the Feynman approachI tease of course, but when one has the talent (or enough luck) to find the one exact valve in the piping system that no one else has accounted for; oh yeah.Tim

author: tggzzz
author_rank: Super Contributor
timestamp: March 24, 2024, 09:05:41 am
content: Quote from: T3sl4co1l on March 24, 2024, 04:39:49 amYes indeed. I've been rumbled!QuoteI did once have a relative whose car wouldn't start in my drive. After a little questioning, I asked them to open the bonnet while I fetched my hammer. They looked worried, and queried whether they should call a mechanic. Nah. Trust me.I fetch my large 3lb mallet and approach the car while waving the mallet with a slighly wild grin on my face. Ilightlytap the starter motor casing.The engine starts first time, to their amazement.Job done

author: brucehoult
author_rank: Super Contributor
timestamp: March 24, 2024, 12:31:40 pm
content: If there's plenty of power in the battery but it doesn't crank over even slightly ... I'd be doing the same thing.

author: 50ShadesOfDirt
author_rank: Regular Contributor
timestamp: March 24, 2024, 02:21:49 pm
content: +1 to the micro:bit ... it, plus the micro:bit makecode, is how I got my kids initially understanding programming. You use the PC with makecode, and graphically program simple things which are instantly running on the micro:bit, all tied by usb to the computer ... this is instant feedback (with flashing led's ... who doesn't like lots of these), as the micro:bit runs the program that they just wrote!If they don't want to spend money, it's ok, as makecode simulates the micro:bit. No outlay ...If they aren't opposed to spending a few measly bucks (micro:bits are dirt cheap), have the mom get one micro:bit v2 (the one with a bit more oomph to do small ai workloads), and point all of them (mom, kids) at the infinite resources out there for it, including the "teacher" section, where you can d/l full lesson material and teach "computer science" to the kids. Hopefully, it won't be long before each kid wants one.Plus, for the interfering hubby, it (the v2 version) does AI! So, you can sell them on that aspect ... "the kids aren't programming, they are exploring AI".Hope this helps ...

author: xrunner
author_rank: Super Contributor
timestamp: March 25, 2024, 12:51:33 am
content: Quote from: 50ShadesOfDirt on March 24, 2024, 02:21:49 pmI hadn't ever checked out that microbit but I did look at it today. It's a nice little platform for learning I do admit. I had planned on showing the kids the Arduino when they come over because I have made lots of projects with it. The current one I am working on is a parking assistant for the garage using the ultrasonic sensor HC-SR04. I have it working with a small display so I think it would be something they could see working and the display changing as it measures distance.I have a whole box of Unos and Nanos so geez I'd give away anything to get them started. I'm fighting an uphill battle now if people start believing AI is going to solve all these problems. Who needs a teacher anymore?

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 25, 2024, 01:06:19 am
content: Quote from: xrunner on March 25, 2024, 12:51:33 amIt's a fad right now, and no one can predict the future, all I can say is the following: either the fad will pass, and people will keep learning, or it doesn't, and then most people won't be able to do anything without it and outside of what they can do with it. In which case, the few ones who will be able to will be in high demand.Either way, unless of course someone has zero interest in that, learning is more important than ever. Just my 2 cents here.

author: shabaz
author_rank: Frequent Contributor
timestamp: March 25, 2024, 01:12:24 am
content: The micro:bit is quite an impressive platform, since even sub-10-year-olds can do things with it, and for the older kids they can switch to Python if desired.If you're buying one, there's the more recent V2, with built-in audio.Regarding importance of learning, it was interesting seeing at some (non-tech) conference near me last week, what was the most popular programming language! It wasn't Python or C++ etc. It was Excel formulas (not even VB). There were people running circa $1M businesses with it. Obviously slowing them down, and reducing productivity, because quite a few of them raised the problems they were experiencing, since all they can do is search around for ready-made software, SaaS, plugins, etc., they were so concerned with day-to-day that they had not considered the option of paying for software development, and wouldn't know what an API was anyway. It was pretty depressing seeing that. Just goes to show how empowering it can be to know some coding, no matter what career one is in.