what with all the efforts researching teaching kids to program, what about teaching adults part?

it seems that there are plenty of multimedia based environments for helping those precious, allegedly incapable of Java programming, kiddies to write some code. I just found out about Scratch and BYOB. I already knew about Alice and Lego/Karel. Then there is this whole page http://en.wikipedia.org/wiki/Category:Educational_programming_languages where at least a few languages probably fall into the same category.

In any event, isn’t it sort of strange that so much effort (and money, given that at least in MIT Media Lab they are not hacking this stuff for free) is being put into teaching trivial stuff to people majority of whom will take it no further, while no apparent research goes into the more obviously useful task of teaching real software engineering to college kids and similar professionals? I mean, it’s not like the way even basic programming is taught right now results in excellent proficiency rate in graduates of less than stellar ability, to say nothing of teaching people not just to write something that works but also that are easy to maintain and is not dailywtf ugly crud. There are all sorts of levels on which software engineering could be taught according to ever improving teaching techniques - so how come the only level that seems to get funding and effort now is the one that is the most useless and irrelevant to the real needs of the industry?

I think you’re getting two problems conflated incorrectly – I don’t think much of the funding for youth-oriented programming is being meaningfully diverted from adult education.

The reason youth-focused languages get focus is because it’s important to give kids broad exposure, and it’s important to “demystify” computers to kids a bit, even if it’s teaching them a language that’s not ultimately useful. The idea is to teach the conceptual space early, so if these kids pursue “real” coding, they have a sense of the way it comes together. It’s similar to learning to color with crayons before painting with oils (or doing technical illustrations) – the former skill isn’t the same as the latter, but it can help with the latter. And it’s far, far easier to teach.

There certainly seems to be a need to improve csci at a higher-ed level, but I don’t think the methodology is defunding youth-oriented programs. Especially since most of the serious coders I know have said they think self-directed learning is much more useful for programming than classroom-directed, and teaching “learning languages” might be a way to spark self-directed learning.

I agree that it is really hard to teach programming across the board. Most people who work in IT started learning really young in my experience including me so it is important to make that experience available to young people. Many of today’s crop of 45+ year olds seem to have a fundamental problem with understanding how computers work at an intuitive level and that is very difficult to overcome. That said, computers are so ubiquitous these days that people tend to learn what they need to when they need to badly enough in a hands-on and personal way. That is the best way to do it by far. For some, it may rudimentary programming using tools like setting up a mail merge in MS Office or designing a macro in Excel. For others, it may be building a simple game because they have an idea and want to see it work. More advanced people may want to learn something like Python because they already have some programming experience and want to become more proficient and current but most people don’t need to know anything about Python.

Programming can mean things at many different levels. There is little reason to teach most adults how a compiler works if they haven’t shown an interest up to that point.

RE typoink, opinions of “most serious coders” about the proper way of teaching programming are not completely immaterial, but they should not be taken as gospel either. A typical Old Kingdom Egyptian scribe had his opinions about best ways of teaching (and practicing) writing. Nothing wrong with that, the system worked to the extent that it worked by following those opinions. But that was not, as we now know, anywhere near the optimal approach. The alternative technique, more similar to our alphabetical writing, was eventually invented by some non-establishment type people during one of the chaotic “intermediate periods”. Similarly, the practice of training the urban militia to kill heavily armed and trained knights with crossbows did not originate with the “most serious warriors” either.

RE Shagnasty, I don’t mean edutaining adults in the spirit of “education is our future” type liturgy. Some adults (or let’s say 18-20 year old college students) do sincerely want to learn the art and become professionals. They don’t need to be motivated to learn, as witness from their willingness to dedicate years of their life and thousands of tuition money to the task. The question is, how effective is the training that they are getting as a result? And why is work on better ways to entertain kids apparently getting so much more effort, prominence and funding then work (if it even happens at all nowadays, of which I have seen no evidence so far) on improving the professional training of these adults?

Because they are adults and can take their own college courses and stuff or just buy their own computers and take it from their. 18 - 20 year old college students of today should have had plenty of time to express an interest in technology and start to learn about it.

I don’t even see why money is an issue at all. Programming is the only zero cost opportunity that I know of that can lead to a job. Many compilers are free, whole operating systems are free, tutorials and even whole college courses are on the web. You just have to do it if you want to. I have worked with computers since I was young and made a profession out of it but how do you think I learned Python or many other current skills? I just downloaded the tools I needed and started on something simple I was interested in. If someone doesn’t have the self-motivation and curiosity to make it that far, programming and an IT career aren’t the place for them. That is what it is all about even professionally.

we get it, Shagnasty, you are not the crossbows against the knights sort of guy. And the only improvement imaginable to the status quo is better crayons, oops, media environments for children.

University education isn’t as developed as it could be because we consider education to be a byproduct (or, just often, distraction) from research. Teaching is a secondary objective, and few professors have much teacher training.

We devote time to teaching little kids because things like programming give them exposure to a different way of solving problems or structuring their logic, and will pique the interest of and create a lifelong passion in a small number of them. Kids are too young and inexperienced to specialize, so we try to give them a wide range of experiences.