Slashdot Mirror


Ask Slashdot: How Can You Teach Programming To Schoolchildren?

Slashdot reader SPopulisQR writes: A new school year is approaching and I wanted to ask what are appropriate programming languages for children of various ages. Specifically, 1) what coding languages should be considered, and 2) are there are any self-guided coding websites that can be used by children to learn coding using guidance and help online? Let's say the ages are 8 and 12.
I know there's lots of opinions about CS education (and about whether or not laptops increase test scores). So leave your own best thoughts in the comments. How can you teach programming to schoolchildren?

14 of 353 comments (clear)

  1. They still need to learn math and logic... by Anonymous Coward · · Score: 3, Insightful

    at that age, so none of the above.

    1. Re:They still need to learn math and logic... by BitterOak · · Score: 4, Insightful

      I don't understand why you were voted down, but this. They need a solid background before starting programming.

      Why do they need this before they start programming? Why can't programming be an opportunity to learn these other things? Have the students program something fun or useful and then integrate the math and logic lessons in with the programming. They'll likely retain it much better if it's taught as part of a larger useful project rather than just through a series of lectures.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
  2. Don't bother by Anonymous Coward · · Score: 3, Insightful

    Teach them the basics to get them through life. Few need to know programming. Why spend all that money when they'll just become auto mechanics or sell real estate.

    You think I'm kidding but I'm not. Odds are your kid won't program software at all. Let the ones who show interest and have aptitude at the computer. The rest just want to use social media and games.

  3. Don't by OneHundredAndTen · · Score: 4, Insightful

    Teach them to think, and mental discipline. We do not need more code monkeys.

  4. Why bother? by BarbaraHudson · · Score: 5, Insightful

    Why bother? Get them grounded in something that won't be obsolete with the next language fad. You know, real science, real knowledge, something that will help them build their analytical and judgement skills. (No, most coding doesn't build analytical skills - most of it is boring boilerplate, which is why there are so many "code-by-cut-n-paste-from-the-net" "experts.") Biology, Chemistry, Physics, Geology ...

    Throw in various maths, as well as language (judging by the way so many slashdotters don't know the difference between brake and break, or rain, rein, and reign, if they can spell in 10 years time they'll be seen as brainiacs). And history - so they recognize past mistakes when they repeat them and don't over-commit to a bad course of action.

    But forget computers. That they can pick up on their own if they're interested. And if you try to teach them you'll kill their interest by making i seem like school work instead of a possible fun hobby that might, at some future date, come in handy.

    --
    "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    1. Re:Why bother? by thegarbz · · Score: 3, Insightful

      Get them grounded in something that won't be obsolete with the next language fad.

      I can't say a single "language fad" has ever made the lessons I learnt in LOGO or in LISP obsolete. The submissions asked for how to teach people to program, not how to copy and paste and interpret code in a specific language.

      Regardless of what language fad happens you will still remember how it's done from your first procedural language, your first function based language, and your first object oriented one (though the last concept is hardly suitable to tech a general school population.

    2. Re:Why bother? by blindseer · · Score: 3, Insightful

      But forget computers. That they can pick up on their own if they're interested. And if you try to teach them you'll kill their interest by making i seem like school work instead of a possible fun hobby that might, at some future date, come in handy.

      I don't believe that's true. I had chemistry in high school and college and that didn't make chemistry look like "homework" to me. My sister took the same classes, and much more, she has a masters degree in chemistry. I also took home economics (or whatever they call it these days) and found cooking fascinating. Sewing was fun too. What made them "homework" later was having to put those skills to work regularly in cooking meals and doing home repairs.

      I took shop classes in high school, as did my brothers, and we all do much of our own home repairs, on some level at least. We'd build our own speaker cases, wire up the crossovers, and sew a grill to the front. We built cabinets and shelves. Big brother made a career out of it, first as an apprentice architect, later as a woodworker building custom furniture and artwork. doing some general contracting as well. He'll probably be a machinist and welder soon if he gets the job he's interviewing for. I took as much computer science I could in high school, as did my younger brother. We went to study electrical and computer engineering. He's doing stuff that I'm not sure I even understand. Not that he could do what I do either.

      Baby brother and baby sister are engineers, he a mechanical and aerospace engineer, and she a civil engineer. This involves a lot of math and computers, taught at the university. I'm sure chemistry too. Which has been a means to produce their own alcohol to feed their other hobby...

      I do not believe that computers are much of a "hobby" any more. Computer games might be a hobby but that's not a lot of computer science there, unless it's building the game.

      For schools to teach "hobbies" would be the things like chess club, music club, theater, sports, art club. and perhaps others. I've gone back to school to learn large data analysis, which includes programming, statistics, and some "hobbies" like reading literature and playing music.

      Lots of examples of classwork becoming hobbies, and being more than just "homework".

      --
      I am armed because I am free. I am free because I am armed.
  5. BASIC by crow · · Score: 3, Insightful

    I learned BASIC on an Apple II back in 6th grade. They bussed us across town to the one school that had them for one segment of the Gifted & Talented program. That was the best thing the school district ever did for me.

    I'm not sure what the right answer is for today, but certainly it's a good idea to expose kids to the concept in elementary school. Some of the kids will latch on to it and run with it to be the next generation of developers.

    Maybe something that kids can take and go on with themselves would be best, but I don't think the language really matters. Teach kids to program, and the ones that it clicks with will go on to grab whatever works for them.

    And for those that say the schools should focus on more core curriculum aspects, I disagree. Yes, you can't neglect those, but you also need a variety of other topics so that kids find the topics that inspire them. For the kids who click with coding, the programming will drive their advancement in algebra and other areas of math.

  6. Only teach basic computer logic by DontBeAMoran · · Score: 1, Insightful

    Stop wasting everyone's time trying to teach them how to program.

    They only need to understand the very basic functionality of processors: what memory is, RAM vs storage, how a processor can do maths on the memory and how it can take decisions based on values. That's it. Those who really are interested will learn on their own, choose computer classes on their own, etc.

    Stop forcing everyone to be a programmer and teach them just enough so they stop thinking computers are incomprehensible magical boxes, and stop them from clicking "accept" on every damn prompt the computer asks them.

    --
    #DeleteFacebook
  7. JavaScript by hord · · Score: 4, Insightful

    I hate to even recommend it but I think I have some decent reasons. It's in every browser. Hit F12 and you have a REPL, debugger, and you can start coding on the same machine without downloading anything else. Even though it's a very loose language, you can teach all the basics of control flow, data handling, and you will be forced to deal with numeric and type issues. You also have access to a graphical canvas which is amazing fun for kids.

    I wouldn't expect things like File I/O to come up which could be problematic or burdensome. Theoretically you could teach event-driven programming but that's a bit overkill for kids. If you can push anything to a hosted server, they can view it on their phone, too. You can do some of this with other languages, of course. JavaScript just comes on so many things now, though.

  8. What is your goal? by Registered+Coward+v2 · · Score: 4, Insightful

    If it is to teach them programming concepts such as sorts, loops, etc. then I'd go for a simple language like BASIC. The language is important since you are trying to get them to learn how to think about problems, not be able to write code in a specific language.

    If it is to teach them to program in a specific language I'd ask why do this at their age? It's likely whatever language they learn will be outdated by the time they finish school anyway.

    --
    I'm a consultant - I convert gibberish into cash-flow.
  9. Re:Python and nothing else by Anonymous Coward · · Score: 2, Insightful

    Python is today's BASIC/PASCAL.

    Nonsense. BASIC is Beginner's All-Purpose Symbolic Instruction Code in which whitespace is not part of the syntax in the pedantic way Python's designer masturbated over "enforced structure." Pascal has a few issues of its own in as much as their is some overhead code - scaffolding they call it these days - before you can even write a simple "Hello World" programme. BASIC remains the excellent introductory computer programming language; there are even BASIC interpreters written in Javascript for ease of availability. Recently, I used BASIC to solve a DNA programming challenge; standard BASIC not the abomination known as Microsoft Visual Basic and its ilk.

  10. Re:One bit at a time... by Dutch+Gun · · Score: 4, Insightful

    I learned how to program in AppleBASIC when I was in sixth or seventh grade - long before I knew anything of formal logic or algebra. It was the introduction to programming that *taught* me those concepts. In fact, I distinctly remember that geometry and linear algebra made no sense to me until I realized I could apply them to computer graphics or robotics. Once I had that as a mental model, the math became much easier for me.

    Most programmers tend to be good at math, and many have CompSci or EE degrees, and thus assume math has to be a foundation for programming. As a programmer who is terrible at math, I can assure you it doesn't necessarily have to work that way.

    --
    Irony: Agile development has too much intertia to be abandoned now.
  11. Re:I learned that in 2nd grade or so. by jellomizer · · Score: 3, Insightful

    Programming is more of an art then a knowledge exercise.
    And it needs practice to keep it up.

    However one thing we lost since the 8/16 bit computer days are the easy to program computers.
    Most kids wants to do graphics (hence the popularity of Logo) but good old basic was good at this too.
    Today Python seems to be a good tool but while the kid is still grasping at varables and loops they want to do graphics and to explain how to do that in Python just blows the mind. Because you can't just draw a line. Or paste a gif.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.