Teaching kids to code



  • @dcon said in Teaching kids to code:

    @lolwhat said in Teaching kids to code:

    @Onyx said in Teaching kids to code:

    I wouldn't give a 6-yo kid C

    How could that possibly be any worse than requiringteaching an averagejava programmer to use C? 🚂

    There's something to give you some nightmares...

    Oh, definitely. I started out as a C programmer, but I now write Java for a living.



  • @Applied-Mediocrity said in Teaching kids to code:

    Encourage curiosity in all of STEM subjects, do not focus on this coding thing. Better mathematicians should then try programming, that is, apply their rigorous logic and discipline to a different class of problems.

    At my first parent-teacher conference I was surprised they are already teaching multiplication concepts.

    If each bag has 5 donuts and you have 3 bags, how many donuts are there?

    They have to draw out their work but I'm pretty sure I didn't know that kindergarten.


  • Banned

    @djls45 said in Teaching kids to code:

    @dcon said in Teaching kids to code:

    @lolwhat said in Teaching kids to code:

    @Onyx said in Teaching kids to code:

    I wouldn't give a 6-yo kid C

    How could that possibly be any worse than requiringteaching an averagejava programmer to use C? 🚂

    There's something to give you some nightmares...

    Oh, definitely. I started out as a C programmer, but I now write Java for a living.

    My story is like a modern adaptation of yours - I started with C++, but now I'm doing Scala.


  • Discourse touched me in a no-no place

    @Karla said in Teaching kids to code:

    If each bag has 5 donuts and you have 3 bags, how many donuts are there?

    Enough that there'll be some left for me tomorrow too?



  • @GÄ…ska said in Teaching kids to code:

    Because unlike cooking or playing piano, you can't do anything useful at all with basic programming knowledge alone -

    Except excel macros, simple shell scripts, milling machines and a whole host of things where basic programming knowledge makes you a cut above you cow-orkers.


  • Banned

    @Carnage I'd say these don't even require basic programming knowledge. They require less than basic understanding - just knowing what command goes where for a given task. You don't even need to know what a variable or a loop is. That's not even 101-level stuff - more like 98-level, or maybe even less.



  • @GÄ…ska said in Teaching kids to code:

    @Carnage I'd say these don't even require basic programming knowledge. They require less than basic understanding - just knowing what command goes where for a given task. You don't even need to know what a variable or a loop is. That's not even 101-level stuff - more like 98-level, or maybe even less.

    And if you do know loops, jumps and the basics of programming, you go from awesome to utter wizardry in the eyes of the people that cant even string together two commands correctly. The skill is decidedly useful.
    And for mill programming, loops and jumps are really a thing that makes something physical happen with less work.


  • Banned

    @Carnage said in Teaching kids to code:

    @GÄ…ska said in Teaching kids to code:

    @Carnage I'd say these don't even require basic programming knowledge. They require less than basic understanding - just knowing what command goes where for a given task. You don't even need to know what a variable or a loop is. That's not even 101-level stuff - more like 98-level, or maybe even less.

    And if you do know loops, jumps and the basics of programming, you go from awesome to utter wizardry in the eyes of the people that cant even string together two commands correctly. The skill is decidedly useful.

    Not really. Knowing how to do variables and loops doesn't give you much utility over just knowing how to run commands. You need to learn a whole lot more for your loops to do something actually useful. The gap between awesome and utter wizardry is quite wide, and utility in the middle of this gap is equal to the utility at the beginning of this gap. You either go all the way through, or there's no benefit at all to learning all that stuff that goes beyond minimum. And small children are mostly incapable of going all the way.


  • Considered Harmful

    There must be two levels of programming we're talking about here. One is programming as a life-long profession, unlimited* in its capabilities, and another is programming knowledge as a valuable skill that augments other walks of life, and can be acquired by any sufficiently capable and inquisitive mind. In the latter case care must be taken, in the same way that anyone can try to repair a car or plumbing, but it's important to know the limits lest you wonder why the exhaust system has been wired to the sewage pipe - they're both meant to move waste away, aren't they?

    The former may not be a viable subject of primary education. The exact definition of what that is varies. What I mean is until concepts such as real numbers, 3rd degree polynomials, sets and graphs have been well understood. In mathematics learning concepts step-by-step from basic arithmetic to calculus (to whatever comes after - I never got that far - and it shows) works well. In programming I don't think it does. It needs to be already there.

    I have no better example than myself. I have built my own unsound logic on top of basic concepts, because I learned by doing things, and most of what I did was entertaining, fun, but not very useful. Now, people say learning things is difficult. More difficult than that certainly is unlearning things that are wrong. This is the pitfall that must be avoided.


  • 🚽 Regular

    @Gribnit said in Teaching kids to code:

    @Onyx said in Teaching kids to code:

    @dkf said in Teaching kids to code:

    They can start thinking of hardware as purely magic boxes once they become software engineers…

    I contest that they are at least partially magic. Transistors work because quantum. So do some of the touchscreens these days. Fucking quantum, how does it work?

    The magic comes from the smoke that they are stuffed with in the factory. If you let it out, the device stops working.

    0_1544288426379_a3626173-896d-457a-9ea4-9dff139f6bce-image.png

    Can confirm the smoke remaining inside is essential, smoked all four FETs and the controller in an H-bridge last week due to gate oscillation, 20 quids worth of parts 😿



  • @dkf said in Teaching kids to code:

    @Karla said in Teaching kids to code:

    If each bag has 5 donuts and you have 3 bags, how many donuts are there?

    Enough that there'll be some left for me tomorrow too?

    Yeah, my daughter doesn't eat that much.


  • Banned

    @Applied-Mediocrity said in Teaching kids to code:

    There must be two levels of programming we're talking about here. One is programming as a life-long profession, unlimited* in its capabilities, and another is programming knowledge as a valuable skill that augments other walks of life, and can be acquired by any sufficiently capable and inquisitive mind.

    Not really. Depending on how much augmenting you need and how committed you are to making them, the second can be very hard too. But yes, the very basic stuff isn't that hard. The discussion is about basic stuff, which is above very basic stuff but below pre-intermediate stuff. I consider this basic part, above the very basic part, to be completely useless except as a stepping stone to acquire pre-intermediate knowledge. And I consider preteen children to be wholly incapable of acquiring pre-intermediate knowledge, and from it follows that teaching them basic stuff is pointless (not to be confused with very basic stuff, which might be somewhat useful to a child, if only because it lets them grasp the concept that a computer does what you ask it to do, exactly).


  • Discourse touched me in a no-no place

    @GÄ…ska said in Teaching kids to code:

    I'd say these don't even require basic programming knowledge.

    No, they precisely require the absolute base level of programming knowledge. Variables, expressions and conditionals are the next step. Loops are (usually quite a bit) after that; functions might come before loops. It's possible you might postpone loops until working with collections of things…


  • BINNED

    @dkf said in Teaching kids to code:

    functions might come before loops.

    Not teaching functions early on is a sizeable :wtf:. I've seen plenty of spaghetti copy-paste as a result of that.


  • Discourse touched me in a no-no place

    @Applied-Mediocrity said in Teaching kids to code:

    In mathematics learning concepts step-by-step from basic arithmetic to calculus (to whatever comes after - I never got that far - and it shows) works well.

    What comes after is Analysis. I never got there either. 😉


  • kills Dumbledore

    @kazitor it could be a good teachable moment if you let them get a load of copy pasta, change the requirements so they have to change every copy and then show them there's an easier way


  • Discourse touched me in a no-no place

    @Cursorkeys said in Teaching kids to code:

    20 quids worth of parts

    So fuck all by comparison with the time and hassle of doing the replacement…



  • You don't need computers, books or classes to teach kids programming. Just an evil mind

    https://youtu.be/cDA3_5982h8


  • ♿ (Parody)

    @Karla said in Teaching kids to code:

    If each bag has 5 donuts and you have 3 bags, how many donuts are there?

    Enough to find a husband?

    0_1544467724382_8f9b6a7d-04b9-4d4e-8481-47ab608adb93-image.png


  • Trolleybus Mechanic

    @Onyx said in Teaching kids to code:

    I don't see a huge difference between a wrench and a screw and keyboard and a function call, on an abstract level.

    You aren't abstract enough. I'm going to teach Molly and Declan how to manipulate atoms first, and go from there.


    Filed under: Or should I start with Platonic forms?


  • Banned

    This post is deleted!

  • Trolleybus Mechanic

    @mott555 said in Teaching kids to code:

    My first exposure to code was QBasic, and I was probably 8 - 9 years old.

    For me it was somewhere between 6 and 8. Apple IIe. A friend showed me that if you type `10 PRINT "Hello" 20 GOTO 10" it would just infinitely print out HELLO.

    And it went from there.

    • Simple hacking: What if I want to say something other than Hello?
    • Variables & interaction: What if I want someone to type their own words?
    • Loops: What if I wanted it to stop after 24 times (there were 24 lines on the screen, if I recall)
    • String manipulation: What if I wanted to have me type in my name, and it says "Hello " and then my name?
    • Integers: What if I also wanted to say how many times to print it instead of 24?
    • Conditionals: What happens if I want it to do something special if someone enters 7?
    • Error handling: What happens if I type in -1? Or 2000000000000000000? Or "A"?
    • Random: What if I instead wanted to loop a different amount of times each time without me saying so.
    • More conditionals: OK, what if the computer picked a random number, and I tried to guess it, and it told me right or wrong?
    • Game looping: What if I wanted the computer to remember that number, and instead tell me too high, too low, or I got it?
    • Graphics / ASCII art: This needs more color for right and wrong, and happy faces for when I win!
    • Multi-variable stuff: I want the computer to track how many guesses it took me
    • File manipulation: Can I save the high score?

    Each question I asked I either hand the Apple IIe Basic programmers guide that came with the computer, or I took a book out of the library.

    At a friend's birthday party, one of the crafts things was take a popscicle stick and some construction paper, and make a puppet of yourself with what you want to be when you grow up. I made me, with a big smile, wearing a suit and tie with a little construction paper keyboard in my hand. I wanted to be a programmer!

    At some point I ended making one of those "space turn-based game"-- you'd warp into Sol, there'd be 10 "turns" to get to Earth. Each turn you might encounter nothing or a pirate. When you encountered a pirate, you could Laser (low damage, high hit rate), or Torpedo (high damage, low hit rate), or Escape (chance to run away). You had shields. If you made it all 10 turns, there was an ASCII Earth that showed up. There were colors and a HUD and sounds and everything.

    My aunt and uncle were so impressed by it, they got me my first IBM (XT!) for my 13th birthday. From there I learned QBasic, and took high school classes for Turbo Pascal and sorting and everything... {insert way too many years here stuck in dead-end IT jobs and depression}... and then I went back to college to get a degree in programming, and now here I am, 10+ years into a successful career as a programmer.

    Even if I didn't go the professional programming route, everything I learned about math and logic and probability and accounting and linear thinking and loops and all that jazz would have been invaluable in my everyday life.

    So yeah. Teach your kids to code. It might or might not take. But what they learn will be good, and it may lead to something grander.


  • 🚽 Regular

    @dkf said in Teaching kids to code:

    @Cursorkeys said in Teaching kids to code:

    20 quids worth of parts

    So fuck all by comparison with the time and hassle of doing the replacement…

    The time to replace them is about 30 mins as I need the BGA rework station for part of it. But it's a personal project so the money comes out of my pocket dammit...could have used that for wine!



  • @dcon said in Teaching kids to code:

    @Karla said in Teaching kids to code:

    I was in 5th grade in the early 80s.

    Oh, a youngun. (I was in high school then)

    I was in university. :belt_onion:



  • @Applied-Mediocrity said in Teaching kids to code:

    MEEELIONS of LoC of garbage.

    My brain tried to read this as

    MEEELIONS of LaoC of garbage.

    :eek:



  • @dkf said in Teaching kids to code:

    @Applied-Mediocrity said in Teaching kids to code:

    In mathematics learning concepts step-by-step from basic arithmetic to calculus (to whatever comes after - I never got that far - and it shows) works well.

    What comes after is Analysis. I never got there either. 😉

    What came after in my educational experience was Differential Equations, Linear Algebra, and something called Advanced Engineering Mathematics (Fourier transforms, Laplace transforms, etc.), which probably all would be described as advanced calculus rather than Analysis, but that's as far as I got. Sadly, my brain stopped really comprehending this stuff somewhere around mid-calculus.



  • @Lorne-Kates said in Teaching kids to code:

    @mott555 said in Teaching kids to code:

    My first exposure to code was QBasic, and I was probably 8 - 9 years old.

    For me it was somewhere between 6 and 8. Apple IIe. A friend showed me that if you type `10 PRINT "Hello" 20 GOTO 10" it would just infinitely print out HELLO.

    And it went from there.

    • Simple hacking: What if I want to say something other than Hello?
    • Variables & interaction: What if I want someone to type their own words?
    • Loops: What if I wanted it to stop after 24 times (there were 24 lines on the screen, if I recall)
    • String manipulation: What if I wanted to have me type in my name, and it says "Hello " and then my name?
    • Integers: What if I also wanted to say how many times to print it instead of 24?
    • Conditionals: What happens if I want it to do something special if someone enters 7?

    Not too different from my experience, except mine didn't start until high school in the early '70s, and instead of printing "Hello", it was usually "<Classmate> is an idiot."

    • File manipulation: Can I save the high score?

    In the '70s, the computer I had access to didn't have the concept of a file. We had hardcopy printouts and punched paper tape for program storage — LIST, <turn on the tape punch>, Return.

    At some point I ended making one of those "space turn-based game"-- you'd warp into Sol, there'd be 10 "turns" to get to Earth. Each turn you might encounter nothing or a pirate. When you encountered a pirate, you could Laser (low damage, high hit rate), or Torpedo (high damage, low hit rate), or Escape (chance to run away). You had shields. If you made it all 10 turns, there was an ASCII Earth that showed up. There were colors and a HUD and sounds and everything.

    Far more ambitious than I was, but then the only peripheral we had was a hardcopy terminal, so colors and sounds were things I never even dreamed of.

    My aunt and uncle were so impressed by it, they got me my first IBM (XT!) for my 13th birthday.

    A bit later I dreamed of having a TRS-80, but it was far beyond anything my parents could afford. In uni, the school replaced one of the four PCs in the Computer Graphics lab with an XT in the middle of the term. It was amazing that we could save our programs on the huge 5 MB hard disk instead of a 5 1/4 inch floppy. (We still needed floppies, though, because the other three computers didn't have hard disks. Network storage? What's a network?) I didn't have a computer of my own until after I'd graduated from uni.



  • @boomzilla said in Teaching kids to code:

    @Karla said in Teaching kids to code:

    If each bag has 5 donuts and you have 3 bags, how many donuts are there?

    Enough to find a husband?

    0_1544467724382_8f9b6a7d-04b9-4d4e-8481-47ab608adb93-image.png

    There is this boys she says is handsome and I think it is the same one that pulled her hair in the beginning of the year.


  • Trolleybus Mechanic

    @Karla said in Teaching kids to code:

    There is this boys she says is handsome and I think it is the same one that pulled her hair in the beginning of the year.

    Some people are into that.


Log in to reply