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?

353 comments

  1. LOGO writer? by renegadesx · · Score: 4, Informative

    Back in the early 90's we were taught with a tool called LOGO Writer. Used a simple syntax to guide a turtle to draw objects and stuff. You could write loop statements that would have the turtle draw a "circle" and other things. It was pretty effective I thought.

    --
    Make SELinux enforcing again!
    1. Re:LOGO writer? by Anonymous Coward · · Score: 0

      There was a mac implementation called MicroWorlds too.

    2. Re:LOGO writer? by chota · · Score: 1, Interesting

      I am currently reading "Mindstorms," by Seymour Papert, which is the namesake of the LEGO product for building intermediate robotics. The concepts of that product and its language—LEGO/LOGO—are inspired by Mr. Papert's work therein. Read it. Let's compare notes afterward, because I'm afraid that your questions betray your all-too-easy view of "education." To the questions:

      1. "What coding languages should be considered?" All language; specifically (unto each child), the language that child uses—primarily—in communicating outside of that person's self. Around these parts, that's most usually English or American Sign Language (or, perhaps, Signed English). Start out with epistemology: be up-front and honest (if you are willing to do this) that the class is going to be primarily a safe place to—as an undercurrent to the purpose of attendance—think about thinking ("metacognition.") Speaking of that "purpose of attendance": it sounds as if you want to simply check off some tacky ticky boxes on a form to "certify" that the children have "done the work." To each one, ensure that person has a reason for being there, because you owe each a personalized curriculum. If they are required to be there (compulsory attendance), it's spoiled and can't be considered true "learning" (which is *always,* I contend, autodidactic).
      2. I recommend LOGO, particularly because it has a "body-syntonic" application. This ensures you (and others who use it) may surmount the "nerds vs. jocks" stereotyping that could happen, often portrayed in popular media in the LOGO age.
      3. If you must indoctrinate "the class" to a particular language, use LOGO. Use the "get up and walk around and figure out how *you* think about walking a circle, then write it down" type of lesson plan, the subroutine instructions that build up into a palette of useful examples of geometry, and the opportunities for functionalization. It's also a good foundation, I've decided, for having folks think in a slightly less-absurd way about points, lines, curves, and positions, because the Turtle (cursor/caret) has *direction,* as well as position, and is therefore more vector-y (i.e., real-world applicable) than simple point-based systems-"frozen"-in-time.
      4. "Are there are any self-guided coding websites that can be used by children to learn coding using guidance and help online?" With this, you make it known that you're not really willing to develop. Read a book. Or do you want a "teach children to use a self-guided coding website" website to help you? I don't ask it to be rude, but to help you gain an enthusiasm for the position of being entrusted with young learners. If going down that road, instead of having each come up with (a) what learning is, (b) where learning comes from, and (c) when to learn (i.e., a reason for learning) as the first day activities, just know that the children (as a whole and each, individually) aren't stupid (don't label them such, even in your thoughts), and any misconceptions they garner from substandard, non-individually-catered learning materials will be on your head.
    3. Re:LOGO writer? by Anonymous Coward · · Score: 1

      While I was a bit older by the time computers were introduced into my high school in 1982, the way our mathematics teacher introduced us to programming was by typing in a one-page programme to calculate the quadratic roots of an equation. We had to use the programme that we each typed into the computer's memory to complete an assignment which was to be graded. We used Commodore PET BASIC. I doubt LOGO would have held my interest much less turned me onto the many benefits of knowing how to solve problems algorithmically.

    4. Re: LOGO writer? by Anonymous Coward · · Score: 1

      For 8 yrs old you could try something visual like Scratch, its fun and highlights the important part which is the logic, creating a sequence of actions.

      That activity will help them develop the kind of thinking and problem solving they will need to program in any language later, and also it's use in non programming skills.

      12 and older you could start with Scratch and then move quickly into a statically typed language that doesn't consider indentation as a replacement for block delimiters. Java and C are ok.

      Hope this is an afterschool or elective type course ... listen to many others here when they say don't force this on everyone. It won't work just like forcing art class doesn't work.

    5. Re:LOGO writer? by TWX · · Score: 1

      Yep. The point of "programming" at that age is to broaden the impressions of what computers can be made to do, beyond what normal existing programs do. It's silly to try to teach programming in the conventional sense at this age, a lot of programming requires math skills that aren't learned until at least junior high, if not high school. By contrast, because some aspects of geometry are visual and don't necessarily require understanding of the math, kids can draw patterns on the screen without needing to know what's actually going on.

      For those kids that enjoy this expanded horizon, they may go on to learn more about real programming later, when their mask skills have caught-up with what real programming requires.

      --
      Do not look into laser with remaining eye.
    6. Re: LOGO writer? by Anonymous Coward · · Score: 0

      Agreed. And for someone planning to help kids learn Scratch, good resources (and community support) can be found on Harvard's ScratchEd site.

      http://scratched.gse.harvard.edu/

      The same group publishes a helpful curriculum guide.

      http://scratched.gse.harvard.edu/guide/

    7. Re:LOGO writer? by Zero__Kelvin · · Score: 1

      Very little software development requires math skills. You could spend years teaching software development without going beyond basic Boolean logic (minus the math, just how or, nor, and, not etc. are used).

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    8. Re: LOGO writer? by dougdonovan · · Score: 1

      give them a laptop when they are born and let them figure it out. if they break it, buy them another one, if they break that one, they are not interested and will end up being a ceo / shareholder.

    9. Re:LOGO writer? by Anonymous Coward · · Score: 0

      Yeah, when I was really young my father started me with logo, initially just drawing and stuff, but eventually even doing some fairly clever tricks in it like a 'pathfinding' algorithm to get the turtle to 'locate' and move along a pre drawn path.

      Later on I moved on to pascal and other languages. I feel like a lot of people miss this first step (logo style stuff) and try jump children straight into full on programming, they would probably have more success if they did not skip this step.

    10. Re:LOGO writer? by oh_my_080980980 · · Score: 1

      It requires logic.

    11. Re:LOGO writer? by Anonymous Coward · · Score: 0

      In the 80s/90s, I remember using basic, qbasic, Pascal, and not much else until I was exposed to C and C++ in the late 90s just before going to college.

      If I were to throw another recommendation into the ring, I would add Processing. It's the thing that Arduino is based on, and rather than using C++, it's basically Java, but the graphics capabilities very easily lend themselves to imperative styles, and that's something that's easy for kids to chew on, I think.

    12. Re:LOGO writer? by Zero__Kelvin · · Score: 1

      Yeah ... I wrote that actually. Reading comprehension helps too.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    13. Re:LOGO writer? by lys1123 · · Score: 1

      I did LOGO as a child, and my daughter did the Frozen coding exercises at code.org and I found them very similar, though improved. With LOGO I remember being given sheets of paper with patterns and then having to type in commands with a keyboard to try to match the patterns. The Code.org tutorial was much more interactive, the different snowflake patterns were on the screen and she only had to type a little, mostly dragging code blocks and hooking them together. So FWIW she really enjoyed it, and has moved on to doing projects in Scratch which also uses the drag and drop code blocks.

    14. Re:LOGO writer? by malachid69 · · Score: 1

      I started first grade in 1979. Computer programming was a required class for ALL students in elementary school. We too started with pseudocode and Logo (in 1st grade). Since I've been programming for 38 years and it's currently my career - I definitely think it was effective for me.

      --
      http://www.google.com/profiles/malachid
    15. Re: LOGO writer? by Anonymous Coward · · Score: 0

      Did that in late 80's. First I tried to computers. Though my real motivation was playing video games much later.

    16. Re: LOGO writer? by TimMD909 · · Score: 1

      Reading comprehension? What does a railroad company in Pennsylvania have to do with programming? /s

    17. Re:LOGO writer? by Anonymous Coward · · Score: 0

      I don't know about this. I first started programming in basic in grade 2 and was hooked pretty quick: it was a fun way to learn logic (and, without realising it, some maths) and you could do really cool "stuff" (actually pretty simple stuff but at that age it seemed really cool and techie).

      Turtle though... they tried to teach us in grade 5 iirc, but it never really "clicked" for me. Seemed like an unnecessarily complicated way to draw fairly basic pictures. I must have been a real pita actually :)... "what do you mean Pen up/pen down? Why is it so slow? Why can't I just type plot i,j to k,l? Can't I just use basic?".

    18. Re:LOGO writer? by CronoCloud · · Score: 1

      Congratulations, you've just describe "Hour of code"

      https://hourofcode.com/us/lear...

      Many of the various tutorials are actually "Turtle graphics"

    19. Re: LOGO writer? by Anonymous Coward · · Score: 0

      LOGO is more capable than BASIC, and could easily handle the quadratic formula and far more.

    20. Re:LOGO writer? by Anonymous Coward · · Score: 0

      Insufficiently modest. Approx 13% of mid-teens can function in Piagets Formal Operations. Another 5% discover work-arounds later: that is not-smart-enough , but given "room" they successfully task FO anyway. Shortcourse: 18% of all folks are able to program. Say ... half that number are emotionally intolerant - - scratch them from the coding workforce. Leaves 9% .... deal with it. Pay them lots.

  2. 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 Anonymous Coward · · Score: 0

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

    2. Re:They still need to learn math and logic... by jshackney · · Score: 0

      I actually came to say exactly the same thing. Get comfortable with logic and some basic algebra and go from there. Don't force it down the pupils' throats, rather teach it out based on aptitude after an introductory course.

    3. Re: They still need to learn math and logic... by hawkeyeMI · · Score: 3, Informative

      Code.org seems pretty good actually for teaching programming logic with a sort of visual pseudocode. My 8 y/o has been enjoying it. They use it at her school too.

      --
      Error 404 - Sig Not Found
    4. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 2, Funny

      psst... if you mean the silly "send us a sign" meme you need to realise that it is a *joke* meme. You may not have noticed this, but many people use humor like this to get through difficult and troubling situations, including (in this case) having an overgrown man-child for a president and an idiot as a husband.

    5. 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?
    6. Re: They still need to learn math and logic... by Anonymous Coward · · Score: 0

      I agree, math, logic and I would add problem solving. I have met plenty of programmers that know $language_du_jour that can't analyze a problem to know how to code a solution to it.

    7. Re:They still need to learn math and logic... by viperidaenz · · Score: 1

      Knowing the different between "been" and "being" could be understood as a privilege...

    8. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      I think most people in Seattle are superstitious:

      http://i.imgur.com/cvTCQib.jpg

    9. Re:They still need to learn math and logic... by Jack9 · · Score: 1

      I learned to program before I was introduced to formal logic or any math beyond arithmetic.
      I don't know why these would be considered a prerequisite, when they are not a necessary prerequisite.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
    10. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 2, Interesting

      *cheers loudly*

      The absurd reduction of the 'They need a solid background before starting programming.' argument is that people need a solid comprehension of *everything* before doing *anything*. Which is actually, deeply, stupid.

      I got my brother's kids into programming by showing them how to build game levels, and going from there.

      Involve them in something they already consider fun.

    11. Re:They still need to learn math and logic... by TheRaven64 · · Score: 1

      It's moderated down, because programming is a good way of teaching a bunch of mathematics and logic.

      --
      I am TheRaven on Soylent News
    12. Re:They still need to learn math and logic... by jellomizer · · Score: 2

      How many professional developers have a solid background.
      I have been coding for over 30 years and still I go to a reference material. Randomly try different stuff and methods.
      Often people go how did you figure that out. My normal responce is I decided to right click on it and see what options were available.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    13. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      Knowing the difference between "different" and "difference" is also a privilege.

    14. Re:They still need to learn math and logic... by Zero__Kelvin · · Score: 1

      They need to have programming skills in order to program, so don't bother to teach them programming! I know 8 and 12 year olds that can see the fault in that logic.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    15. Re:They still need to learn math and logic... by Drethon · · Score: 2

      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.

      Fully agree with this. The way programming is usually taught does require a solid background in logic and math. But a programming language could teach this, instead of requiring it as a prerequisite.

      I've thought of making an abstract language based on something like the warcraft resource gathering. First teach the students to call a basic function like "cut and gather nearby wood". The program will automatically move the character to the nearest tree, cut it down and bring it to the base. Then add repetition, "cut and gather nearby wood 10 times". Then perhaps conditions, "cut and gather nearby wood if gathered less than 20".

      This above only teaches general concepts but from there we could move to more specific concepts. Start breaking down these generic functions down. "cut and gather nearby wood" is broken down to teach the student how the program finds the nearest tree, how it cuts down the tree, how it picks up and returns the wood, etc.

      I feel like a lot of programming teaches too much from the bottom up. "Here is the most basic, low level, operation in programming. Let's figure out how to make a complex program out of it." Instead I feel like programmers would benefit from starting programming from the high level. How out outline a program without regard for the language you implement it in, then you implement it. With this approach you don't even need full understanding of the language, you can get very far on a brand new language with a simple reference manual.

    16. Re:They still need to learn math and logic... by oh_my_080980980 · · Score: 1

      Because programming is a means to end not an end in itself. If all you are doing is focusing on a language, then you are teaching a language not programming.

    17. Re:They still need to learn math and logic... by oh_my_080980980 · · Score: 2

      And how many programs/app are pure crap...

    18. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      I went through a Computer Science program and I can assure you that "solid background" and "can make good software" are not as solid of a causal link as you think and are implying.

      Also, do you really care if some kid's LOGO app is "crap" because they don't know the formal logic behind XOR gates?

    19. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      I was thinking along the same lines.
      *This* guy is talking about the dumbing down of education? Well, I guess he has first-hand experience.

    20. Re:They still need to learn math and logic... by Graydyn+Young · · Score: 1

      Calculus is a good example of this. So much easier to understand once you've been coding for a while.

    21. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      >Why do they need this before they start programming? Why can't programming be an opportunity to learn these other things?

      Here's why learning off-subject can be useful:
      - Will pursue & absorb the 'lessons' naturally.
      - With no official lesson plan, they will be un pressured to meet 'goals' even if mentor swears there aren't any.
      - Will lower the mentor's need to focus on specifics & sneak-in a goal.

      In summary, learning off-topic (stress-free & goal-less), is actually a natural route for picking up traits that are useful in the inevitable goal-focused mindset of actual lessons. You start off saying "Do this to get that result" creates a structure-dependent student who will not think on their own.

      Don't you remember the Karate Kid and his "Wax On, Wax Off" lessons? Student was learning the hand-motions without the formal structure of a class. Then when it came time for class- the motions were natural & intuitive. Not instructor mimicry.

    22. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      Intelligent children of sixteen years or older should be able to learn programming.

    23. Re:They still need to learn math and logic... by Anonymous Coward · · Score: 0

      I learned BASIC on the TI-99/4A in 1983. I didn't yet have any math beyond arithmetic; indeed, learning BASIC taught me such concepts as variables, functions, and Cartesian coordinates, so when school started teaching them three years later, I was quite comfortable with them. I even remember getting curious about trig functions and logarithms, because they were in the manual.
      I don't think a lack of math background hurt my programming.

    24. Re: They still need to learn math and logic... by Anonymous Coward · · Score: 0

      Not everyone is a top-down learner. Part of what keeps me from enjoying math is all the functions I have to take for granted. Nobody taught me how sin(), cos(), and tan() work. I'm just expected to know it. Math is far more relatable to me when I'm doing it as part of programming. I have clear numeric steps and can dig into source code if I want to know how something works.

      Higher algebra, trig, and calc have too much shorthand, it means nothing to me if functions are black boxes.

      Had I been taught math from the bottom up, I might like it. Top-down works for subjects someone doesn't care about. They'll only dig for what they're interested in. If your goal is to *educate*, then you've got to start at the bottom, or at least close.

      I often wish the first machine I programmed was one I had built myself. It'd make me a better programmer.

      Sadly, it seems nobody really knows how to teach something and get lasting results.

    25. Re:They still need to learn math and logic... by KC0A · · Score: 1

      That's like saying children need to study musical notation before playing a single note, or study art history before taking a crayon to paper. The desire to create is primary. Everything else is secondary.

  3. 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.

    1. Re: Don't bother by Anonymous Coward · · Score: 0

      I belive computer programming, philosophy, logic, the large cap between historical facts and school books, and reading was the most important subjects I learned during my school years. Most of it was not teached at school. Programming togheter with logic gave me the understanding of society in general.

    2. Re:Don't bother by Anonymous Coward · · Score: 0

      This is modded as insightful? ... why?

      First off, more and more jobs will utilize at least the principles behind software, if not actual scripting or programming in some way. It's quite literally inevitable as automation becomes more and more prevalent.

      Second, since when does something need to be utilized in a future career directly in order to be taught? What the hell happened to the idea of a well-rounded education?

      Third, teaching critical thinking skills, which programming uses in abundance, is invaluable to *everyone*. The state of the US and the UK should show pretty obviously that critical thinking skills are absolutely forsaken in modern education.

    3. Re: Don't bother by s_p_oneil · · Score: 1

      You should've logged in. Assuming English is your primary language, that should've been modded Funny +5.

    4. Re:Don't bother by s_p_oneil · · Score: 1

      I agree with you in the way that I feel most kids don't need to be subjected to math beyond Algebra 1 (with Geometry being a maybe). However, while I feel it makes sense to get students through Algebra 1, IMO it makes just as much sense to teach them different methods of applied logic. An introductory programming course would show one way applied logic is useful, and an introductory law course would show another way. In high school let kids pick advanced math, basic applied logic, or both, and let them choose their college or career path from there. Mechanics will have to deal with increasingly computerized cars, real estate agents will have to deal with increasingly digital sales tactics, and both will likely have to deal with legal issues. Getting a bit more basic knowledge about each in high school will help them even if they don't want to become a programmer or a lawyer.

    5. Re:Don't bother by Anonymous Coward · · Score: 0

      This is modded as insightful? How about -2 Dystopic?

      yuck on you.

    6. Re:Don't bother by Anonymous Coward · · Score: 0

      I don't think this is true anymore. At our office programming to some degree is all over the place in non programming jobs. Data entry has macros that detect the pixel colors of areas and what to do depending on the color, graphics designers design multivariate tests for different images, web designers use templating engines. I figure the earlier in life someone can be introduced to simpler programming concepts, like loops and variables the better off they'll be. I think in today's world it's certainly as important as many of the "standard" courses in schools. Sure some jobs wont use it, but that's true of every subject.

    7. Re:Don't bother by Anonymous Coward · · Score: 0

      That's an ignorant perspective. Teaching programming is enabling, it gives an individual the ability to create their own services tailored to their own needs. Instead of forcing them to comply with whatever service providers policies exist.

      School should be providing a VM for every student, not a tablet. School should compulsorily be teaching programming just the same as reading writing and arithmetic. Because it will create an environment for innovation where the value is decided by individuals not corporate entities.

      Saying "Don't bother" is just being lazy.

                 

  4. One bit at a time... by __aaclcg7560 · · Score: 4, Interesting

    Teach them mathematics. Programming didn't make sense to me until I took algebra, learned about functions in general and the order of operations in particular. Not that you need mathematics to learn programming, but it does help in figuring out what is supposed to be done in what order.

    1. Re:One bit at a time... by Anonymous Coward · · Score: 1

      That's seriously just pushing the 'force them to work out context themselves' problem up a step. Maths is still normally taught in a way that is divorced from any specific content matter, but the reasons for this aren't expressed well to the students.

      Give them a *functional* goal to succeed at. Something they can actually identify as being, if not worthwhile in itself, a precursor to something worthwhile.

    2. Re: One bit at a time... by Anonymous Coward · · Score: 0

      Take a look at codebymath.com. Fun numerical puzzles for programming lessons.

    3. Re:One bit at a time... by Anonymous Coward · · Score: 0

      On the flip-side programming is can be a great and intuitive way to learn maths. I started programming in about grade 2 in primary school, so when I (formally) encountered many maths concepts later I found them quite easy to pick up. Programming is also a great way to learn things like formal logic which aren't typically taught in school (at least not in the strict way that they exist in programming).

    4. Re:One bit at a time... by Anonymous Coward · · Score: 0

      I did it the other way around.
      Having started programming way before learning algebra gave me a massive head-start when school finally got there.

    5. Re:One bit at a time... by antdude · · Score: 1

      I suck in math and programming. :(

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    6. 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.
    7. Re: One bit at a time... by Anonymous Coward · · Score: 0

      Why don't the schools teach math, programming, and logic as one single subject in primary school? Math makes little sense before it is applied and put in context.

    8. Re:One bit at a time... by Anonymous Coward · · Score: 0

      By teaching them programming you will be teaching them algebraic concepts that will make learning algebra a lot easier. I learned to program before I was taught algebra in school. Algebra was so simple by the time I took it.

    9. Re:One bit at a time... by AmiMoJo · · Score: 2

      I actually did programming before algebra, and then when we finally did do algebra it was quite familiar to me.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    10. Re:One bit at a time... by ls671 · · Score: 1

      But you are great with ant aren't you? Too bad ant is gradually being replaced with maven and gradle.

      --
      Everything I write is lies, read between the lines.
    11. Re:One bit at a time... by parkinglot777 · · Score: 1

      I'm sorry but I have to disagree with your post. Even though it would be easier to deal with Programming if one knows Maths, they are 2 completely different skills. You could still teach programming without using the need of maths. Loop (addition/multiplication) and condition (equality/inequality) statements are not Algebra but rather Arithmetics. Using program may actually help them understand how it works because they see what they learn to be used for.

      Off topic, I think Americans should teach kids (only kids) basic mathematics by teaching them how to use an abacus instead of calculator. The reason is that abacus helps them calculate simple maths (addition/subtract/multiplication/division) as images in their head. As a result, they will be able to calculate in their head when they grow up and it is much faster than a calculator.

    12. Re:One bit at a time... by drinkypoo · · Score: 1

      I was lucky enough to actually get some AppleBASIC in third through fifth grades. I know, that doesn't sound particularly lucky, but it's much luckier than kids who got none. But I went to a white kids' school in Aptos, CA, land of high property values and higher noses. In sixth grade we moved across town and I had to change to a middle school, and they had a room full of computers there where we mostly used LOGO. And there I learned of procedural programming, and fractals. And what evil little shits children can be when they're encouraged by a jock school.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    13. Re:One bit at a time... by Whibla · · Score: 1

      Programming didn't make sense to me until I took algebra

      Or, you know, use programming as one of the tools to teach algebra.

      Having multiple frames of reference makes learning both easier and more memorable.

      I still think LOGO is a great tool, especially if you can get (or make) a robot turtle. I'm not so enthralled by Scratch, if I'm honest, but maybe that's just me getting old...

    14. Re:One bit at a time... by 0100010001010011 · · Score: 1

      I learned to program on HyperCard by making animations in 4th grade. There was zero math involved in my end.

      I did learn to recognize patterns that became helpful later on. But you can most certainly introduce programming long before any formal math.

    15. Re:One bit at a time... by antdude · · Score: 1

      I care not for other colonies. Only my own. :P

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    16. Re:One bit at a time... by keith_nt4 · · Score: 1

      I also feel like I learned algebra much because of programming. Although in my case I didn't learn any programming from school. I finally decided to teach myself programming. Multiple years of math and pre-algebra and one C programming book taught more than any of them.

      --
      "UNIX is very simple, it just needs a genius to understand its simplicity." -Dennis Ritchie
    17. Re:One bit at a time... by tepples · · Score: 1

      I'm not so enthralled by Scratch

      Me neither, but in my case it's because Scratch relies on Adobe Flash Player. The HTML player is still marked as "upcoming" and on hold since the fourth quarter of 2014, despite iOS being unable to run SWF for a decade, Android only briefly ever being able to run SWF, desktop browsers making SWF click-to-play by default after having offered click-to-play as an option for years, and SWF facing its end of life in 40 months.

    18. Re:One bit at a time... by TeknoHog · · Score: 1

      I was always the "good at math" guy, but my interests were more on the engineering side, so I studied physics while dabbling with programming. As I got deeper into programming, I found all these ideas of pure math, and I went back to university for the math department. I didn't quite finish my secondary master's thesis as other life projects got in the way, but I feel much stronger a programmer now due to all the higher math (e.g. general topology, functional analysis).

      As a teacher, I've also struggled with the idea of teaching pure math theory first, vs. learning by doing. But if you look at school math, it's mostly learning by doing examples from the real world. Programming is one way of learning math by doing, and in many cases much better than the alternatives. Nevertheless, my programming still involves a pen and paper on the side.

      --
      Escher was the first MC and Giger invented the HR department.
  5. SSE4, AVX, AVX2, AVX-512, and a bourbon by Anonymous Coward · · Score: 0

    with loads of swizzle sticks.

  6. Teaching animal husbandry by Anonymous Coward · · Score: 0, Offtopic

    My day job is a veterinarian tech in charge of animal husbandry and it is very important job that ensures integrity of our food supply. From 9 to 5 in a assembly-like environment I use what looks like an oversized turkey baster to impregnate sows.

    A new school year is approaching and I wanted to ask what are appropriate method to teach animal husbandry for children of various ages. Specifically, 1) what species should be considered, and 2) are there are any self-guided animal husbandry websites that can be used by children to learn coding using guidance and help online?

    1. Re:Teaching animal husbandry by Anonymous Coward · · Score: 0

      Dude, I don't want my kids going near you.

    2. Re:Teaching animal husbandry by Anonymous Coward · · Score: 0

      And I don't want my kids anywhere near programming, so lets call it even?

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

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

    1. Re:Don't by Anonymous Coward · · Score: 0

      Teach them to program. And how to fillout TPS reports! We pay too much for code monkeys.

      -- Your friendly CEO

    2. Re:Don't by i.r.id10t · · Score: 1

      Critical thinking, lots of word problems in math class. Problem solving in general, given a set of tools to solve them with....

      --
      Don't blame me, I voted for Kodos
    3. Re:Don't by Anonymous Coward · · Score: 0

      Amen brother or sister.

    4. Re:Don't by gweihir · · Score: 1

      Indeed. We have far too many of those. What we need is good engineers (also in software), but most people cannot become that.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Don't by Anonymous Coward · · Score: 0

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

      OTOH, if everyone was taught how to do the simple stuff in school everyone who wanted simple stuff done would do it themselves.
      Without the need for code monkeys the profession would disappear and people would only want to hire dedicated programmers for real stuff.

      And yes, sometimes people only want shit done and doesn't care what the code looks like. They then hire a Java programmer to write a program that could have been done in excel macros.

    6. Re:Don't by Togden · · Score: 1

      Too many kids are taught subjects but not how to learn. Kids should be taught how to deconstruct skills and knowledge, and how to test their own knowledge to give them confidence in what they have taught them selves. This would enable kids to pick up absolutely any programming language faster, as well as so many other skills.

      After that, I think we should introduce kids to at least one main stream programming language at the time of their education. I think most people don't get into coding just because of this initial, quite high hurdle, even though it takes only a few hours to learn.

    7. Re:Don't by benlwilson · · Score: 1

      Code monkey loves...

    8. Re:Don't by luis_a_espinal · · Score: 2

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

      Because apparently teaching them to think and teaching them programming are mutually exclusive or that there is no way to use programming as a way of thinking /rollseyes.

    9. Re:Don't by baerd · · Score: 1

      Bingo, teach them critical thinking. So much of school is rote memorization or simple repetition, there's got to me some way to teach critical thinking even in children.

      --
      I wish I had a lawn.
  8. AI by Anonymous Coward · · Score: 1

    If our AI dreams come true then no need to program in the traditional sense just instruct the computer what you want it to do.

    Honestly programming is like accounting, you don't need to teach it unless they are interested. The problem with most teaching is it does not capture the interest so laptop or none if a kid is interested they will do it. If I think back to my schooling there were things I was more interested in and things I was less interested in guess which ones I was good at. So same IQ, same background knowledge and level of education still in physics I got a really good score and biology very low.

    Think of things you were interested in and see if the rule is true for you? How to teach is to get them interested (what ever the subject)

    1. Re:AI by jimmydevice · · Score: 1

      I can't see how asking a machine to design something is any different from programming. You have a idea and plan, The machine can't read your mind.
      You will be fixing your fuzzy specs through endless iterations of "change that".

  9. planning and problem solving by Anonymous Coward · · Score: 0

    Don't pitch learning to program as a solution to anything. It is not. Programming is a specific form of planning and problem solving. Everyone will benefit from learning to plan and problem solve in general. Teach planning and problem solving with all sorts of general life issues first. Computer programming should only be taught to those who get good grades in planning and problem solving.

    Also -
    Typing is not programming. Using Word is not programming. Making videos is not programming. Using paint is not programming. None of those should be covered in a programming course.
    Double Also -
    You don't need full time access to a computer to learn to program.

  10. Online programming web sites by omichel · · Score: 1

    Sites like https://robotbenchmark.net/ introduce for example Python programming to beginners with challenges based on an online 3D robot simulator and a competition framework. That's very appealing to schoolchildren.

    --
    -Olivier Michel http://www.cyberbotics.com
  11. 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.
    3. Re:Why bother? by Anonymous Coward · · Score: 0

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

      My first language was BASIC, but I didn't know what it was doing behind the scenes and I wanted to make graphics that scrolled for a game. So, I taught myself x86 Assembly Language. Learning about registers and memory addressing, etc. It was all very eye opening. I gained an appreciation for all the work BASIC and C (my next lang) were doing under the hood.

      To this day I still program in x86 assembly. In fact, most desktop PCs still boot to 16bit Real Mode x86, and you can install DR DOS on them too. I use FreeDOS and older PCs with parallel ports now to teach teens introductory robotics instead of Linux / Arduino. The parallel port is awesome for teaching -- no serial protocol nonsense in the way, just read and write bits of data directly to the port. MS DOS / DR DOS or FreeDOS lets you write directly to the port rather than using a pain in the ass kernel module.

      Bonus, when (not if), the kids fry the MOBO I have dozens of old PCs donated to replace them. It's the 2nd R of Reduce, Reuse, Recycle.

      I start with a diagram on the board of memory as a grid of cells, and pass out graph paper with registers marked out. We go through a few steps "running" a simple program and loop on paper / the chalk board, explaining how instruction OP-codes work. Just that one step, the visual representation of the memory and moving values around into different boxes and registers, and something just clicks with kids like no abstract programming language does. Once they get a sense of how that works, the magic black box is permanently dispelled and they go off to do amazing things.

      We don't write code ONLY in Assembly on DOS, just the introductory lessons. Then when we get to embedded SOCs and C they really appreciate it. Some of the more astute ones will ask why there's a special "shield" board and RS232 serial modem just to make the blinky lights you can do on older HW by soldering a resistor to a LED and sticking it in the printer port. I always tell them, "Technology doesn't just advance forwards, it goes upside down and backwards too. You'll learn more about that if you take the 'Research and Development' elective next year."

    4. Re:Why bother? by Anonymous Coward · · Score: 0

      Almost forgot to note: x86 Assembly Language isn't obsolete... Learn the few popular machine codes today, and you're set for life.

    5. Re:Why bother? by Drethon · · Score: 1

      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.

      Such a foundation of programming based on logic, rather than a specific language? I don't approach any program based on how to best write it in one language. I approach programming as what are the operations I need to convert the given inputs to the necessary outputs. Then I'll look at what the language supports for data structures and other methods to simplify development. I've written programs in c like languages for years and I always have to look up specific implementations because I don't memorize languages, I figure out the best abstract constructs and then look up how to implement those.

      Real programming is not impacted by what language it works, just like real science doesn't care what language you speak.

    6. Re:Why bother? by oh_my_080980980 · · Score: 1

      RTFA:

      "I wanted to ask what are appropriate programming languages for children of various ages. "

      The poster was asking for a programming language.

    7. Re:Why bother? by PmanAce · · Score: 1

      Why do you think they need to use a new programming language? Why not use a teaching language like Pascal, basic, logo, etc?

      --
      Tired of my customary (Score:1)
    8. Re:Why bother? by BarbaraHudson · · Score: 1

      You obviously didn't read the question. This has nothing whatsoever to do with high school - we're talking specifically about an 8 year old and a 12 year old. When's the last time you saw an 8-year-old attending high school? To that age group, the most important events of the school day are the recess bell, the lunch bell, and the end of school bell.

      Also, a lot depends on the teacher - and most teachers are shit when it comes to inspiring students on subjects that are generally considered boring, like history. When I was 10, I loved reading historic biographies - Madame Curie, Best and Banting, Eisenhower - but I was always on the edge of failing history because it was not really about people, just dates and events. Reading books like "Pillars of the Earth" (no, I didn't watch the subsequent movie - there is no way that it could do the book justice any more than the Time Machine or War of the Worlds movies could properly portray the books) brought the period to life.

      And I certainly didn't learn to play the guitar, synthesizer, etc because of boring music classes that we all couldn't wait to get out of.

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

      Hell, no, it's (x86 assembler) certainly not obsolete. I agree 100%. Always better to know what's going on under the hood. :-)

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

      The earlier you learn multiple languages the easier it will be in the future to pick up new ones.

      Python and Matlab have long shoved out the remnants of HyperCard, AppleScript and Commadore 64 programming that I learned long ago. But picking up Python took all of a few weeks on Code Academy learning the syntax.

      And I learned a lot of lessons back then. Like a simple syntax error doesn't mean give up and stop. Way too many of my peers hit a small roadblock and throw their hands up.

    11. Re:Why bother? by BarbaraHudson · · Score: 1

      And how does any of that relate to the stated goal of teaching an 8-year-old how to program, as per the original question? It doesn't. They have a lot more things to learn before they ever get to that point in their lives. Teaching them programming would be a bit more useless than teaching them welding at that age (but I admit that the 12-year-olds would have a blast with an arc welder or a set of oxyacetylene torches, and learning important safety lessons and discipline and respect for their tools that will serve them well in later life no matter what they get into is always a good thing). And they'd have a useful skill, because we're still not at the point where robots can do a good one-off welding job.

      But neither course of action is advisable for 8 to 12-year olds - they have many more gaps in basic knowledge that need to be filled in first. If they want to learn to program, they can certainly learn on their own, same as music, same as art, same as rock hunting, same as lots of things that people still learn outside of school because they want to, and can find others to help them if and when needed, but don't end up expecting to be spoon-fed all the answers.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    12. Re:Why bother? by Anonymous Coward · · Score: 0

      Because you need to choose a language. But, you do realize that changing languages is fairly trivial to someone who understands the underlying concepts, right? The lessons don't because "irrelevant" simply because the language changes. My first language was "QBasic", and I never used it again after that class, but the basic premise of programming created the foundation by which I could learn everything else. This complaint is quite pointless.

    13. Re:Why bother? by Drethon · · Score: 1

      Thinking logically and understanding processes is something that isn't taught well enough at any age. As a developer one of my biggest problem is the people giving me the requirements to develop from almost always miss very important conditions of what the software needs to do. The solution is almost always to guess what they want and have them come back and tell me I got it wrong.

      To me there is no age too young to start to teach students how to create a process (not just how to follow it). Understanding all of the steps necessary to do something is a useful skill for all points in life. This to me is how you write a program before you find a specific programming language and should form the basic for learning to program. This skill can apply to nearly everything a person can do.

    14. Re:Why bother? by evolutionary · · Score: 1

      Simple answer to that question: To teach children how to break down a process. I learned programming concepts before I learned about other things. Coding CAN teach analytical skills if people don't just copy and paste. Of course when I learned programming from Logo, Basic and Pascal you couldn't use the Internet to look everything up. Just had to try and break down the problem. I've taught children as young as 6 programming concerts and others are trying to teach the basic concepts at a younger age, like a game, which I think is rather brilliant. you can teach programming through board games.

      https://www.kickstarter.com/pr...
      https://en.wikipedia.org/wiki/... (yes. believe it or not it CAN teach pattern recognition which is good for programming and other things)
      http://home.bloxelsbuilder.com...
      http://codemonkeyplanet.com/ (this one I haven't tired but it looks FUN
      A simple answer besides giving more ideas of how, is because you don't have to be a math wiz to be a great programming. It's about problem solving. I've always seen it as a a MacGyver type of affair: see the problem use what you have, make it work. Math can help, but not essential. Problem solving skills and being able to break a task down is THE most important part of programming, and that children should be developing as fast as they can for everyday life.

      Oh, for video games that teach programming:

      https://codecombat.com/
      https://checkio.org/
      https://vim-adventures.com/
      http://www.cyber-dojo.org/
      https://lightbot.com/
      http://importantlittlegames.co...
      https://www.gog.com/game/space...
      https://www.gog.com/game/human...
      http://www.machineers.com/#_=_
      http://www.rpgmakerweb.com/pro... (this is more for making RPG games rather than a game, but students from 11+ seem to like it, I specifically link to the "XP" version because the others seemed less intuitive for students)

      For aspiring writers to do their craft and do/learn programming:

      https://renpy.org/ (specifically for graphic novels, the rest are all text only)
      http://textadventures.co.uk/sq...
      http://textadventures.co.uk/qu...
      http://inform7.com/ (for zork fans especially)
      http://www.tads.org/
      https://twinery.org/

      I've used many of these to help in teaching programming to children of various ages. Hope you all find this list useful.

      --
      "Imagination is more important than knowledge" - Einstein
    15. Re:Why bother? by evolutionary · · Score: 1

      It's shouldn't be about a specific language, but about breaking down tasks into logical reusable steps. Most real programmers don't get bogged down in specific languages as we often have to switch depending on tools/libraries/environment available when we arrive on the scene

      --
      "Imagination is more important than knowledge" - Einstein
    16. Re:Why bother? by 0xdeadbeef · · Score: 1

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

      You whine about "real knowledge" and "analytical skills" and yet you're one of those Paula Bean types who thinks the language used matters.

      Why are there so many insecure programmers in this thread (at +5 no less) who are threatened by children learning programming? It's not like this is a boot camp scamming people. It's teaching children something fun that most of us started learning at the same age or younger.

    17. Re:Why bother? by angel'o'sphere · · Score: 1

      Spelling, the ability of it or the lack thereof does not work like that.
      Most astonishing is that the english speaking people are unable to acknowledge that english is an extremely difficult to spell language, compared with Italian, Finish, German or Japanese or Thai.

      I for my part are what I would call 'a superiour reader'.
      You can make a very long or medium long sentence which is supposed to contain the word 'rain' and if you typoed or autocorrected it to 'reign', I would never notice. I always would read it as the supposed 'rain'.

      Obviously it is not the same for you, otherwise you would not rant about your perceived disability of other people to spell correctly.

      Just because I have a typo somewhere does not mean I don't know how the word should be spelled. OTOH, there are plenty of words, where I don't know how they are spelled, so the spelling correction hopefully underlines them red ;)

      In ancient times there was no agreed 'we spell like this' way of writing. It was more important WHAT you wrote than HOW you spelled it.

      I still adhere to that idea. And luckily there are countries, like France, where it is widely accepted that spelling is dam difficult in some languages.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    18. Re:Why bother? by BarbaraHudson · · Score: 1

      The earlier you learn multiple languages the easier it will be in the future to pick up new ones.

      This is the reason for teaching new languages to the target group (8 to 12 year old kids) such as French or Spanish at a young age. Plus, of course, that people who speak more than one language have lower rates of dementia.

      No computer language has been proven to offer both the immediate and long-term benefits that learning a second human language does. And knowing a second language opens far more doors than knowing a computer language ever will, both socially and economically. And this will only become more true as white unilingual Americans lose their majority status.

      Those kids will need to know Spanish if they want to advance in their careers. Knowing python or matlab or javascript is a lot easier to pick up, and can be done at any age, if they need it (but most people won't, just as today most people don't need to know how to code).

      Here's the thing - nerds/geeks are not special, just as being a coder isn't special. It's become more a door to a crappy career with crappy working conditions, crappy bosses, crappy projects, and a crappy end-game where you have to start over from scratch in another field well before retirement age.To use a comic book analogy (since geeks and nerds should understand that) the golden age is long gone, and so is the silver age. The reality is that if you're reading this, you're more likely to be closer to the end of your career than your beginning. Welcome to the realities of ageism, where Jack Weinberg's "never trust anyone over 30" has become "never hire anyone over 30."

      We never thought that the 21st century would turn out like this ... but it is what it is.

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

      That's pretty damn short-sighted. Let them learn how natural processes work (science) before they try to create their own. 8-to-12 year olds (the target group) are better served getting the basics right first. If they don't understand how the world works, how do you expect them to design programs that are at all relevant?

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

      Children in the target group (up to 12) can also learn logic and processes from learning the basics of chemistry, biology, physics, even history and human languages - though this should be continued to graduation from high school at the very least. This will give them the well-rounded background needed to survive in the coming world, where nobody gives a fuck if you can code, because the simple stuff is automated away or already done well enough that an off-the-shelf solution is not just good enough, but the standard, and the hard stuff is done by a very small minority - who also need to be well-rounded even to begin to define the problem adequately.

      Let them learn about the world before trying to shove skills that will be useless without the most basic background knowledge. Anyone who has an aptitude for coding can pick it up - but most people won't. Most people are, by definition, stupid, or at best, just average. If you've ever managed people, you know that most people are lacking initiative, insight, and ingenuity. Sure, they can learn the stuff you spoon-feed them, but they really won't be able to extrapolate from that unless you continue to hand-hold them and give them ever more gold stars. And those who won't need hand-holding will learn it without the pablum.

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

      You are an example of what I mean - you can't even understand simple sentences. I never said that the language used matters - but knowing more than one human language has many benefits to the individual over the course of their lifetime, whereas knowing 20 computer languages just means that 18 will be obsolete and the other two on their way out - same as always.

      White unilingual english speakers will be the minority in the US in 2043 - when those 8-year-olds will be 34. They won't be fit for management in most positions if they don't learn at least one other language - spanish is a good start. And they also won't be fit for any customer-facing jobs (forget about being commercial or industrial account managers). Plus it protects against dementia. Knowing a couple of computer languages doesn't.

      Contrary to your supposition, nobody is threatened by children leaning programming. We just think it demonstrates fucked-up priorities. Most of those children will never need to code in their life - same as today. All of them will benefit from a well-rounded education that teaches the basics, you know, stuff like reading, writing, and arithmetic. History, so they recognize the bs politicians are pushing out for what it is, and the consequences of being complacent. Geography and geology, so that they don't point to Australia when someone asks them to point out the USA on an unmarked globe, and they can understand the consequences of global warming, as well as not being so stupid as to dismiss it.

      Whether most of the people on this site learned programming at the age of 8 is neither relevant nor proven. Most of the people don't use this site. Just as most people will never need to code - and this will become even more true in the future.

      This is just the whole "get computers and the internet into schools to make our kids more educated" over again. It didn't work then either. Otherwise, with the prevalence of smartphones, the average 12-year-old should be an Einstein by now, instead of not knowing how to spell or make change or understand percentages even after finishing high school. Instead, we have Facebook making people mentally ill.

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

      Where do I start? I guess the beginning is as good a place as any ...

      Spelling, the ability of it or the lack thereof does not work like that.

      Try to argue that your typo-ridden grammar-deficient job application deserves equal consideration. Also, in code, both spelling and punctuation need to be accurate. Variable names with typos may compile if there are valid variables that just so happen to match the typo in question so the compiler doesn't freak out, but your code is broken. Same with languages that auto-vivify any variable that hasn't been encountered before. Have you never debugged any code? Sure sounds like you haven't.

      I for my part are what I would call 'a superiour reader'.

      But shit at grammar AND spelling. 2 mistakes in a short sentence bragging about your superior skills. What a fucking joke.

      And the grammar failure in the next sentence. Try ... you might be able to find it if you look long enough.

      But this:

      Just because I have a typo somewhere does not mean I don't know how the word should be spelled.

      So you're just lazy. Or incompetent. Or both. Let's look at the rest of the sentence to help decide which:

      OTOH, there are plenty of words, where I don't know how they are spelled, so the spelling correction hopefully underlines them red ;)

      Another couple of mistakes. I'll take the most obvious - you're the guy who is always screwing up brake|break, rain|rein|reign, ant they're|their|there, but because it passes spell check, you don't know you sound like an idiot.

      In ancient times there was no agreed 'we spell like this' way of writing. It was more important WHAT you wrote than HOW you spelled it.

      We're not living in "ancient times" where the majority of people couldn't read. Also, most of them couldn't write anything, important or otherwise, so your point is kind of pointless on both grounds.

      And then there's this:

      I still adhere to that idea. And luckily there are countries, like France, where it is widely accepted that spelling is dam difficult in some languages.

      You show your ignorance. France has an official way of spelling, as decided by the Académie Français, and your spell-check screwed you over yet again - it's damn - dam is something built to restrict a river.

      The french are VERY fussy about their spelling. Obviously you've never dealt with them. I have - many times. Even a missing accent will often get a nasty reply that deals ONLY with the missing accent, not the original topic, because if you can't spell, they dismiss anything you have to say as irrelevant..

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    23. Re:Why bother? by angel'o'sphere · · Score: 1

      You seem not to get it, so I repeat it:

      I for my part are what I would call 'a superiour reader'. (which btw has no grammar error, I could place a comma though ...)

      I'll take the most obvious - you're the guy who is always screwing up brake|break, rain|rein|reign, ant they're|their|there, but because it passes spell check, you don't know you sound like an idiot.
      Actually, no.

      So you're just lazy. Or incompetent. Or both. Let's look at the rest of the sentence to help decide which
      No, I'm neither. I simply don't see spelling mistakes. That is all. My brain makes the required corrections to parse other people and my spelling mistakes automatically.

      And your brain always stops and some background process yells to your consciousness: 'what an idiot, can you beliefe that mistake?'

      My brain does not stop, it just reads it as it is meant to be read, until I end at the sentence and realize: oooops, that did not made any sense. Then I have literally to parse the sentence again letter by letter.

      My point is: some eyes/brains work like this and some like that.
      As long as you have not found a way how to teach spelling, and writing, in a way that actually helps people to spell correctly, you simply do't qualify to rant about that topic!
      Bold by intention, could not double-bold the word "teach" in the middle.

      It is always easy to find other peoples mistakes. Sometimes it is even easy to impress other people by showing them you can do it better. But teaching other people to avoid those mistakes is hard.

      As long as you cant: shut the fuck up.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    24. Re:Why bother? by thegarbz · · Score: 1

      RTFA right back at you: "How can you teach programming to schoolchildren?"

      Context: it fucking matters.

    25. Re:Why bother? by BarbaraHudson · · Score: 1

      You seem not to get it, so I repeat it:

      I for my part are what I would call 'a superiour reader'. (which btw has no grammar error, I could place a comma though ...)

      Of course it has a grammar error. In this sentence, "You" is singular, "are" is plural. It should have been "I for my part am what I would call "a superiour (sic) reader", or preferably "For my part, I am a superior reader" (agreement in quantity and no spelling mistakes). Don't try to tell me that your spell check passed "superiour" yet again. That is NOT superior spelling.

      Your excuse:

      I simply don't see spelling mistakes. That is all. My brain makes the required corrections to parse other people and my spelling mistakes automatically.

      And your brain always stops and some background process yells to your consciousness: 'what an idiot, can you beliefe that mistake?'

      My brain does not stop, it just reads it as it is meant to be read, until I end at the sentence and realize: oooops, that did not made any sense. Then I have literally to parse the sentence again letter by letter.

      My point is: some eyes/brains work like this and some like that.

      So you admit you're not able to do, with your "superiour (sic)" reading skills, what the majority of the population can, even though half the population is below average IQ, even with the help of a spell checker? And you want me to accept that excuse? I'm not nearly as stupid as you think, nor am nearly as stupid as you've already demonstrated repeatedly by trying to defend the indefensible.

      Also, you obviously are incapable of debugging code because you admit your brain won't see typos, which means you aren't capable of writing proper code, so what the fuck are you doing commenting on coding? You. Are. Not. Qualified. Period.

      As long as you have not found a way how to teach spelling, and writing, in a way that actually helps people to spell correctly, you simply do't qualify to rant about that topic! Bold by intention, could not double-bold the word "teach" in the middle.

      It is always easy to find other peoples mistakes. Sometimes it is even easy to impress other people by showing them you can do it better. But teaching other people to avoid those mistakes is hard.

      As long as you cant: shut the fuck up.

      What a load of sorry excuse-making bullshit. I'll turn your stupid logic fail right back at you - as long as you have not found a way to properly use a spell checker, you simply don't qualify to rant about that topic. Also, your original argument also holds against you - as long as you haven't found a way to teach spelling and writing in a way that actually helps people to spell correctly (which you obviously have not), you simply don't qualify to rant about that topic. By your own words, you have not found such a way, and by your own words you are not qualified to comment on the subject.

      It is always easy to find other peoples mistakes. Sometimes it is even easy to impress other people by showing them you can do it better. But teaching other people to avoid those mistakes is hard.

      You stated one method yourself - the spell checker - but you can't even use that properly. You're, at best, a joke. At worst, an example of the Dunning-Kruger effect. Click on the linky, you probably can't spell it properly.

      The Dunning–Kruger effect is a cognitive bias wherein persons of low ability suffer from illusory superiority, mistakenly assessing their cognitive ability as greater than it is. The cognitive bias of illusory superiority derives from the metacognitive inability of low-ability persons to recognize their own ineptitude. Without the self-awareness of metacognition, low-ability people cannot objectively evaluate their actual competence or incompetence.

      And when you write:

      As long as you cant: shut the fuck up.

      I say "Right back at you, foolish hypocrite."

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    26. Re:Why bother? by angel'o'sphere · · Score: 1

      Ah, that are versus am is interesting.

      'superiour', is correct british english. I live in Europe, we learn the queens tongue.

      Secondly: I typed that on my iPad, which for some reason randomly drops spelling correction. (today/right now it works)

      The rest I only glanced over, and I spare me an elaborated answer.

      I know how and why I make spelling mistakes, and I know that there is no way to fix it for me.

      You are regarding spelling mistakes simply not well informed or educated.

      Sorry, being angry about other peoples spelling mistakes is the most retarded thing you can do.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    27. Re:Why bother? by BarbaraHudson · · Score: 1

      So, you claim the French aren't fussy, to someone who lives in Québec. You have multiple spelling mistakes, and claim that English is a hard language, and yet it's simple compared to French, where objects have a gender associated with them (unlike English). And accents. If kids in grade school can learn to speak, read and write both, what's your excuse for not being proficient in either?

      "But my brain doesn't work that way." Lame excuse-making, from someone who, as I pointed out before, is commenting in a post about computer coding, who obviously CANNOT CODE, because compilers and runtimes are even more fussy than the French when it comes to both spelling and punctuation.

      You didn't even know what I was talking about when I mentioned spelling errors wrt auto-vivified variables in scripting languages, so I'll give you an example:
      $color = "red";
      # a bunch of intervening code, then later:
      $colour = "blue"; #ERROR, creates a new variable named "colour" and assigns "blue" to it. "color" was not changed.
      # more intervening code, then later:
      printf("%s\n", "The color of the light is $color\n"

      Output: The color of the light is red.

      If you can't see erroneous spellings, you can't code. But we already know you can't. So why are you even bothering to continue commenting in a post about teaching coding when you can't? Especially after telling me that if I can't teach spelling, I have no right to comment about spelling, where it's pretty damn obvious that you can't teach spelling (and you don't know if I can or not)? I am far better qualified to teach spelling than you, because I can see the mistakes without a spell checker, and point them out. You can't even see them with a spell checker - as your using "dam" in place of "damn" made obvious.

      As for the spelling of superior, spelling it with a "u" is obsolete, an archaism. Use of archaisms is an affectation, and a pretty stupid one, because trying to look more intelligent by using archaisms just shows how you just don't get it. The French version has a "u", but no "o". Example: La Cour Supérieure du Québec. It's as stupid as people who pronounce schedule as "shed-ul" and not "sked-ul". Or "fil-um" for "film", or "nukular" for "nuclear."

      And no, the most retarded thing you can do is to debate spelling when you admit you can't spell, in a thread about coding, where it's obvious you don't understand jack shit about the need for accurate spelling in code.

      Let me emphasize again, this article is about coding. If you can't see mistakes and inconsistencies in variable names, you can't code. There is simply no way to get around that. Plus, your spelling and grammar are a huge barrier to advanced employment, or even something as simple as a receptionist. Now I've worked as a coder, and for a short time (after transitioning) as a receptionist and office manager, so I have seen first-hand that those students will be judged by their spelling and grammar. I've gone through enough resumés when we were looking for more coders to know that bad spelling gets your application shit-canned. Receptionists don't forward job applications full of typos for any but the most menial of jobs; programmers just throw them in the reject pile because we know you can't code if you can't spell consistently, and you sure as hell can't debug.

      And for those wondering about the English spelling of resumé, the first "e" is soft, so no accent, the second one is pronounced "aye", same as an "e" with an accent in French. Think "Mel Tormé" ("tor-may"). FYI: In French it's called a Curriculum Vitae, not a resumé (which is why we also refer to it as a CV).

      And this ends another episode of "stupid reasons why we spell things the way we do". Sorry, I'm just subbing for Sheldon Cooper. He'll be back whenever he decides to return to planet Earth. :-)...

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    28. Re:Why bother? by angel'o'sphere · · Score: 1

      I have no excuse.
      I simply don't know how to see spelling mistakes and how to avoid them.

      Your gender example makes no sense. Most (all?) european languages have a gender. For a native speaker that is no problem.

      For foreign language learners it often is, as genders often are swapped, e.g. cat in german is female, in italian, frensh, spanish it is male. Just vice versa for dogs.

      If you can't see mistakes and inconsistencies in variable names, you can't code.
      Of course I can. I do it since 30 years, and 99% of my 'coding' I do in strong typed languages that use a compiler.

      Sorry, your ranting about spelling and typing makes you look like an idiot.

      Why don't you read a book about it?

      And your explanaition about resumé is wrong, and it is spelled wrong, it should be résumé.
      I leave it to you to figure what an 'accent aigus' is about and what the difference to an accent grave is :)

      As for the spelling of superior, spelling it with a "u" is obsolete, an archaism.
      It is not, it is brittish english. We learn brittish english in school. And on my world wide travels I meat more brits, aussies, new zealanders than americans. And like myself: they prefer the Queens english over yours.

      My english applications to jobs where always ranked very high. Because one of the first lines in it are: 'Born: Germany', Languages: "German (first language), English (sevond language, fluently), Italian/Spanish/French (can read and comprehend), Japanese (somewhat)"

      So no one â" except you â" is expecting perfect spelling or grammar from a foreigner.

      However you were right with the I versus are/am example, so in future we will refer to us as We. Oh, We forgot to mention the plentyfold of other langauges we can read and understand a bit, like Chinese and Greek, now working on Thai.

      FYI: In Japanese e.g. it is close to impossible to make spelling mistakes, except by accident, which would probably happen to Us quite often. Same in Thai.

      We hope we would not bore him/her. Her name sounds female, but we got told many males maskerade as females on the internet. Btw. would she prefer the phrase 'in the internet' or is it rather 'on the internet'? In german it is 'in the internet', just to amuse her a bit.

      And now We have to go back to coding and put some plentyful amount of spelling mistakes into the doc comments, for the amusement of my finish, danish, swedish and french colleagues (oh, that was a hard word).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    29. Re:Why bother? by BarbaraHudson · · Score: 1

      The gender of objects in some languages makes perfect sense in this case. You can't even spell properly in a genderless language, and yet children in other countries get it right or they don't graduate.

      As for resumé, the common form in English is stupid to anyone who speaks French. The first accent is wrong, because it's not pronounced in English as if it were a French é. Those of us who speak, read, and write French can tell the difference - those who just learn it in high school can't, so they copy stupid mistakes by non-native speakers when transliterating. Like you do.

      Your defense of not even being sufficiently fluent to recognize the difference between "dam" and "damn" because you depend on a spell checker is a joke. Same as native English speakers who don't know the difference between brake and break, their, they're, and there, etc.

      And shadowing variables by accident also happens in strongly typed languages, especially with multiple header files. Being able to spot typos is a necessary skill, and one you admit you simply don't have. Good programmers also make good proof readers because mistakes just jump out at them, since part of the job is a necessary ability to spot such mistakes in code. So go continue to make mistakes, just like the one where you said that French is a language where spelling isn't important - I already proved you.were so full of shit on that one.

      The difference between the French grave, acute, cirumflex, etc. accents are taught here in the earliest grades in English schools. No need for me to figure it out - I already know it, and obviously I can hear the difference between an accented and unaccented character, whereas you can't (same as most native English speakers, which is why they put one on the first e in resumé, even though the first e is NOT pronounced as if it has an accent - certainly not in an English transliteration.

      In short, you are not as fluent in French as you claim to be, which leaves plenty of doubt about your other claims, especially considering how provably wrong you are on many of them. Also, you need to learn what an archaism is. We have archaisms in pretty much all languages, including British and American English and the various dialects of French.

      When writing principally to Americans, I spell it "color". When writing to non-Americans, I spell it "colour". In code I just #define one as being equivalent to the other, so it doesn't matter which spelling is used (a trick I first came across decades ago in the Clipper header files, and which I appreciate for the sake of simplicity and avoiding errors, and for accommodating people's differences). That doesn't mean I'm going to use obsolete terms. That you take pride in it makes my point that it's just an affectation or trying to cover up your admitted inability to spell consistently.

      And FYI, it's "her". My birth certificate states "Female". So does all my other ID, government and otherwise, my voter registration, my universal health card, my pension plan, my bank account, my lease, etc. And unlike you, I don't hide behind a nym - that's my real, legal name I post under (just missing the space between first and last names, and my middle name). It's also the same name on my marriage and divorce papers, and my kid's birth certificates. Try posting under your real name for a change if you want to be seen as standing behind what you say. Anything else is pretty lame, just one step above posting anonymously. It's like James Damore lying about having a PhD from Harvard, working for google, and not realizing how the Internet works, and that lies like that are just a quick search away from being exposed. He wants to sue google for firing them? He lied on his job application - that's as good a reason as any to fire him. That's both the beauty and the risk of posting under your real name - accountability. Might as well get used to it - nothing on the Internet is truly anonymous any more.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    30. Re:Why bother? by angel'o'sphere · · Score: 1

      Either you write it french or you write it english.

      First e without accent and second e with, is in both languages wrong.

      It might be accepted in USA to have accent at the end, however it makes no sense.

      You obviously don't know the differences between the three french accents, otherwise you would write resume correctly and your explanation would not have been wrong (sorry can not type the e with an accent on my iPad)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    31. Re:Why bother? by BarbaraHudson · · Score: 1

      Look it up, stupid. First e without, second e with accent is listed as an accepted spelling. It's also the only valid one since the word "resume" in any spelling is slang in French - it's franglais. There are more than 3 accents in French. Or did you not learn to count yet? Obviously you don't know how to write it (or at least write it properly), or you would have known that.

      As for entering accents on an iPad, it's just a bit more complicated than entering them on an Android device. After the welcome screen, it will load the appropriate results - #1 is the one you want.

      Now, WTF am I doing having to teach this "genius" how to use an iPad??? Simple - it's my good deed for the day. And you can't really expect too much from Apple fanbois.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    32. Re:Why bother? by Anonymous Coward · · Score: 0

      > It might be accepted in USA to have accent at the end, however it makes no sense.

      The only reason it's there is so people don't read it as "re-ZOOM."

  12. 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.

    1. Re:BASIC by midifarm · · Score: 1

      I learned BASIC on the new TRS-80. IT was a good thing to learn.

    2. Re:BASIC by Mal-2 · · Score: 2

      It's a bit clunky and rough around the edges, but BASIC is still an option. Knowledge of FORTRAN and Pascal does me absolutely no good whatsoever these days, but I can still keep chugging away in BASIC. QB64 has OpenGL and OpenAL support, and will load and play common audio formats like MP3 and OGG without having to link any libraries. (The pre-compiler takes care of that.) That means even an 8-year-old can make a game that has graphics and sound.

      I'm not saying this is the best option. It probably isn't, unless it's the only usable language the teacher knows. But at least it still exists.

      --
      How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
    3. Re:BASIC by Anonymous Coward · · Score: 0

      The good things about BASIC are the simplicity and interactivity. You don't have ten lines of code to start displays or sounds ; CIRCLE 10,10,10 does just that. It encourages experimentation ; type stuff, see what happens. However well wrapped in an IDE a language is, it doesn't have that.

    4. Re:BASIC by s_p_oneil · · Score: 1

      I agree with the sentiment but disagree with choosing BASIC. I learned it back in the 80's, completed a CS major in the first half of the 90's, and have gone through over 20 programming languages. I would choose either Ruby or Python, and I would simply avoid the more advanced topics the kids aren't ready to learn. You start by teaching them simple programs where kids don't define functions or classes. Later on you add basic functions, and show them why they're great.

      Example syntax (sorry, I just really get a kick out of that 10.times syntax):

      array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12]
      10.times {|i|
          10.times {|j|
              array[i], array[j] = array[j], array[i] if i < j and array[j] < array[i]
          }
      }

      Alternative syntax:

      array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12]
      for i in 0..array.size-1
          for j in 0..array.size-1
              if i < j and array[j] < array[i]
                  array[i], array[j] = array[j], array[i] # Swap elements i and j
              end
          end
      end

      Output:

      => [1, 3, 5, 7, 7, 10, 12, 15, 18, 20]

    5. Re:BASIC by angel'o'sphere · · Score: 1

      Now I pitty the guy who has to explain why array indicies start at zero and you count to size - 1;

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:BASIC by s_p_oneil · · Score: 1

      Meh, I would just tell them 0 makes more sense than 1 at the hardware level, that the details are not important for an intro class, and that most programming languages are 0-based and it's a very minor quirk that's not hard to get used to.

      IMO an intro class should assume that the vast majority of students will NEVER take another programming class while attempting to interest as many kids as possible (without attempting to punish kids who aren't that interested in it). In that light, it should lightly introduce kids to as many concepts as possible with as few syntactic hassles as possible. Start with an easy-to-read and easy-to-learn language like Ruby or Python so you can explain simple variables, arrays, conditions, loops, and a simple algorithm like bubble-sort on the first day, and walk kids through writing their own version of it in the first week. That may seem ambitious, but that first example above is less than 10 lines of code. Follow the KISS principle. In fact, I think I would explain the KISS principle to kids on the first day and ask them what the KISS principle is in the first question on every test. ;-)

      In class the kids would learn to write code, working on very simple programming projects with no internet (so they can't download someone else's code), with plenty of assistance. At home the kids would learn to read code, downloading someone else's code (oh, the irony ;-) and adding their own comments to explain what they think it's doing or to ask about things they don't understand. Bonus points could be given for spotting bugs or suggesting ways to improve or simplify the code. Instead of being penalized, kids would be rewarded for asking questions about parts they don't understand. All questions would be answered (in class) after the homework is graded, which would double as a review for the quiz/test on that homework assignment.

      Perhaps the last couple weeks of class would branch out into a history/survey of languages, how they differ while still providing the same basic building blocks. Kids wouldn't have to read/write code in these languages, and test questions on them would be fairly simple.

      *steps down off his soap box*

    7. Re:BASIC by angel'o'sphere · · Score: 1

      Most programming languages have arbitrary start and end index for arrays.
      That is KISS :)

      But the rest of your post makes sense.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:BASIC by Anonymous Coward · · Score: 0

      It's not hard to understand, once you explain what an address is.

      You're at 215 Elm Street. How many steps do you have to walk to get to 215 Elm Street?

  13. Only apps! by Anonymous Coward · · Score: 0

    Modern app appers know that only apps can app apps, so these new appers should be given apps that let them app apps while apping other apps! Start with Appbook, then Appy Birds and Appy App Saga!

    Apps!

  14. Start simple by Anonymous Coward · · Score: 0

    Logo can be fun, even more so if you pair it with a small robot to carry out the instructions with a pen attached. I still remember using loops to draw a 3d doughnut.

    I was talking to a teacher a few days ago and he mentioned picaxe (which uses Basic) which looks kinda interesting. Anything that controls a robot, a car, (something not on a screen) is going to be more engaging than a plain procedural maths program.

  15. What worked and kept the US exporting to the world by AHuxley · · Score: 1

    What produced the very best generations that understood math, science and computers?
    Basic? Ada? Logo? Pascal?
    Teach the advanced math needed and then add computer projects.
    Go back to what worked well in the past. Math and science. A few computer labs with tasks that built on math skills.
    Learn more math at home. Code in the lab. Build math skills. Then create projects that build on new math skills.
    Putting a GUI together from a few pre set options in some educational software to create an instant app is not an education.

    --
    Domestic spying is now "Benign Information Gathering"
  16. 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
    1. Re:Only teach basic computer logic by Anonymous Coward · · Score: 1

      I agree completely - it's bad enough schools go around forcing people to be writers, mathematicians, scientist, historians, musicians and artists without forcing them to be programmers too!

    2. Re:Only teach basic computer logic by DontBeAMoran · · Score: 1

      Remove musicians and artists from your list and it's basic requirements for the modern world. Kids would be better off learning how to use a word processor properly than programming. Example: there's millions of people out there who don't even know how to format their content properly. Making your text bold in font size 20 does not make it a level-1 heading.

      --
      #DeleteFacebook
    3. Re:Only teach basic computer logic by Anonymous Coward · · Score: 0

      Why is it so binary for you?

      Why can't you teach them how to use a word processor, _and_ the basics of programming?

      No one is expecting 8 year olds to be turned into job-ready programmers in the popular language of the day.
      Instead, teaching kids that age programming is about letting them know it's possible for them to make computers do stuff, and that it can be interesting and fun.

      The hardware stuff you want them to know can come later - teaching that first is a way to guarantee most of them never want to be a programmer.
      Unless that's your actual goal?

    4. Re:Only teach basic computer logic by drinkypoo · · Score: 1

      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.

      Those two requests are contradictory. Teaching people some programming is the best way by far to make them understand what's going on in the box, and it also teaches them how to make the most of one of the most important tools mankind has ever invented. Why are you opposed to that?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Only teach basic computer logic by Anonymous Coward · · Score: 0

      No one is expecting 8 year olds to be turned into job-ready programmers in the popular language of the day.

      Facebook and Twitter salivate at the thought of 8 year old job-ready programmers. The corporatists are thinking about the children.

    6. Re:Only teach basic computer logic by Whibla · · Score: 1

      I can't help but read this comment as: Stop wasting everyone's time trying to teach them the basics of logic.

      Or maybe: Stop using a really fun tool to assist in the teaching of mathematics, logic and art (not to mention the innumerable soft skills such lessons can impart).

      The question is not about senior school pupils who are choosing specific courses based on their projected careers, it's about young children, who deserve to be exposed to everything useful we can throw at them.

      As to the rest of your post, if you really think an 8 year old needs to "understand the very basic functionality of processors" etc. your name is strangely apposite. If not, Troll harder!

    7. Re:Only teach basic computer logic by tepples · · Score: 1

      Why can't you teach them how to use a word processor, _and_ the basics of programming?

      Because the school day is only so long. Paying instructors to teach longer would bankrupt a state whose citizens voted to cap property tax and thereby limit school corporations' payroll.

    8. Re:Only teach basic computer logic by tepples · · Score: 1

      there's millions of people out there who don't even know how to format their content properly. Making your text bold in font size 20 does not make it a level-1 heading.

      How does the user of a touch-controlled mobile computer go about marking a particular piece of text as "a level-1 heading"? Switching among three or four pages of the virtual keyboard to get to the punctuation required for HTML or BBCode mark-up isn't fun. Even Markdown has several key characters "punctuation page 2".

  17. 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.

    1. Re:JavaScript by Anonymous Coward · · Score: 0

      I second javascript. I would actually vote a little html first. Give them a website. Show them how to put an image tag on it and some text and a few text boxes. Then introduce javascript. A counter would be a fairly simple way to start. I learned with simple text games. A game like "Guess the number I'm thinking of" would be easy enough to teach. Make sure it is a website that they can show to their friends and preferably still access and continue to modify after the class is over. Before today's walled gardens, everyone in high school knew a little html and the ones that knew a little more than others were the ones that could have the cooler geocity or myspace pages.

    2. Re:JavaScript by Anonymous Coward · · Score: 0

      it's in every browser now, but seeing how they are trying to convert the web to binary, it might become useless.

    3. Re:JavaScript by Anonymous Coward · · Score: 0

      How to teach someone to program is a fucking logic paradigm problem, not a language to learn.
      And fwiw, I would never teach javascript in a million years to a child, because it just wouldn't exist as useful in 10yrs as it gets remoulded and/or superseded; Time wasted.
      Learn a REAL language from the outset IF one were to teach these "interested" PLSF.
      Also, maths, sciences, etc are the real languages to teach. Logic first then language. It's how we learn everything in life really.

    4. Re:JavaScript by Anonymous Coward · · Score: 0

      People have pointed this out the last eight or nine times this question was presented as if it were new, interesting and not politically laden.

    5. Re:JavaScript by joeblog · · Score: 2

      I've been re-learning programming using JavaScript on the frontend and Prolog on the backend, hoping to gradually build up a framework to do web-based strategy games, and I highly recommend it. (Ok, I'm not a child, but I am childish).

      The key advantages I've found is visual programming is lots of fun, giving instant gratification which I think is important for novices of all ages. Something you can do in JavaScript which isn't easy in other languages is it's very cheap and easy to host things on the web, so easy to share with everyone.

      To plug my project, a checkers game which kind of works I've put at http://www.frontiersoftware.co... and that's my development version which I work on and the new code runs every time someone refreshes the browser. The code is available at https://github.com/roblaing/ch...

      The more I get into JavaScript, the more I think it's a very underestimated language.

      --
      If it works, it's obsolete
    6. Re:JavaScript by drinkypoo · · Score: 1

      It really doesn't matter what you want to use so long as it's freely available, especially if it's cross-platform. You can supply the software to the students, whether it's take-home or in the lab.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:JavaScript by Anonymous Coward · · Score: 0

      Sites like jsfiddle also make it trivial to share small programs with your friends without requiring any knowledge in web hosting.

  18. Plrasantly Surprised by Jfetjunky · · Score: 1, Offtopic

    I clicked on this article and was pleasantly surprised to see the prevailing answer is "don't". And I couldn't agree more. Seriously when did we decide "coding" was the holy grail of skills and needed to be introduced as early as possible?

    I learned early but kids need basics first. English, math, science. If they show an altitude then fine, but geez, give them a chance to get going.

    1. Re:Plrasantly Surprised by Anonymous Coward · · Score: 0

      Why does teaching programming imply that it's the "holy grail of skills"?
      There's heaps of things that are taught in schools, even down to primary/elementary level, that are not in the core group of classes.

      If you're only just learning programming in University, then you're already ten years behind.

      However I fully agree with not being taught "coding" in schools. Or Universities, or anywhere.

    2. Re:Plrasantly Surprised by Anonymous Coward · · Score: 0

      I learned early but kids need basics first. English, math, science. If they show an altitude then fine, but geez, give them a chance to get going.

      Better if they show some aptitude for the subject. Their height doesn't really matter.
      Basic understanding of english is useful too.

    3. Re:Plrasantly Surprised by gweihir · · Score: 0

      Seriously when did we decide "coding" was the holy grail of skills and needed to be introduced as early as possible?

      That is probably politicians being about 30 years late to it, when it is basically slowly on the way out as a mass-occupation. Sure, there will be jobs for engineers that can write good software for a long time to come (like basically all engineering subjects), but most people do not have what it takes for that.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:Plrasantly Surprised by Anonymous Coward · · Score: 0

      Learning to program can help with learning in general. Programming is good in that there is a clear "this now works" sense of achievement. Too many science classes don't give that. Its not a holy grail, but would be a handy tool for many kids.

    5. Re:Plrasantly Surprised by tepples · · Score: 1

      Seriously when did we decide "coding" was the holy grail of skills and needed to be introduced as early as possible?

      Teaching secondary students to code is one way to ensure that the growing popularity of limited-purpose computing devices (phones, tablets, Chromebooks, and game consoles) doesn't shift the economies of scale in general-purpose computers such that only postsecondary students and professionals can afford them.

  19. Tim Bell has a program by pollarda · · Score: 2

    Tim Bell in the Computer Science Department at the University of Canterbury in Christchurch New Zealand has developed a comprehensive program for young kids. Tim's a top notch guy too.

    1. Re:Tim Bell has a program by Anonymous Coward · · Score: 0

      This is a great resource. Found a link on their page:
      http://www.cosc.canterbury.ac.nz/research/RG/CSE/index.shtml

  20. scratch perhaps by Anonymous Coward · · Score: 0

    For the very young, MIT scratch is easy to learn and actually does things.

    For older children, I guess Haskell simply because it's a functional language. It's closer to mathematics. If you don't like that, I would pick python just due to prevalence.

    1. Re:scratch perhaps by acroyear · · Score: 1

      my only issue with Scratch is 2 part. 1) the resultant source files are binary so they can't read them (yes, i accept that the sprites need to be binary, but one could base64 that or something), and 2) it remains dependent on Flash. time to just put that crap away, but as a school project, it doesn't have the resources to do such a migration.

      --
      "But remember, most lynch mobs aren't this nice." (H.Simpson)
      -- Joe
    2. Re:scratch perhaps by Anonymous Coward · · Score: 0

      And Flash is seriously dead now, given even Adobe's abandoning it.

    3. Re:scratch perhaps by bugs2squash · · Score: 1

      At the recommendation of slashdot a few years ago I used scratch to give a one-off presentation on programming to an after school group of elementary school kids from all grades (but mostly 3rd and 4th graders). I covered how pictures, sounds and words can be represented as a bunch of numbers (after I had overheard a group of managers at work express their incredulity that that was how it all apparently worked) and then manipulated programatically, eg. change location, color, orientation, pitch etc.

      I then talked the group through installing scratch and getting it running on the school's classroom computers (about 30 desktop PCs in the room) - I left them a handout on that. I had also trained up some volunteers who could wander from computer to computer to help out anyone who got stuck. All the kids were accompanied by at least one parent and there were generally 2 or 3 kids to each PC

      It seemed well received at the time but the real bonus was the number of kids who said that they went on to try it for a science fair project or just messed around with it at home (they did not have the option to do it in regular school classes) based on that presentation. The key things for me were...

      • Scratch was more about telling a story with independent objects communicating than about scripting. I liked the clarity of that model
      • lack of typing experience was no hindrance
      • There was a very low barrier to getting the most basic thing working (usually a sprite moving) so kids seemed to feel like they had something they could incrementally work with
      • There were lots of good silly images, an older crowd might have been turned off by that but these kids got a kick out of them, it was not overly serious
      • There were some relatable (ie. they looked doable with enough patience) yet quite beautiful demos. I especially enjoyed the Koi pond demo. These demos seemed appealing enough to the children without being out of reach
      • There was little barrier to installing scratch on their home computer - even the parents understood how to install it and could see that it would not harm the household laptop
      • Most of the kids had not seen scratch, but even if they had, or if they had some prior programming experience they could find something to do of interest, it was not so simple that it seemed just for beginners
      • Maybe because their parents were there, the small groups shared the PCs very well, they seemed to enjoy suggesting things for the guy with the mouse in hand, no-one got bored or ran out of ideas

      Whatever you choose definitely do it, it was fun

      --
      Nullius in verba
  21. 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.
    1. Re:What is your goal? by Anonymous Coward · · Score: 0

      It's likely whatever language they learn will be outdated by the time they finish school anyway.

      I don't know about that. I learned C in school 25 years ago, and my middle schoolers today are using it for Robotics competitions.

    2. Re:What is your goal? by Mal-2 · · Score: 1

      I don't know about that. I learned C in school 25 years ago, and my middle schoolers today are using it for Robotics competitions.

      You got lucky. For every C, there are a hundred languages that fell by the wayside in the same period of time. I got lucky too -- BASIC is still usable, if less than ideal in most cases.

      --
      How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
  22. easy! by Anonymous Coward · · Score: 0

    Give them a simple game written in an interpreted language. Tell them they can change the game any way they want, and that you'll help with syntax or logic questions if they want to know anything. Then let loose for a few hours.

    Theeeen offer more rigorous access.

  23. Teachers and lessons by Anonymous Coward · · Score: 0

    It's been done in the past with other subjects so I get the impression it would work with this too.

    1) Ruby or Python

    2) No. Really, use a teacher here.

  24. Teach an 8 year old programming? by Anonymous Coward · · Score: 0

    Are you completely nuts, you want to teach an 8 year old programming?

    How about teaching them how to count.

    One step at a time.

  25. Robots.... Dash, Sphero, and Ozobots by Proudrooster · · Score: 2

    Kids need an exposure to programming at a young age so they understand it is simply giving instructions to a machine to do something. Some great toys for doing this are:

    Dash by Wonderware
    Sphero
    Ozobots

    The early exposure is key because if they don't have a successful early experience, they are less likely to try programming later in education. They will think, "Hmmmm... I programmed in 3rd grade, I can do computer programming, let me take that class."

    Without the successful exposure at a young age they may think that computer programming is only for smart people.

    1. Re:Robots.... Dash, Sphero, and Ozobots by freeze128 · · Score: 1

      Those sound like those are robot control languages. Sure, robots are fun, but they are more expensive than learning LOGO because you now need to acquire the hardware. Also, there is the communication with the bot (Wireless? USB?), and then you also have to keep it fed with batteries. Your suggestion has just limited the kids that can learn programming now to just kids that can AFFORD to learn programming.

      Keep it simple, keep it free.

    2. Re:Robots.... Dash, Sphero, and Ozobots by oh_my_080980980 · · Score: 1

      LMOL, yeah that stopped people from programming later in life....

    3. Re:Robots.... Dash, Sphero, and Ozobots by Proudrooster · · Score: 1

      Sure, just get a chromebook or whatever low end web interface you can find and go to code.org, not as much fun as a $99 robot tough.

    4. Re:Robots.... Dash, Sphero, and Ozobots by Raphael · · Score: 1

      I would add Marty the robot to this list : https://robotical.io/

      Although Marty it is a project that only started shipping recently after finishing its crowdfunding campaign, it is very interesting because it is fully open (you can even 3D print the parts yourself) and it can be programmed in Scratch, Phyton, Javascript or whatever language you want because the API is open and easy to implement. The robot comes as a kit, and once assembled it can be controlled over wifi. I got mine a few days ago and I am having fun with it.

      Instead of teaching my kids to program, I would rather get them interested first. Do not teach them how a program works and how to write a program from scratch. Instead, start from an existing program that already does something useful and show them how they can change a few lines to get a different output from the program or a different behavior from the robot. Then let them play with it and experiment on their own without too much supervision. If they are curious and show interest in learning more, then explain the concepts and the basics of what they have been playing with. If they stop playing and think that it is boring, then do not force it on them but try something else instead (another type of program, another thing that is fun to modify). If you try to teach them how to program before they ask for it, then there is a risk that they will give up and stick to playing games or spending their time on social networks instead of discovering how much fun there is in programming.

      --
      -Raphaël
  26. English. by EzInKy · · Score: 1

    Once computers are fully capable of taking and following verbal directions I'm quite sure that a great majority of English speaking people will have no problem programming them.

    "A keyboard, how quaint".

    --
    Time is what keeps everything from happening all at once.
  27. Code.org by Anonymous Coward · · Score: 0

    Code.org has a whole curriculum for kids.

  28. Consider their interests by Anonymous Coward · · Score: 0

    IMO while you can teach just about anyone the basics of programming, few will be any good at it professionally (same as writing vs being an author). That said, planting seeds early is good even if only a few will sprout. I'll save the "should we teach" for another post.

    I was self taught using a pair of QBasic reference manuals. In those early days the most important thing in a language was how easy it was to draw pixels on a screen (2 loc). It was very important to me to be able to see the fruit of my code as quickly as possible. I didn't learn keywords by book chapter, but in the order I needed to implement the next idea for a program I had (and as a consequence nearly ended up reinventing the call stack with globals & gotos before learning what a subroutine was). Only after I realized I couldn't break .5 fps using QBasic did I switch to c/c++. I suspect javascript is the modern QBasic for much the same reasons. A terrible, but easy, complete, and readily available language. Honestly I would probably recommend javascript, as it removes a lot of issues with toolchain, portability, and has that same short 0 to pixels (via canvas) advantage, without being too far removed from the other big languages.

    My point is the language doesn't matter even half as much as your approach. Consider the programs they would like to make first and plan the lessons, subject matter, and assignments around them. If you manage to spark their interest they will probably end up teaching themselves more material then you could hope to cover in the time you have (I essentially went into college knowing the first 2 1/2 courses of material well enough to teach it. Mostly due to a Borland c reference manual, they sure knew how to document in those days).

    From what I can see khanacademy has a decent (maybe slightly better than average) series on javascript.

  29. Great idea! by Dunbal · · Score: 1

    The same way you teach advanced mathematics to a 2 year old: you don't. It's not age appropriate for most (I say most because there are always exceptions) children at that age. Their reasoning simply hasn't developed to a level where they can manage logic to that extent. Of course I'm sure a highly simplified "language" that performs simple tasks could be used successfully but that has about as much to do with real programming as doing a jigsaw puzzle has to do with building a skyscraper.

    --
    Seven puppies were harmed during the making of this post.
    1. Re:Great idea! by oh_my_080980980 · · Score: 1

      THANK YOU!

      Gotta crawl before you can walk. Logic. Need to learn logic.

    2. Re:Great idea! by NewWorldDan · · Score: 1

      You must not have children. By age 8, some have both the ability and interest to learn programming, and many more by age 12. Here's the great thing - you don't actually have to do anything. There are so many resources out there to learn programming, they find them and share them with each other. It's fantastic watching them learn and grow and explore. My daughter is 14 now and it's just been a marvelous journey watching her develop.

      My advice to all is simply, don't worry about it. My kid's school does hour of code before school once a month. There's no structure to it, just parents who volunteer their expertise to answer any questions the kids have. From there, the kids mostly help each other out and teach each other. It's brilliant and you can't devise a more effective program then to just let kids do their own thing.

  30. Console games in Python by Neo-Rio-101 · · Score: 2

    I remember the early 80s learning BASIC from those Usborne game books.
    Really simple text console games that introduced concepts like variables, loops, and conditionals within programs that mostly fit into 1K or less than 8K at least.

    Of course, you could simply translate those programs into something like Python these days and have some fun while learning to program.
    Probably the hardest thing to do when starting out on Python is to teach them input sanitising. Everything else is fairly standard.

    --
    READY.
    PRINT ""+-0
  31. Use robots by mykepredko · · Score: 1

    I see in previous comments that Logo and various other robots are recommended and I heartily agree that it's a practical approach that vividly shows how to program responses to different inputs and how to manage and display data.

    Our Jade Robot (shameless plug: https://www.mimetics.ca/ starts with an introduction to robotics using the on board UI and then allows the students to move on to our version of Scratch (which is a subset that tries to maintain basic structured, procedural programming statements). Since you're setting a limit on Grade 6, we follow the Ontario Ministry of Education guidelines for the "Earth and Space Science" strand, with the culminating project being using the Jade Robot to mimic Curiosity on Mars with it's built-in spectrometer to find "Water" on a simulated Martian landscape. Along the way, we do multiple activities and challenges designed to teach basic programming skills and understand different concepts.

    Whatever you do, the buzzwords that educators are looking for are "cross-curricular", which means involving other class materials in the program (Math, Art, English is what we strive to hit), and "Inquiry based learning" which we interpret to mean that the students need to think through their own solutions and research how they get there.

  32. Lego Robotics by peterofoz · · Score: 1
    The Lego Mindstorms robots is an awesome learning tool, its tactile, and provides the opportunity to participate in First Lego Robotics League.

    For a more PC based learning tool, we use to use Apple Logo. The Turtle Logo lives on as a free web site: https://turtleacademy.com/play...

    For more advanced youth, an Ardruino kit may work well. https://www.arduino.cc/

    1. Re:Lego Robotics by drinkypoo · · Score: 1

      Mindstorms is awesome...ly expensive. Arduino is a great idea, though, or perhaps NodeMCU. If you coupled an ESP (even the original) with a little bitty OLED, a d-pad, and a couple of buttons plus maybe an IR receiver and LED, you'd really have something both cheap and interesting. Obviously it will need a VRM or two on there too so that it can be run from a variety of power sources, and a CH340G.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Lego Robotics by Anonymous Coward · · Score: 0

      lego mindstorms is disgusting slaveware bullshit. if you're teaching kids to be slaves you're a real dumb ass piece of shit.

  33. Do by SuperKendall · · Score: 4, Interesting

    Have you even been around grade school age kids recently?

    I don't understand this feeling that kids of that age should not learn programming, when MANY of us here learned programing at that age. If it wasn't a problem for so many computer professionals then, why would it be now?

    I think there's a way more important question than what language to use though. Its what CAN the teacher actually use?

    If they have zero teachers that can teach programming in any way, probably sadly the answer should be nothing.

    But hopefully the school has some resources they could bring to bear - even with limited computers you could teach programming in an after-hours context. One program that seemed to help a lot with some of my friends children was a Lego Mindstorms based competition, which combines programming and robotics - that's probably the most compelling route for younger kids because it is so hands on and visual.

    Scratch seems to be widely used, I wish there was something else but it's widely used so there are a lot of resources.

    If a school is getting students all iPads, the iPad Playgrounds app is a great way to get into programming and soon will be flooded with a ton of third party educational material because of allowing widespread loading of playgrounds.

    But basically, I think a school should try to do something, even if it's only for a subset of kids. The earlier someone finds out they like programming the better.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Do by AmiMoJo · · Score: 1

      Programming is also a great way to get kids interested in maths. A lot of the resistance children have to maths is the mental aspect and having to work things out by hand when they know that a calculator could do it for them. Programming lets them learn about maths and experiment with it in a much more interactive, immediate and enjoyable way.

      Creating code to generate their own graphs also gives them a deeper understanding and "feel" for mathematical functions, rather than just entering y=sin(x) into a graphic calculator that was obsolete technology in 1993.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    2. Re:Do by TheRaven64 · · Score: 1

      A lot of the resistance children have to maths is the mental aspect and having to work things out by hand when they know that a calculator could do it for them.,

      And the fact that so much of mathematics instruction is not directed at understanding, but is directed at making you solve a problem longhand slightly faster. We spent a couple of years at school learning how to solve differential equations about an order of magnitude faster, which still put us a few orders of magnitude slower than a computer could do it. Worse, after a couple of years of not practicing, my speed at solving differential equations was back to close to where it was when I started, so the entire exercise was entirely pointless.

      --
      I am TheRaven on Soylent News
    3. Re:Do by AmiMoJo · · Score: 1

      I got the impression that most of the maths they taught us after about age 12 was purely for the sake of passing exams.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    4. Re:Do by Anonymous Coward · · Score: 0

      Google and Microsoft have technology right around the corner that will render most programmers obsolete. Hell, there already isn't a shortage of programmers out there, just ones that want to work for some of the wages offered. By the time these kids hit the job market it won't be worth doing unless they are extremely good at it. Typically, we are forcing kids to all learn one thing thinking that is the future when economies need balance. If my timing is off and they are needed, they are still going to have to work for no more than the imported labor will take and considering where jobs are concentrating (expensive cities) they will not pay enough.

    5. Re:Do by Dunbal · · Score: 2

      when MANY of us here learned programing at that age.

      Many of us here are brilliant. This is (still) not a mainstream site. Most of us here did really well in school - unless we were so damned bored with all the rest of our stupid classmates and the mind-numbingly slow pace of regular education that we just stopped listening. We learned programming really early because we could. 99% of people can't. Ask any developmental psychologist. MOST kids' brains simply aren't ready for abstract concepts and algebra when they are 8. Of course you could compensate for that with a highly interpreted language (like LOGO), but how close is that to real programming in reality?

      --
      Seven puppies were harmed during the making of this post.
    6. Re:Do by Anonymous Coward · · Score: 0

      "Many of us here are brilliant."

      Eh

    7. Re: Do by Anonymous Coward · · Score: 0

      your a doosh

    8. Re:Do by Anonymous Coward · · Score: 0

      A lot more could if given the chance, I wouldn't wait for kids to decide themselves they can try it.

  34. Religious school? OO Perl, obviously. by whoever57 · · Score: 1

    Since the foundation of Object Oriented Perl is the "bless()" command, this is clearly the correct language for religious schools.

    --
    The real "Libtards" are the Libertarians!
  35. Give them access If they want to program they will by Anonymous Coward · · Score: 0

    Give them access to computers and languages. If they want to program they will.

  36. Start with critical theory by Anonymous Coward · · Score: 0

    Explain how the founding fathers were racist like drumpf. Give them extra credit for being vandals. Find a place where people are doing something productive, take the entire classroom with you, and go limp.

  37. Yes. by crankyspice · · Score: 1

    I started learning (teaching myself) AppleSoft BASIC when I was about 9. Before that, we used LOGO on TI-99s (I think). I wrote a database program (in BASIC, and it sucked, but it worked) in 7th grade.

    --
    geek. lawyer.
  38. This will get modded down but ... by Anonymous Coward · · Score: 0

    Apple's Swift Playgrounds is very good - IF you have recent iPads in play already. They have a fair bit of course material fully developed, and an interactive coding environment that has some similarities to BASIC and Logo and Karel the Robot ( in the sense that you can run and go and see the outcome visually immediately). It also interfaces into robots like Lego Mindstorms, Sphereo Spark etc.

    The current beta can support stuff from modular drop graphical components stuff moving a "character" about aworld, all the way through more conventional coding paradigms, to augemented reality and robot/sensor integration - its really not bad.

  39. Alice by Ken_g6 · · Score: 1

    Yet another kids' programming language, from yet another school, Carnegie Mellon, is Alice.

    --
    (T>t && O(n)--) == sqrt(666)
  40. A toy by Z80a · · Score: 1

    Just turn programming itself into a game, and the ones that show interest can learn more if they want.

  41. Again, I recommend assembler for a simple machine by shoor · · Score: 1

    This has come up before and I recommended assembler. (And when I posted my recommendation before, I got some people posting their disagreement in followups. But their arguments were not enough to make me change my mind.)

    I learned a few higher level languages before I got exposed to assembler, but it was only with assembler that some things about programming really made sense. Assembler de-mystifies computers.

    It doesn't have to be a fancy machine. Use an emulator for a very basic machine and then add features. I learned it in a hardware class and the first version of our computer didn't have an index register. We had to use self-modifying code to process a list. Only then did an index register get added to the machine.

    Also, it can be made into a kind of game, maybe including logic circuitry. When this came up in the past, some people posted about learning logic circuits from some children's game in the 1980s (I think that was the decade).

    --
    In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
  42. NOT! by Anonymous Coward · · Score: 0

    As I used to tell secondary students who visited our CS program: The most important programming language is English--they did not like to hear that. Mathematics. Science. Four high-school years of all three. Same for younger students. Learn to communicate, learn quantitative thinking.

    Programming languages come and go. Once we (college-level CS educators) have them, we teach them a couple of currently useful programming languages as mechanisms to talk with them about real CS. We teach them in a "principles of programming languages" class to know about imperative, object-oriented, functional, etc. paradigms and their relative utilities, and How To Learn A Programming Language.

    Our goal is always to produce graduates with confidence and perspective about programming languages. When a benighted interviewer says, "In our shop we program in Framisch," our people respond "Fine, give me learning resources. I'll be competent in four weeks, and expert in eight."

    Code Monkey College will never offer the skills for a lifelong career.

  43. 1980's basic on a trs-80 by Psychofreak · · Score: 1

    In the 80's I was altering prewritten games in BASIC on the TRS-80 as well as the Apple ii.

    We were given working, proofread code on paper, initially, then a starting program with the desired alterations and what the effects should be, then a starting program and the desired effects and we had to alter the code ourselves.

    There were dozens of games that were used. I am sure copies of these old workbooks and examples are available somewhere online. It would be a good stepping off point for making something nicer in modern languages.

    --
    Laugh, it's good for you!
  44. Language specifics are no important by IckySplat · · Score: 1

    At ages 8-12 teach basic logic (Logo was good for this)
    IE: If this then that
    You can then add loops , very basic variable usage and simple Boolean logic

    The important thing is to teach them how to think in a structured way and basic problem solving
    IE: If this problem is too big to handle chop it in half; Rinse repeat until you have a chunk you can handle
    Then show how most of these sub-chunks are actually the same thing and segue into functions
    Build the ideas and structures up organically

    As mentioned above some basics on how computers actually work will be extreamly valuable to the kids later on
    Ben Eater is running a video series on builing up a basic CPU from simple logic (YouTube)
    Pointers and finite state machines are probably too heavy weight at that age
    Getting hung up on C vs JavaScript vs Python vs Java vs whatever is silly
    The chances are that the above languages will be relevant in 20 years is exceedingly low

    --
    Help! help!, the termites are eating my DRAM!!!
  45. ScraM lets kids make fun Minecraft mods/minigames by AirHog · · Score: 1

    ScraM is a great visual programming tool for Minecraft.
    http://scram.frequal.com/scram

    Via drag-and-drop using the visual designer, kids can make mods for Minecraft. The mods can be as simple as a couple of lines, or a complete minigame.

    Best of all, ScraM features a MORA architecture -- Mod Once, Run Anywhere. ScraM mods work unchanged on PC and Pocket Edition!

    There are already several minigames available to play and remix, so it is easy to get started.

  46. Start from "Scratch" by evolutionary · · Score: 4, Interesting

    I've spent a couple years designing programs for teaching children from 6+ how to do programming. One of the best tools by far is MIT's Scratch.

    https://scratch.mit.edu/

    With a little adult guidance, you can have them doing electronic story books, drawing, simple quizzes, and tons more (one student recreated pac-man). Kids learn about use of sprites, pictures, control statements very quickly. It's all drag/drop action blocks which make it easy to learn. Some kickstarter campaign had some interesting ideas of teaching programming through robotics.

    https://www.kickstarter.com/pr...
    https://www.kickstarter.com/pr...

    I'd start with Scratch, you'll be impressed, There are books available you can use with you kids:

    https://wiki.scratch.mit.edu/w...

    Hope that's helpful.

    --
    "Imagination is more important than knowledge" - Einstein
    1. Re:Start from "Scratch" by Anonymous Coward · · Score: 0

      No, start from scratch for real: Nand 2 Tetris

    2. Re:Start from "Scratch" by evolutionary · · Score: 1

      This doesn't seemed geared for children. A bit off topic, but interesting

      --
      "Imagination is more important than knowledge" - Einstein
    3. Re:Start from "Scratch" by Serenissima · · Score: 1

      I second this, I got this book from my son's Book Fair. It allows him to code actual playable games - he loves it. He's not learning actual CODE per say, but he's learning concepts like loops, conditional statements, etc. Scratch is great! Code Your Own Games

      --
      Give a man a fire and he'll be warm for a day. But light a man on fire and he'll be warm for the rest of his life.
    4. Re:Start from "Scratch" by Anonymous Coward · · Score: 0

      Scratch has some nice multi-media capabilities (easy to do sound and simple drawings). But it doesn't really have a notion of objects. So it's hard to do any real programming - in a modern object-oriented style, anyway.

    5. Re:Start from "Scratch" by Anonymous Coward · · Score: 0

      Agree, my kids (6 and 8) love Scratch.

      I actually started them out with basic apps controling things:

      1. Daisy the Dinosaur (very basic, tell the dinosaur how to move)
      2. Lightbot (solve logic problems by giving the robot instructions - introduces concepts like loops and conditionals)
      3. Scratch
      4. ?? I'm thinking about Python as the next step as we have a book that takes kids from the beginning, through Scratch and onto Python.

  47. A project like the rest of us. by Anonymous Coward · · Score: 0

    Something interesting to keep their attention. Logic is based on 0 true and false. 10 year olds can understand that. /Half the comments here are by political and luddite trolls. Shitposting has always been on Slashdot but Jesus has the quality gone down lately.

  48. There never was any question? by Anonymous Coward · · Score: 0

    When I was in school kids learned logo or BASIC.

    Is that not OK today?

    Then just teach them C? What is there left to discuss?

  49. I learned that in 2nd grade or so. by Anonymous Coward · · Score: 0

    They had a LOGO class in the childcare wing of the local community college. We built robots out of boxes, got to do small programs with a single really dumb robot to move around, and learn to do logo programming (I can't remember if it was on the bot or separately.)

    In fact it was the only programming language other than basic that made sense to me for a number of years, since it was so straightforward to pick up.

    Sadly without easy access to a compiler/runtime (I can't remember what it was selling for or even if it was available at that point for whatever computer system I had), I ended up forgetting everything I learned within a few months, and then struggled with other programming languages for the next couple years, not really learning anything until I got into linux in the mid 90s. Dealing with DOS and any of the C compilers of that era was a lesson in pain unless you were coming from assembly with a knowledge of the segmentation models and other aspects, unlike many of the other languages available at the time.

    1. 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.
    2. Re:I learned that in 2nd grade or so. by angel'o'sphere · · Score: 1

      Programming is more of an art then a knowledge exercise.
      I strongly disagree.
      That attitude gave us bug ridden software, security flaws and arrrg! The GIMP.
      As in all human activities the progression is more like this:
      trade skill: craftsman, journeyman, master of trade, programmer
      engineering: bachelor, master, software egineer, PhD
      science: software scientist (overlaps with the previous one), PhD
      art: artist

      While you might have an artistic demand on yourself on all levels, you hardly can claim to be an artist before you are a master of trade. An I would put it behind PhD.

      Was it Priceton or MIt, or Carnegie Melow which was considering to have computer science education after PhD, called 'master of fine Arts in Computer Science'?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    3. Re:I learned that in 2nd grade or so. by CronoCloud · · Score: 1

      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.

      Sure you can just draw a line


      #!/bin/python
      #the following line tells python we're going to be using turtle graphics
      import turtle
      #then we tell the turtle module what kind of turtle shape we want
      turtle.shape("turtle")
      #the following two lines tell the turtle to move forward and turn right
      #and are repeated 4 times
      turtle.forward(50)
      turtle.right(90)
      turtle.forward(50)
      turtle.right(90)
      turtle.forward(50)
      turtle.right(90)
      turtle.forward(50)
      #the following line lets us click on the drawing canvas to close it.
      turtle.exitonclick()

      Then one could teach how to use a loop to simplify the program above:

      See how those turn and forward instructions are repeated? Well one thing computers are good at doing, is doing things repeatedly, so what if we could tell the computer to repeat the forward and turn four times rather than having to type it four times. We call repeating instructions a "loop":


      #!/bin/python
      import turtle
      turtle.shape("turtle")
      #the following line basically says to repeat the following instructions 4 times
      for x in range (0, 4):
            #the following lines MUST be indented. In python, whitespace matters.
            #Don't ask, okay. It's a thing, besides it's better than curly braces for
            #beginners
              turtle.forward(50)
              turtle.right(90)
      turtle.exitonclick()

    4. Re: I learned that in 2nd grade or so. by Anonymous Coward · · Score: 0

      Try scratch.mit.edu. Very little typing required and immediate feed back to student in making cool stuff happen.

  50. Let them solve "real" problems with "substance" by Anonymous Coward · · Score: 0

    Kids need to be introduced to coding as a tool, like a robot, that fills actual gaps a student might have or solves real-world problem (i.e. calculate a mathematical series to verify the math homework, scrape all Magic card images from a website into a folder for local printing, control an LED strip to implement a "pixel-stick" for photography). Many of the "Scratch"y coding tutorials are pretty useless when viewed from this angle, whereas robotics is much better at creating substance one can connect to (i.e. programming bugs can have physical outcomes).

  51. Games. by Anonymous Coward · · Score: 0

    Teach them thru something they like. Little games, like pong, get them thinking about edge cases. Literally, ask them what SHOULD happen when the ball hits the edge. Continue to ask questions. They are children, so make it fun by bringing in a tennis ball and some building blocks and demonstrate the simple mechanics. This introduces cause and effect: ball hits paddle or wall and bounces. I like to lead this into if-then satements. Anyways, this has been really sucessful for me thru graphical programming applications like multimedia fusion or scratch.

  52. Re:Again, I recommend assembler for a simple machi by Anonymous Coward · · Score: 1

    assembler really is a very poor tool to learn at that age unless the kids are seeking to learn, you just won't get the mental buyin from 8-12 year olds. something like Lego mindstorm is much more likely to get successful engagement.

  53. Sure if they're into it by Anonymous Coward · · Score: 0

    My kid learned to count at 2 from 0 to 10, and learned the alphabet... You're thinking 8 and they're having trouble?

    Programming at 8 is fine, that's when I took out a book at the library about how to use QBASIC's PRINT, CLEAR, and FOR ... NEXT to do simple animations of like 2 frames of an ascii bat flying for 5 seconds, as well as PRINT, INPUT, and GOTO to make an adventure. It is not that hard to just do the basic concept.

    After that LOCATE Y,X was the next thing I learned. Every small thing was a whole new world at that age.

    Maybe not for everyone, but neither is a lot of stuff, in grade school they teach you a bit of everything to open you to what's available. 2 months on this subject with an option to do more seems OK.

  54. No to "coding" by kugeln · · Score: 1

    First, please try not to call it "coding". "Coding" is what the people who watch lynda.com and instructables to learn PHP/Python/Java call the what they do.

    Let's call it "computer science" or "programming" instead.

    Then lay out a lesson plan that tries to keep it simple, starting with the basics--discuss a problem (or goal), plan (write out steps to achieve goal), then teach the programming involved in accomplishing each step.

    Think, plan, do, as it were.

    Anyone I've ever heard refer to themselves as a coder is generally a very poor programmer. Their biggest challenge is identifying and describing the problem. They somehow missed that actually writing a functional program/script/site is really pretty easy after you get through the problem determination and planning stages. They just start banging on the keyboard and eventually come out with something that kinda works.

    As another poster earlier said, teach them logic, critical thinking, and basic math, then everything else is easy.

    1. Re:No to "coding" by Anonymous Coward · · Score: 0

      First; nobody cares.

      Second; their*

  55. 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.

  56. Why are you trying to teach programming? by Uryene · · Score: 1

    How would you go about teaching 8 to 12 year olds about being Civil Engineers?
    Jumping right into teaching them engineering statics and dynamics without the benefits of all the backing math?

    What about teaching them to Doctor? Should you make it easy for them by diving immediately into pharmacology?

    I understand that you're trying to engage them, using the things that they're currently obsessed with, but it will be greatly to their long-term benefit if you don't skip over the required basics to get to the "fun" part. Concentrate instead on problem solving and being able to communicate clearly with their peers. These are applicable to any endeavor they will pursue throughout the rest of their lives, and the areas in which, sadly, most people don't do well.

    1. Re:Why are you trying to teach programming? by evolutionary · · Score: 2

      Ahem, as a professional program, allow me to explain that programming IS program solving. pure and simple. The rest is simply what tools you choose. I was into this stuff from the age of 11 when all hardware was configured using jumper pins and the Internet was virtually all text. The reason virtually all professions these days have elements of IT (and consequently programming) is programming is about documenting successful procedures and being able to reproduce them accurately and cheaply. A doctor who has a programming background is more likely to have a stronger analytical mind than a doctor without skills in programming. And programming isn't necessarily about math (unless you specialize in search libraries or numerical/data analysis). And most of the people in my generation who learned programming, found ourselves in great demand on many levels. As for communicating, half of my job in consulting/development is doing data requirements analysis, and there you learn the biggest challenge in programming is not the computers or tools, but getting people to understand their operations. (a lot of professionals including doctors, engineer and so on don't know their own business process (which is why they can't program their own systems half the time).

      Of course you are looking from the point of someone who feels the world is obsessed with tech stuff, and to a degree you are right, and I advocate against the overuse of technology as it is not a proper substitute for thinking individuals. But as for learning other fields before programming (again, problem solving), I would argue against.Most basic reason, I've used robotics to teach math to children who were being help back by teachers who were not following through on their students intellectual capabilities, probably due to overly large class sizes. I would argue teaching subjects WITH programming, because it can be applied anywhere, and in the real world in this day and age, it may be the difference between the highly employable and the those getting phased out by AI's being developed. (see lawyers (AI's are predicting judgements by judges), GP in medicine (as most aren't terribly good these days), insurance actuaries, or any job that quickly becomes a "routine"). It's becoming like the Internet: you are required to have access to that and a computer to graduate from university now. (Not that I totally agree with that, but...I don't make those rules).

      --
      "Imagination is more important than knowledge" - Einstein
  57. simple logic gates by roman_mir · · Score: 0

    Do some physical projects with them, simple logic gates, flip flops, adders, those are fun too and you don't need to explain code syntax, you can dive directly into addressing. I think I would have liked that as a kid. The way I got into it was because my grandmother bought me an adventure book, where to progress through the book I had to solve puzzles and write algorithms as code and debug through input/output on paper to decode parts of pages, next page jumps, things like that. It was good but I think I would have enjoyed building some simple logic stuff from simplest parts as well.

  58. Coding is life by petes_PoV · · Score: 1
    What language should a child (of 8, from the article) be taught?

    The answer is: their own native language. Follow that with the national language of the country they live in.

    Once they have those off, pat then start to teach how to organise their thoughts and the order of doing things, the basics of logic, the concept of "if ... then ... else". The concepts of repetition. Introduce the idea of data - constants, variables.

    Hopefully by the time they leave school at 18, they will be ready to start learning programming languages.

    But the idea of "coding" is merely one of writing down how you wish a task to be performed. The linguistic part of that is different from the "design" element. There is no point trying to teach the HOW of writing a program until the children have some clue about WHAT they want it to do. And before they get to that point, they need the analytical skills to know where they are starting, where they want their program to end up and how to get there.

    But merely to teach some syntax, style and rules without an understanding of why that is needed presupposes a lot and all those tacit assumptions (that the author seems to have) will leave the kids floundering.

    The analytical part is a life-skill. Learning how to write that in a computer language needs to build on that foundation. Don't put the cart before the horse.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  59. India by povlhp · · Score: 1

    Why teach them to code when management prefers cheap bad Programmers from whatever country pays with the smaller bowl of rice on that day?

    1. Re:India by Anonymous Coward · · Score: 0

      Higher the supply of programmers, lower their wages. That's the plan:
      * H1-B workers
      * Women and minorities
      * And now, schoolchildren

      All this to ensure that the biggest piece of the revenue pie stays with management, not workers.

  60. BASIC on a basic computer by duke_cheetah2003 · · Score: 1

    I learned BASIC when I was in school as a youngling.

    It's not the best, but it is BASIC and fairly easy to start learning with.

    Trouble with this is, the more complicated the programming language, the harder is it for young minds to grasp. BASIC was rather intended toward beginners to start from.

    Would probably be wise to offer that on a very simple computer, because simple computer means easier to understand and program. Along the lines of the dated C64 level of computer shined in this role in it's day, and could again. Or something similarly simple.

    Even the simplest programming language on any mature operating system are just going to be way to much to expect a young mind to learn, start small, work your way up.

    That's my 2 cents.

  61. Grow with them by williamyf · · Score: 2

    For the very young. Start with LOGO as some other posters said. This will teach them to think programaticaly structuraly, and some constructs like loops.

    Then move them to Swift PLAYGROUND as soon as they reach a propper age to understand it. not Swift propper, but swift playground.

    After swift playground is mastered, things become murkier. Move them to an interpreted language, that has as little scaffolding as possible. Perhaps something vissual where they can plug modules graphicaly in a GUI/IDE and then program the behaviour of the modules as needed be.

    Then, finaly, in the latter years of high-school, move them to some real programming language with real IDE. Preferably something usseful for the future. Perhaps Ansi-C or Java, or Python....

    --
    *** Suerte a todos y Feliz dia!
  62. Tinker toyss, lincoln logs, and and Legos by Antique+Geekmeister · · Score: 1

    Hands-on familiarity with toys built from a small number of similar components is invaluable. I'm not speaking of the completely specified, every detail spelled out Lego sets. I'm speaking of a big box of toys that is large enough to support some basic, well specified models but allows expansion to other models and other images. Learning that the same blocks can be used for several distinct complex structures is valuable. Learning that one can expand those simple, identical components into a more customized or sophisticated model is an invaluable lesson that many people who "study computers" never learned well.

    1. Re:Tinker toyss, lincoln logs, and and Legos by Anonymous Coward · · Score: 0

      Erector or Meccano sets provide greater flexibility.

  63. Teach them critical thinking first by richrz · · Score: 1

    ...as most cannot unfortunately these days. Those that like computers will seek out programming electives in middle/high school.

  64. My own experience by Kagetsuki · · Score: 2

    Here in Japan they're doing Scratch and then roll into samples in 8 different languages (basically hello world with a loop and some variables) in middle school.

    My son however did a scratch book when he was ~7 and did some Arduino programming in that Arduino flavoured C in a robotics course which he's still doing (he's 10), but we're doing some things together in C because of that. I had originally thought about Ruby (because I like it and it's clean) or Python (because there are tons of ways to use it for beginners, like MineCraft scripting), but he's handling C just fine.

    Now, what would I recommend for a class of students? Honestly I'm not sure Scratch is better at getting the concepts of program flow than flow charts with stencil templates, I actually think flow charts would make more sense. Once they get the concept of variables and loops look for something simple and visual or something they know and can see immediate results, like that MineCraft and Python setup or maybe even go old school and grab that demo where you move the robot around. Just try not to do the whole think in Scratch, as I think that past a point forcing that visual representation is detrimental and could actually turn off some students who would be into actual programming.

    1. Re:My own experience by evolutionary · · Score: 1

      Ruby is great, and the most intuitive language I've seen in years. But your son will do VERY well. Scratch is a good place to start but as you point out it's not the end of all anything. Minecraft and Python definitely cool. But kids will want someone to help get past the "cage" of variables/control statements to see more of the result. You might do well with RPG MakerXP. Students love making their own interactive stories with that. Part of the challenge is keeping it fun. Robotics and game engines definitely help with that. So does a little competitive edge. :D

      https://codecombat.com/
      https://checkio.org/
      https://www.codingame.com/star...
      https://www.codewars.com/

      Enjoy!

      --
      "Imagination is more important than knowledge" - Einstein
  65. MIT's Scratch is great. by hamster_nz · · Score: 2

    I can't recommend scratch highly enough. https://scratch.mit.edu/ is great. You can do some pretty neat things with it. Here are some projects you can work through http://projects.codeclubworld....

    I tried to teach some Javascript game programming to a teen, but the lack of geometry skills (e.g. sin(), cos()) and physics ( e.g. d=at^2/2) made it tough going to fire cannonballs around. There is most likely a library that could hide it all, but why would you?

    1. Re:MIT's Scratch is great. by zifn4b · · Score: 1

      I tried to teach some Javascript game programming to a teen, but the lack of geometry skills (e.g. sin(), cos()) and physics ( e.g. d=at^2/2) made it tough going to fire cannonballs around. There is most likely a library that could hide it all, but why would you?

      Because re-inventing the wheel is efficient?

      --
      We'll make great pets
    2. Re:MIT's Scratch is great. by Anonymous Coward · · Score: 0

      I tried to teach some Javascript game programming to a teen, but the lack of geometry skills (e.g. sin(), cos()) and physics ( e.g. d=at^2/2) made it tough going to fire cannonballs around. There is most likely a library that could hide it all, but why would you?

      Because re-inventing the wheel is efficient?

      And you have the added bonus of not learning anything! What was the point again?

    3. Re:MIT's Scratch is great. by zifn4b · · Score: 1

      Because re-inventing the wheel is efficient?

      And you have the added bonus of not learning anything! What was the point again?

      The point is to get the correct result. Do you think I need to understand the Laws of Thermodynamics and the inner workings of the combustion engine to drive my car?

      --
      We'll make great pets
  66. Might as well ask by Anonymous Coward · · Score: 0

    how do you teach schoolchildren carpentry, our plumbing. Programming is a trade. Sure you expose them to the trades (shop class, for example), but you don't aim to make them tradesman. Expose, don't "teach".

  67. Of course it's possible by Anonymous Coward · · Score: 0

    But only the ones who are interested will really learn.

    This applies to pretty much every subject, not just programming.

  68. Python Turtle by Anonymous Coward · · Score: 0

    You can point your browser at this site: PyPyjs.org

    That will give you an interactive shell where you can program Python. Copy in a Python Turtle script.

    Let the kids play with it.

    There are a few other sites like the above, like Repl.it and Trinket.io

    I'm sure there are others because PyPyjs is open source and anybody can run it on their site.

  69. Human Resources Machine by Jeremi · · Score: 2

    It's not a full solution by any stretch of the imagination, but if you wanted an entertaining introduction to programming, you could do worse than having them play Human Resources Machine for a while.

    It's cute, it's entertaining, and it teaches a simplified version of assembly language (!) programming in such a way that even non-programmers can see how the program's source code interacts with the computer to produce desired (or not-so-desired) behavior.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  70. green eggs & gubmint cheese by Anonymous Coward · · Score: 0

    Just take the kids down to the unemployment office. If they're Americans and they want to be programmers, they'll be spending a lot of time there.

  71. How? By not starting with programming. by Todd+Knarr · · Score: 2

    You start by teaching the kids critical thinking and logical problem-solving. Including things like inductive reasoning so they can develop general approaches to solving classes of problems based on the patterns found in a collection of solutions to specific problems. You teach them to trust their own reasoning unless and until someone explains exactly where and how their reasoning is wrong. You teach them that there are usually multiple solutions to any given problem, how to recognize the trade-offs made in the different solutions and how to select the best set of trade-offs for their situation.

    Once they've learned that, then you introduce the idea of formal languages for expressing how to solve a problem and how to use those languages to write computer programs.

    Unfortunately this'll never happen, because it'll mean raising a generation of children who'll think for themselves and question authority and that's the last thing the professional educators (which is completely distinct from "teacher") want to have to deal with. Ditto the Powers That Be in the various levels of government. Which means we might as well discard the whole idea of teaching computer programming to everyone.

  72. Re:What worked and kept the US exporting to the wo by Anonymous Coward · · Score: 0

    In the past, what percentage of people were mathematicians?

    Today, we have Jupyter notebooks online where we can see Python code interspersed with write-ups of Data Scientists' thoughts on what they're doing.

    Programming on a computer is a way of organizing thoughts, and it's pretty important.

  73. Re:Python and nothing else by Anonymous Coward · · Score: 0

    I wrote dozens of VB6 utility programs in high school. It was fun, and the built in help documentation made it easy to be self taught.
    Some were straight up console apps, but most had a full Windows UI because it was so quick and easy to implement.
    After they were tested, I let VB6 compile them to .exe files, and today they live on a portable flash drive along with a copy of the VB runtime dll.
    I still use them almost every week on Windows machines that don't even have VB installed.
    Sure VB had problems, but I have never seen another development system that has this much to offer, is so easy to learn and is genuinely useful.

  74. What I've been doing for many years now by buss_error · · Score: 1

    Here's how I do it. for the past few years, I think 8 or so, I take my bonus check and buy 80% raspberry Pis, 20% add ons.
    Then I find a high school and middle school technology teacher, and give them the equipment. Then I schedule 3 days of vacation to go sit with the kids. Not all at once, but on the day they are given out, then half way through the school year, then a few weeks before the end of school. If the students want to come to my place for brain storming, they are welcome as long as one of their parents come too. I generally have two a month, on a Saturday or Sunday, and it generally lasts about 10 hours. NB: That's 10 hours here, not working. We also do things like BBQ or cook - which I encourage them to learn as well.

    I worked with one of the recipients of this for 2 years. She recently left for a better offer. So empirical and limited evidence show this is working to an extent.

    --
    Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
    1. Re:What I've been doing for many years now by Anonymous Coward · · Score: 0

      Wish I'd known someone like you as a kid.

      Wish you had longer with us, to inspire a few more cohorts.

      Never met you, but I've been an AC here since 5-digits, and you've pretty consistently been informative, honest, and non-inflammatory. Thanks, bussey; it all adds up.

  75. You can't force it down their throats... apk by Anonymous Coward · · Score: 0

    You can't force it down their throats & for any parents attempting to live THEIR failed dreams thru their child? YOU need to GROW UP & respect that the child is NOT YOU (or more importantly YOUR redemption for YOUR FAILURES).

    * Understand? Good...

    (You can't make someone what they do NOT want to be).

    For parents that understand this? Please, disregard.

    APK

    P.S.=> However, IF you see a child wants to learn the art & science of computing? Light a match & pour the gasoline of support on it (otherwise? Fuck off)... apk

  76. What is your goal? by Anonymous Coward · · Score: 0

    Which language you teach depends on what your goal at the completion of the course is.

    You say programming, but programming what?

  77. BASIC or its equivalent. by Anonymous Coward · · Score: 0

    I've started programming at the age of 6 (Started school at 5, so by the time I could read the alphabet).
    At the time, BASIC was the way to go. I did that two years before going assembly followed by C ...
    Nowadays BASIC isn't very popular anymore but there are several easy languages available.
    The chosen language should garbage collection, to avoid memory management complexity.

    As much as I dislike Python for historical and technical reasons, it's kind of the new BASIC so it may suit your needs.
    JavaScript is very easy too and can be tested with any web browser worth its salt.
    Swift would also be a good choice if it was not bound to Apple so much.

  78. There are more important things than programming. by InterGuru · · Score: 1

    I was just talking to an HR professional. She said that the traits that are in most short supply are focus and social skills.

  79. Problem-solving by Anonymous Coward · · Score: 0

    CS Circles (cscircles.cemc.uwaterloo.ca) is a pretty good beginner site based on problem-solving, it teaches Python and assumes no prior experience. Students can ask their own teachers questions inside of the site.

  80. Re:There are more important things than programmin by Anonymous Coward · · Score: 0

    So she doesn't do the actual work, and in any case brought up skills that are only useful in concert.

  81. Games and graphics!!! by kaur · · Score: 2

    I have 3 kids, ages 7, 10, 4. All love Scratch. The 10yo is doing Python. All have tried some robotics programming (Lego WeDo / Mindstorms and Edison).

    Whatever you do, remember that most of the kids are NOT nerds.
    Most programming textbooks and advice is written by nerds to nerds.
    For not-nerds, this is ultimately boring. They won't care about matrix multiplication, sorting algoritms, finding primes etc.
    But everyones loves graphics.

    The first tasks should be graphical and/or game-like, with instant feedback and a fun factor.
    Let your kids draw boucing bubbles or a floating flower with changing colours.
    Let them design some simplest games - whack-a-mole, tic-tac-toe, hangman, etc.

    Thus you will need a language with an easy graphics interface.
    Scratch is great for the first steps.
    From there... let us know :)

  82. With a good teacher by FeelGood314 · · Score: 1

    If you don't have a teacher who can program don't even try. Programming, more than any other hard skill I know, takes a certain aptitude. You can fake it in high school math, you can even fake your lack of aptitude in most university science, but not programming. There are too many ways to write the correct program to even a simple problem for a person to memorize their way through. A teacher who doesn't have a good understanding of all the different ways a child might do something is going to discourage the best students.

    1. Re:With a good teacher by Anonymous Coward · · Score: 0

      You can fake it in high school math, you can even fake your lack of aptitude in most university science, but not programming.

      There are too many ways to write the correct program to even a simple problem for a person to memorize their way through.

      The second sentence has nothing to do with the first. In fact, the phrase "There are too many ways to write the correct program" allows you to 'fake your lack of aptitude' in programming.

  83. Gamify It by Anonymous Coward · · Score: 0

    The subject pretty well summarizes what I believe needs to happen. I still remember games are frankly how even I got into it. Pavlovian allusions aside, children are indeed similar to dogs, in regards to anything they like - be it food, games, money, sports, etc. Also, for a long time, I was pro including-it-in-the-standard-curriculum, but I've since come to realize some children simply do not want to learn about it, and forcing them to produces undesirable effects, and causes them to view it negatively.

  84. micro:bit by rev0lt · · Score: 1

    You may want to check the micro:bit platform http://microbit.org/

  85. Kids learn by example! by Anonymous Coward · · Score: 0

    Any time children are being taught, concrete examples are what works best. Simulate the activities of a CPU using the students themselves. No 'Language' is needed.

  86. The engagement is all. by Anonymous Coward · · Score: 0

    Children are flipping LEARNING MACHINES! The ONLY thing that matters is that they are engaged. Forcing them to do boring shit for hours because someone on the internet thought it would be a good idea is a great way to teach them nothing except dread of anything associated with computers, education and learning in general.

    1) Find out WHAT THEY WANT TO CREATE.
    2) Work out the simplest version of WHAT THEY WANT TO CREATE.
    3) Work out which tools are easiest for creating the simplest version of WHAT THEY WANT TO CREATE.
    4) Scaffold them until they can use the easiest tools to create the simplest version of WHAT THEY WANT TO CREATE using the easiest tools.
    5) Scaffold them further so they reach the limitations of the easiest tools in creating a more realised version of WHAT THEY WANT TO CREATE.
    6) Work out what the best tools are for creating WHAT THEY WANT TO CREATE.
    7) Scaffold them further so they can use the best tools to create a more fully realised version of WHAT THEY WANT TO CREATE.

    It's ok if you don't get to step 5 or beyond, but you shouldn't skip steps.

  87. Do they have interest and aptitude? by Opportunist · · Score: 1

    If the answer to either is "no", then the answer is "not at all".

    Sorry to say so, but your question sounds like "I want my kids to become what I want them to be, so how do I make them?".

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  88. Oldies and goodies by Anonymous Coward · · Score: 0

    Do what my dad did: Let the kid read the book about C programming that you have sitting on your shelf. But make sure that their 80386 computer has Internet connectivity.

  89. Lightbot by apanagio · · Score: 1

    Lightbot is an excellent game for children to be introduced to programming. It works on any age, from primary to highschool. Unfortunately I couldn't find an online version without flash.

  90. Re: to a Nazi, obviously. by jellomizer · · Score: 1

    Then use it as a learning opportunity to teach why that symbol is bad and have them put extra steps to make a house windows or something else.
    Most kids (and adults) don't really get why these symbols are so bad.
    Like the nooce and other thing they are used as a threat to mark Teratory saying we don't want other people here and will hurt anyone diffferent.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  91. Simply you cannot by aglider · · Score: 1

    As you cannot teach calculus to them.
    You need to build up knowledge from zero.
    Symbolic math is at the base of programming, so is some knowledge of computer architecture (think about addresses/pointers or memory alignment).

    No, simply you cannot.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
  92. Re: to a Nazi, obviously. by jimmydevice · · Score: 0

    What's the shortest LOGO program to draw a swastika?

  93. Programming Games by ziggystarsky · · Score: 1

    There are some very nice games that require/teach programming skills. You can check out virtually every game by Zachtronics.

    • Human Resource Machine (assembler using a carpet as registers)
    • TIS-100 and the successor Shenzhen I/O (assembler, distributed processing)
    • Infinifactory
    • Space Chem
    • Minecraft or a clone, and redstone
    • maybe the Pico-8 fantasy console (use lua to make games for a minimal environment)
  94. Tynker by Adrian+Harvey · · Score: 1

    I have used Tynker with my son. Block code language with lots of teaching exercises. Also includes a Minecraft modding course which is what really sold it to him.

    1. Re:Tynker by dostert · · Score: 2

      I have used Tynker with my son. Block code language with lots of teaching exercises. Also includes a Minecraft modding course which is what really sold it to him.

      I second Tynker. You can also take the lessons learned in Tynker and apply them to actual devices (such as a Parrot Mini Drone) if you've got a child that is more interested in seeing how you can program something in the physical world. Once you child gets bored with drag and drop programming, I'd move them next to CodeCombat. I completely disagree with the comments saying that you need to make sure your students learn advanced mathematics. As a Math/CS professor, I would much prefer a child learn basic logic skills long before they attempt algebra.. Shifting their video game playing into a slightly different direction through Tynker (with Minecraft if they love that) and CodeCombat seems like an ideal way to give a child an introduction to "real programming" while still keeping their love of gaming intact.

  95. CoderDojo by Anonymous Coward · · Score: 0

    I believe (not involved with) "CoderDojo" is very good, Start a Dojo and use the curriculum and resources. Its aimed at the 7 to 17 age groups.

    Blurb below

    "The CoderDojo movement believes that an understanding of programming languages is increasingly important in the modern world, that it’s both better and easier to learn these skills early, and that nobody should be denied the opportunity to do so.To that end, we’ve built a global network of free, volunteer-led, community-based programming clubs for young people. Anyone aged seven to seventeen can visit a Dojo where they can learn to code, build a website, create an app or a game, and explore technology in an informal, creative, and social environment."

  96. Apparently unpossible by houghi · · Score: 1

    This question has been asked so often here, I start to think that it is not possible, otherwise you could have used one of the many ideas that has been proposed in the past.

    I think everything has been proposed, except perhaps to hit them with some starter cables if they make errors. (Don't do that. It will only work in the short term.)

    So what has been tried so far and what is the expected result? How did YOU get into it and how did others you know get into it?

    --
    Don't fight for your country, if your country does not fight for you.
  97. Re: to a Nazi, obviously. by Anonymous Coward · · Score: 0

    repeat 2[fd 5 rt 90 fd 10 lt 90 fd 5 lt 90 pu fd 10 rt 180 pd]

  98. Code Combat by robert8763 · · Score: 1

    I'm a huge fan of https://codecombat.com/ for teaching my son to code, you can pick from python or javascript and possibly a few others. There's an RPG version for home players, and a structured lesson plan for use in a classroom that you can buy.

  99. Colobot by next_ghost · · Score: 1

    Try Colobot. It's a simple game where you program robots in a C++/Java-like language to colonize new planets.

  100. CoderDojo by Anonymous Coward · · Score: 0

    I believe (not involved with) "CoderDojo" is very good. Start a Dojo and use the curriculum and resources.

    Blurb below

    "The CoderDojo movement believes that an understanding of programming languages is increasingly important in the modern world, that it’s both better and easier to learn these skills early, and that nobody should be denied the opportunity to do so.To that end, we’ve built a global network of free, volunteer-led, community-based programming clubs for young people. Anyone aged seven to seventeen can visit a Dojo where they can learn to code, build a website, create an app or a game, and explore technology in an informal, creative, and social environment."

  101. The better question by Anonymous Coward · · Score: 0

    SHOULD we teach programming to schoolchildren?

  102. Only if they are passionate for it by Knossos · · Score: 1

    You don't say, but I assume (given the framing of the question) that you are a teacher.

    I started when I was 9 on a BBC Micro learning Basic. That was great for me, I enjoyed it. That experience is what made me become a programmer. I was passionate for it though. You will not get the same results from someone that doesn't love it, at that age.

    My 13 year old was interested after watching me program at home. I spent some time with him seeing if he would enjoy it. He noped out fairly quickly. It isn't for everyone.

    Instead of blanket teaching everyone coding, give them the opportunity to learn. If they show interest in it, perhaps let the parents know? The parents should support them with it from that point ideally. At that age, kids should be learning the important foundational education that backs everything up. Maths, science, language.

    --
    Android Software Engineer
  103. Yes, Hopscotch for example by zifn4b · · Score: 2

    They did this at my daughter's school. There is also ClickTeam Fusion as well.

    Hopscotch
    ClickTeam Fusion

    Keep in mind, these are not programming languages but with Hopscotch for example it gets kids familiar with programming concepts like variables, looping and flow control in a fun way.

    --
    We'll make great pets
  104. Re: to a Nazi, obviously. by Anonymous Coward · · Score: 0

    No, you teach them the symbol's history, and that context is important. A bunch of dead nazis and one Austrian do not override the thousands of years of history and the billions of Asians who used, use, and understand the symbol's actual meaning. Don't be a bigot.

  105. 8 to 12?? by Anonymous Coward · · Score: 0

    I started to learn programming when I was 13, with a book entitled "BASIC for children"... which was recommended by the authors for children from 6 up.

  106. In short - CodeWithBolt.com by Anonymous Coward · · Score: 0

    It uses stepped lesson plans and custom-designed language to make progression like DuoLingo for programming. Have used it in the 8-10 bracket, but sure the older children would be fine with it.

  107. You Use Games by Ayano · · Score: 2

    That will always get their attention. I feel Minecraft has created a number of programmers that were never interested in the subject. As they wish to do more, they learn on their own and seek out formal training in their secondary education. Kids these days want to see a result where as rote traditional programming classes are far more abstracted from the end result. Generally if they see the mountain, they will want to climb it.

    --
    I don't read AC
  108. Most have already cited but... by Anonymous Coward · · Score: 0

    https://github.com/HollyAdele/awesome-programming-for-kids
    and
    https://github.com/yrgo/awesome-eg

  109. Captain Obvious says ... by Qbertino · · Score: 1

    Regular programming:
    Editor
    CLI
    Python
    What does a computer actually do?
    What's this "programming" thing everyone is talking about?
    What is a variable?
    What is a value?
    What is a comparsion?
    What is an assignment?
    What is a condition?
    What is a loop?

    Accelerated Programming:
    How do I filter text?
    Regular expressions
    How to I save a file?
    Let's process some text.
    How to I draw a colored block on the screen?
    How do I play a sound?
    Let's build Tetris/Snake/Whatever.

    You're welcome. Glad I could help.

    --
    We suffer more in our imagination than in reality. - Seneca
  110. Absolutely Not by drinkypoo · · Score: 2

    The computer is one of the most important tools of our era and you cannot fully utilize it without being a programmer. It's useful even to people who will never work in the field, and a basic grounding in it assists with the development of logical reasoning and understanding the operation of algorithms. Expecting people to become professional programmers is unrealistic. Expecting people to become familiar with a tool that literally everyone uses is basic, and we should expect it from our education system.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Absolutely Not by Opportunist · · Score: 1

      Turn back the time about 80-90 years and you can replace computer with car and programmer with mechanic in your statement.

      Yes, every time had its "new" technology (with "new" being a really stretchable term, computers are hardly new but only rather recently they managed to permeate our everyday life, something the automobile did much, much faster).

      In the end, though, and considering just how fast technology moves today, I doubt that we'll see a lot of "programmers" needed in the future. "Programming" a computer will soon be no more difficult than programming your VCR was. Granted, a lot of people had trouble with that, but in the end we'll soon see the need for dedicated "Programmers" decline to the point where it is something only required by professionals and enthusiasts, much like it did for the mechanic part of owning and operating a car.

      Sorry for the car analogy, it just did actually fit for a change.

      What the education system should do, in my opinion at least, is to prepare kids to be able to learn more about these curious machines if, and only if, they have the interest and relevant ability to become someone who programs them. Trying to make everyone a programmer whether they show any interest or think that big-O is something discussed in dirty magazines is going to fail.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    2. Re:Absolutely Not by drinkypoo · · Score: 1

      Turn back the time about 80-90 years and you can replace computer with car and programmer with mechanic in your statement.

      Well, no. Not really. Computers are already way more ubiquitous than vehicle ownership will ever be. Further, it takes significant resources to make significant modifications to a vehicle. It takes only minor resources to make significant modifications to a software program, or even to create one out of nothing.

      Trying to make everyone a programmer whether they show any interest or think that big-O is something discussed in dirty magazines is going to fail.

      Trying to make everyone a programmer whether they show any interest or not will pay dividends even if it fails. I don't suggest that we spend a disproportionate amount of time on it, but I do suggest that it be a part of the curriculum throughout the school career until something else analogous comes along. And this is especially true as long as we are stuck here on this planet.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Absolutely Not by Opportunist · · Score: 1

      Sorry, but I can't get behind putting more of what will be useless ballast to a sizable portion of the students into the curriculum. There is already plenty thereof. Well over half of what I had to learn in school was learned for the test, written at the test and immediately forgotten because there was an absolute ZERO chance of me ever needing that bullshit again. Be it geography, physics, foreign languages aside of English or music, it was a waste of time and energy that could have been invested way more sensibly.

      If you think that pupils that have no interest in ever programming will treat this subject with any more interest than what's required to get a passing grade, which essentially means "soak up - pour out - forget", you're deluded.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  111. Re: to a Nazi, obviously. by jellomizer · · Score: 2

    Context is key, if you are in a western culture. You need to explain the current meaning. The original meaning or the meaning in a different culture, is besides the point.
    Most symbols good and bad were made from similar symbols and its context has been changed on how it has been used in that culture.

    In a few hundred years, this symbol may have a different meaning, and may be acceptable, as it has a positive context. But now it isn't and students need to learn that, and know why it is wrong to show it. Beyond you are a bad kid for showing this symbol that you have a vague understanding what it means that happened to be an easy to program fractal.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  112. You can, but be thoughtful about it. by Anonymous Coward · · Score: 0

    Having taught programming at the local library summer program, I can say that yes you can teach kids as young as 8 to program but.... Children have different attention spans, abilities and interests. Some few children have the self discipline to work through problems with a text based programming language but most do not. I used Javascirpt because of the lower barrier to entry, a web browser and text editor was available on the library computer though compiles were not. But Javascript is a tough language, yes really it is even using just a small subset (functions, if, for, variables, string methods). One child gave up because after struggling with the text editor. There is a poster who remembers Logo and perhaps Logo would have helped I dunno. I had one hour class plans because I was aiming more for the 12yr old set but the class ended up being a bunch of librarians and children younger than 8. Librarians have epic attention spans. 8-10yr olds have attention spans closer to 20min. How do you teach a for loop in 20min and keep it fun? Because remember kids have interests. I started out saying the thing we were working towards was a hangman game which got them excited but you have to keep it exciting even as you go through the things like loops and conditionals which can seem boring and dry especially if you spend to long between fun things.

    If I do this over again I want to add some things like "human programming"... the library has a checker board patio and I'll have students try to guide each other around courses using limited commands. And as a rain plan have blocks that they can have others build things with but again only be able to give limited commands. I would like to try a graphical programing language (drag drop puzzle pieces to program style) for introducing loops and conditionals even if I keep Javascript for the end project. A graphical programming language that "compiles" or otherwise translates to Javascript would be ideal. And I will add more fun intermediate challenges rather than having just one big end goal.

    Remember tough, programming is not just about computers. You should make it more clear that programming is breaking down problems into simple solvable steps. The scientific method and recipes are as much programs as minecraft.

  113. Re: Python and nothing else by Anonymous Coward · · Score: 0

    If you sanely use 4 spaces or 1 tab set to 4 spaces with Python you better make sure not to mix and match or Python will halt with an error.

  114. Teaching kids by Anonymous Coward · · Score: 0

    Show them Minecraft, then show them Unity3d with Playmaker.

  115. Teacher Perspective by Anonymous Coward · · Score: 1

    As someone with 20+ years of teaching programming to high school students, I appreciate reading all of the responses. Of the many responses, I did not see any that recommended Visual Studio. That is very informative as it is what many of my colleagues teach. Many of the remaining languages presented are taught in my classroom.

    My approach is to teach logical reasoning first, followed by Logo (KTurtle), BASH scripting, and GNU C/C++. We have also touched on Assembly, Scratch, Java, Python, Robot C, NXC, Lego Mindstorms, TI Basic, etc. over the years depending on the need. We even write sophisticated formulas to make spreadsheets do odd things such as algebraic binary conversion, and amortization.

    This is based on the philosophy that everything with a chip is programmable, logic is universal and language independent, and learning the syntax of C/C++ translates well into other languages, such as Java and Python.

    Finally, using Linux gives students a deeper understanding of the inner workings of an operating system. For instance, when writing sort programs, we rename and replace /usr/bin/sort. We also build Gentoo to learn about partitioning, formatting, tarballs, compiling, kernels, GRUB, LFS, the boot process, etc.

    While not all students continue in IT, those that do often appreciate the unique experience. The bottom line is that they have little to no competition for the positions that they apply for, enjoy job stability with a high wage, and secure a path to advancement.

  116. TRS-80 Color Edition by Dareth · · Score: 1

    I had the TRS-80 Color Edition in the late 80's. When I found an old Radio Shack cassette player I could save my programs to I was overjoyed.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  117. Pairs Programming with Something Tangible by Anonymous Coward · · Score: 0

    The teaching part is more important than the choice of language. First, pair up the kids. The best pairings will be a smart one paired with a dumb one. Both will learn faster. Second, find projects that are tangible or tactile in some way, such as the LOGO robot. One low-cost possibility would be to start with some simple open-source game and have them review the code and write comments. Then have the kids mess with the physics/algorithms like rebound rate, or friction, or gate sizes. Or maybe have them create a god mode. There are literally dozens of assignments that can be created that make them read the code, understand it and then test modifications. Observe, analyze, act. Pretty straightforward.

  118. MicroBit by mspohr · · Score: 1

    MicroBit is an inexpensive little computer board which has sensors and leds.
    It has several programming languages including a graphical blocks JavaScript and Python.
    It's designed for learning.
    microbit.org

    --
    I don't read your sig. Why are you reading mine?
  119. I want kids to learn programming by Osgeld · · Score: 1

    But I am too fucking lazy to google it myself, and want you to tell me which one's are best, but not only that, have websites that will teach them as well becuase I cant be assed to do that either

    wtf

    1. Re:I want kids to learn programming by evolutionary · · Score: 1

      Ask and you shall receive:
      https://slashdot.org/comments....
      https://slashdot.org/comments....
      Hope that helps.

      --
      "Imagination is more important than knowledge" - Einstein
  120. Not Just Programming by Anonymous Coward · · Score: 0

    Teach coding to the fifth-graders that seem most interested in STEM.
    Offer little perks and incentives to progress, such as nice laptops, wholesome snacks, and extra recess time.
    Continue this through the eighth grade.
    Then halfway thru the school year, take students from the school on the other side of town, tell your 8th graders they must teach them everything they know, and take away the perks.
    Lesson complete.

  121. Re:Stupid by sdinfoserv · · Score: 2

    Why is this question flamebait? Has the question "does everyone need to learn to program?" been aswered somewhere and it's a resounding yes!

  122. With a puzzle challenge by Anonymous Coward · · Score: 1

    Get two motors and a buggy. The lego ones will do if nothing else. Hook it up to a PC. A raspberry pi is a cheap, fast way. Write the base program with commands to send code to the buggy to make it go forwards, go backwards, and examples for turning. So that a program can be run to drive the buggy forward 10cm, left 90 degrees left, then forward 10 centermeters.

    Make another 3.

    Get some cardboard. Draw a back snail maze so the buggy has lots of room to get into the center.

    Buy some chocolates, chips, and have 4 $5 bills handy.

    Make a second maze that is more complicated.

    Make a third maze which has 45 degree angles to get to the center.

    Test the gear, make sure it works. Have 2 spare buggies available.

    Plan and prepare.

    Teach the kids the basics of how to win the mazes. They will be interested then bored.

    Show them the buggys

    Show them the code. Run the base program of 10cm forward, 90 degree turn, 10 cm forward.

    Have them use the buggies for 30mins on the floor.

    Then give them the first challenge. First group to get their buggy to the center of the maze wins. Make sure this can be done by copy pasting existing code.

    Then give them the second challenge. To win this one they will need to change the first program maths to different values to get to the center.

    Make the third challenge a lunch time extra time choose your own group special with a cash reward. Make sure they eat their lunch.

  123. Re: Stupid by Anonymous Coward · · Score: 0

    We need more help programming an industry because of people with your attitude. That is what is with it.

  124. what about having kids create a language? by Anonymous Coward · · Score: 0

    Then they can see what is required.

  125. Absurd Idea: Don't by jimmifett · · Score: 1

    Between the ages of 8-12, if they are ever going to be programmers, they should be approaching it themselves, asking questions, reading books. For 99.999% of the populace at that age, programming isn't going to be very interesting, let alone able to adequately grasp. Instead, teach them the maths and logical analysis they'd need to become knowledgeable programmers down the line. Hell, improved math and logic would be more beneficial to all kids rather than learning bad programming techniques in a half-assed "kid-ified" language.

    Give it as an option for those in high school, til then, the ones that want to learn will do so regardless of age, the others, like the majority of adults, would just be dangerously inept enough to muck up a system they are using.

  126. Teach by example by Anonymous Coward · · Score: 0

    Stay away from IDEs

    Give the students templates on a console terminal. Show students how to use the "cmd" feature in Windows. Install a programmer's editor on student laptops.

    Ask the students to vary prototypes and examples to create new solutions to new problems.

    Teach by doing. Teach by example. Extend the examples.

    Introduce students to Python. Have the school install Python on all student laptops.

    Create thousands of Youtube videos showing examples of solutions to programming problems.

    Work on improving rosettacode.org so that it is complete, rich with examples, and thorough. Add millions of problems, algorithms, and examples to Rosetta Code.

  127. Teach them how to follow an instruction manual by Anonymous Coward · · Score: 0

    I'd start easy with things like tables or chairs. Then move onto more complicated things like the inside of a toilet.

    That way you get all your school's carpentry done while teaching students to follow syntax exactly, be systematic, and be patient.

  128. Copy, modify, create by Anonymous Coward · · Score: 0

    For their first project give them the complete source code for a simply game.
    For their second project, ask them to modify the source in a general way such as "2 more lives" etc... but don't tell them what line(s) to modify.
    For their third project, ask them to create their own game by fully modifying the source and creating new graphics

    Done. Now they are hooked on programming for life.

  129. Everybody can have an opinion - but try evidence by the+agent+man · · Score: 2

    Everybody is entitled to an opinion but in science, including computer science education, there can be evidence that some things really do work. In the context of the Scalable Game Design project we have explored and evaluated a strategy for teacher professional development. As far as I can tell this is the largest study of its kind:

    https://sgd.cs.colorado.edu/wiki/images/4/41/TOCE_2015_Repenning.pdf

    Abstract: An educated citizenry that participates in and contributes to Science Technology Engineering and Mathematics innovation in the 21st century will require broad literacy and skills in computer science. School systems will need to give increased attention to opportunities for students to engage in computational thinking and ways to promote a deeper understanding of how technologies and software are used as design tools. However, K-12 students in the United States are facing a pipeline for computer science education that is broken. In response to this problem we have developed the Scalable Game Design curriculum based on a strategy to integrate computer science education into the regular school curriculum. This strategy includes opportunities for students to design and program games and Science Technology Engineering and Mathematics simulations. An approach called Computational Thinking Pattern Analysis has been developed to measure and correlate computational thinking skills relevant to game design and simulations. Results from a study with over 10,000 students demonstrate rapid adoption of this curriculum by teachers from multiple disciplines, high student motivation, high levels of participation by women and interest regardless of demographic background.

  130. I'd start with real problems, probably in C-alike by Anonymous Coward · · Score: 0

    Get 'em an Adruino and get 'em started with something like C. I know that sounds "hard" compared to picking up Python, but they'd get to really do things immediately. And then if they're destined to become "real" programmers, it's a better start, based on the you can't dig upwards principle. Low level languages encourage programmers to learn more, high level languages do not.

  131. Re: to a Nazi, obviously. by angel'o'sphere · · Score: 1

    Originally, comming from cultures from the east, the symbol was a symbol of luck.
    Representing the wheel of the sun, and hence the wheel of time.

    However in other cultures it was used as symbol for a wolf trap.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  132. BASIC by Rick+Schumann · · Score: 1

    No, I don't mean 'get them the basics', I mean the programming language BASIC. Not 'Visual BASIC' or anything even that fancy; I mean plain-old, plain-text interpreted BASIC, with GOTO, GOSUB/RETURN, IF/THEN/ELSE, FOR loops, INPUT, PRINT, and so on. Or has everyone totally forgotten it? Simple, easy to use, no structure required, interpreted so crashing machines is impossible (just don't tell them about PEEK and POKE, initially). If they show any aptitude or interest beyond interpreted BASIC, they'll go looking for it.

  133. Real Languages Are More Gratifying by Anonymous Coward · · Score: 0

    The only reason I ever bother to learn to code was to make things that other people could see and use in the real world. That was the carrot, and I gathered the patience to learn for that reason alone.
    Kids who want to program want to make things. Better to make things that really run, on browsers, in microcontrollers, or in stand-alone apps, than to use drag-and-drop graphical languages that only run in sandboxes for kids.
    I think the idea that "teaching concepts comes before building cool stuff" will cost you a lot of enthusiasm.
    Every student needs to learn one compiled language and one scripting language, because they teach 2 different aspects CS, which when you're ready to converge what you've learned, you get a really comprehensive picture. So, teach Python or JavaScript, and C or Java.
    And, make real things! It's no fun to spend 16 hours making a sprite travel across the screen in some clunky "language for kids".

  134. That's easy... by Anonymous Coward · · Score: 0

    Put them in cubicles, give them 5 projects, 30 bugs, a bunch of angry customers and - since they aren't getting paid hourly - make them work weekends "until we are caught up".

  135. A coworker is already doing this. by plopez · · Score: 1

    Leave me a drop of some sorts and I will try to feed you some information. He's out today taking his class to the eclipse. He teaches a couple of times a week in the mornings at the school where his kids go to. He also teaches music and taught them how to write subroutines using music.

    --
    putting the 'B' in LGBTQ+
  136. Teach logic and many skills will follow by JoePete · · Score: 1

    First two things: 1) Whatever language you teach to an 8 year old will be archaic by the time they reach the workforce 2) As computing power increases, we are moving beyond higher languages, gravitating toward pseudo code. As analogy look at what has happened in the world of Web development. You have the designers and interface folks who drive the development even though behind them are tools or people doing the more technical translation. Similarly, the programmers of the tomorrow may be more software designers (as opposed to developers). Behind them may be p-code compilers written by much more narrowly focused programmers. I think if you are trying to figure out how to teach kids to program, teach them first how to problem solve in a logical. Where programming breaks from most human thought is that essentially computers work in a binary environment (it is either a hot dog or not a hot dog). I liken programming to trying to teach kids law. As integral as it may be to our lives, it is built upon many critical thinking skills that take years to develop. Thought games can teach programming without ever touching a computer. 20 Questions and variations on that are simple, fun, and competitive games perfect for a young classroom. The challenge of teaching real programming to an 8 year old is very few of them can even reasonably grasp natural language grammar. How can you expect kids to tolerate learning the far-less flexible grammars of programming when most grow exasperated with typical English grammar even though it is far more loose? I'd say if you want to go in that direction, start them with simple HTML. That might wet their whistle for more involved exercises (still well short of genuine programming) but far less frustrating. There is a reason why elementary schools focus on creative writing more than grammar and spelling. Focusing on the latter too early will stifle the kids. Similarly throwing kids into real programming too early may stifle many future developers.

  137. 3 R's by smithcl8 · · Score: 1

    All you need are the 3 R's.....everything else you can figure out later and do just fine. Kids don't need an "hour of code" or a "programming club" or such. #oldman

  138. You cannot teach - they must learn by Anonymous Coward · · Score: 0

    College instructor here. I get engineering students every year - so supposedly some of the brightest minds. The problem I see with them extends down to all students and that is that if they aren't intrigued enough by it, they won't learn it.

    That being said, can you get them intrigued with LOGO or ALICE or whatever? Sure, some of them. Will they then make the effort to learn the "hard" stuff - non-visual programming? Mostly, no. A few will. If that's your goal (to get those few) then sure it can be done: Intrigue, guide them to *real* languages, and teach them good habits. Unfortunately this is not a single-year approach and without a multi-year structure you'll lose most of those few you were able to grab.

    Finally, there is a maturity that is required of programming. It's the maturity that is seen when a person realizes doing it right is better than doing it fast. Unfortunately, most coders today (amateur, hobbyist, professional) simply lack that maturity. And trying to teach that diminishes the "fun" stuff young coders have time to do. So do you want to teach them to become programmers? Or do you want them to learn how to program? They're not the same goal. If you just want them to learn fundamental logic of coding then keep it fun, keep it visual, and keep it simple. And don't expect them to become CS majors.

  139. Happens, or not. by rbrander · · Score: 1

    I was a schoolchild, arguably (13) when I became self-taught. On mainframes. By stealing the "account cards" out of the garbage at the University computing centre. The problem would have been *stopping* me.

    So I would recommend making tools available, and giving demonstrations of what you can do with 10-line and 20-line programs, demonstrate the writing of 5 and 10-line programs, and leave self-teaching materials available. I would make time for it, and provide other things to do - reading and educational toys and art stuff, I guess - for the kids that don't *want* to program. I would repeatedly mention the commercial value of the skill, maybe a talk or two from people who started as kids and made careers of it.

    And that's it. No, wait, help available, that too, of course. But no pressure, no lessons, no exams.

    I figure about 90% of those who would actually learn programming from ANY lesson plan, no matter how coercive, will learn as much or more from this.

    You like it or you don't, I can't recall an exception where somebody learned to like programming, or became a decent programmer without liking it.

  140. BASIC, e.g. by Anonymous Coward · · Score: 0

    I taught BASIC to middle school kids in the 70s. Worked fine with TTY machines and smart kids. Any language works. But you have to have motivated kids. Also, this should be an after-school activity. In-school needs to teach basics, not BASIC.

  141. More important than language and websites... by Anonymous Coward · · Score: 0

    A lot of us taught ourselves to program. But remember, we didn't just set out to learn a language. At least I didn't. I set out to write a program that did a specific task. It could have been on any platform or language. I wanted to draw some 3D graphics and god dammit, I was going to do it. While the tools at my disposal were my friend's compuAdd 386 and GWBasic, it could be almost anything today. The challenge is coming up with something(s) that will get their interests. Once you do that, then you can proceed to languages and resources. No one will learn if they don't care about what they are doing.

  142. Re:What worked and kept the US exporting to the wo by Anonymous Coward · · Score: 0

    Teach the advanced math needed

    What advanced math?

    Very very few coders need anything like linear algebra or calculus, let alone any actual higher math.
    What math does your everyday programmer need? Arithmetic, a little elementary algebra, sometimes Cartesian coordinates, maybe very very basic recursive function theory.
    I can't think of any advanced math needed by most programmers.

  143. Re: to a Nazi, obviously. by jellomizer · · Score: 1

    However what is important is teaching the meaning of the culture of where the child is residing from.

    All this other stuff if it isn't part of your culture would be for a lesson later on. Normally if they are studying the east and they see the symbols you then can explain how they have a different meaning there then they do hear. But for a kid who made offensive symbol, vs. yelling at them or getting them in trouble, it is an opportunity to teach them about why this isn't appropriate.

    This nonsense that it means something else in different countries is besides the point. If this was done by a kid of an eastern descent then you may have to explain that in this culture it means something else.

    Your attempt to give this kid an excuse to say what he did was fine, and cover it up with trivia is only harmful.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  144. reality check by ncmathsadist · · Score: 1

    America has turned on its schools like a pack of rabid dogs. They elect legislatures that are cutting salaries and benefits. Americans are contemptuous of teachers and think they should just be underpaid babysitters. Schools are not quality-minded organizations; they want to hire on the cheap and to provide an "adequate" educational experience. They feature lousy working conditions and paltry salaries. In many states, there are no dependent health benefits for family members of teachers unless they pay hundreds of dollars a month for them. Yep, teaching is no longer a career. It's a gig you do before going to law or medical school.

    Companies are having trouble recruiting programmers at $80K/yr. A typical starting salary for a new teacher is under $40K in a lot of states. Many newer teachers must moonlight to make ends meet in addition to the avalanche of off-hours work that is often required. For these reasons, [you've been chopped] I don't think schools will take up teaching programming on a wide scale. This is a not happening. We have a problem, Houston. And no one has the slightest bit of interest in solving it.

  145. What do you want children to learn? by VeryFluffyBunny · · Score: 1

    As the many suggestions above attest, there are many languages and strategies for teaching children to write software.

    The thing about education is that it's supposed to help children to learn stuff that they'll find useful outside of the classroom. If they learn Scratch or Logo, where will they use that? If you want them to learn the more abstract principles of programming, you'll have to explicitly teach those too but that may not transfer well to other programming languages. You see, the thing about learning is that it's very specific, and transfer, i.e. taking knowledge from one instance or domain and using it in another, isn't what most people believe it is. We tend to transfer more abstract, intangible knowledge out of one domain into another in which we're already proficient. In other words we don't magically acquire logical reasoning skills in other domains from learning to think logically about writing code.

    See: Schwartz, D. L., Bransford, J. D. and Sears, D. (2005) ‘Efficiency and Innovation in Transfer’, in Transfer of Learning from a Modern Multidisciplinary Perspective, Greenwich, CT, Information Age Publishing, pp. 1–51 [Online]. Available at http://aaalab.stanford.edu/pap...

    The current research suggests that learning to write software makes children good at... ...writing software... ...and little else. Any claims about logical thinking, mathematical thinking, etc., or transferable skills or knowledge have yet to be substantiated.

    --
    Debate is a form of harassment. Do not question my truth.
  146. What stupidity by Anonymous Coward · · Score: 0

    If I ever see any substantive evidence that teaching an 8 year old "programming" improves their general life (skills, success, happiness), then I'll revise my opinion that the people who hold the belief that it does are no better than those who believe in astrology or that "education" is the cure-all to get to full, meaningful employment for all. What I'd first like to see is mandatory classes in 1. Cell Phone use, 2. Personal Grooming, 3. Personal Finance, 4. Parenting, 5. Sex Education, 6. Executive Function and time management, 7. Human development, aging and death, 8. Social Relationships and Emotional regulation, to name a few. It makes as much sense to me to teach kids programming, as it does to teach them Latin. Very, very few will ever use it. I've asked several teachers whether they teach youngsters about white slavery, and recruiting tactics and the don't have any idea what I'm talking about. There are so many IMPORTANT topics we should be teaching our young, but are not, it's disgraceful. Programming isn't in my top 50.

  147. wtf again by Anonymous Coward · · Score: 0

    this stupid fucking crap again? we need more k0d3rz like we need more lawyers. teach them USEFUL shit, like plumbing, welding, carpentry.

  148. "Right Around the Corner" by SuperKendall · · Score: 1

    Google and Microsoft have technology right around the corner that will render most programmers obsolete.

    You have NO IDEA how many times I head that one before. There was a product decades ago, literally called "The Last One" in an act of hubris that was meant to replace programmers....

    The more such products there are, the more work there is for programmers has been my observation. For then you need programmers to understand what the garbled mess was trying to do, and more to build some working software - usually on an urgent deadline...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  149. Conformity by Anonymous Coward · · Score: 0

    The same way we teach them anything in school: force.

  150. Re: Stupid by Anonymous Coward · · Score: 0

    Everyone should have at least a basic understanding of programming concepts imho.

  151. Re: to a Nazi, obviously. by Anonymous Coward · · Score: 0

    The entire history of a sacred ancient symbol is trivia? You sound pretty racist yourself.

  152. Transportation from after-school activities by tepples · · Score: 1

    even with limited computers you could teach programming in an after-hours context.

    But then how would students who learn programming at school after regular classroom hours get home from school? The buses have already left. Or should we as a society expect students to accept walking three miles (4.8 km) in a thunderstorm?

  153. Only one question by Anonymous Coward · · Score: 0

    You only forgot to ask: SHOULD we teach that to kids? Is it a must?