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?
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?
Teach them to think, and mental discipline. We do not need more code monkeys.
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.
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.
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.
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?
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.