On Monday, 9 May 2016 at 19:09:35 UTC, Joe Duarte wrote:
I don't think the platforms people are introduced to in CS education are very good at generating excitement about what computers can do. It would be interesting to gauge what sorts of things people think they might be able to create, what sorts of problems they think they could solve, or new interfaces they could implement, after their introduction to programming. What horizons do they see?

I think you're partly right here, but you seem to think somebody can read a "Learn [language] in 24 Hours" book and write awesome software; that isn't going to happen. Programming is a craft. I play classical guitar as a hobby, but I have a friend that embodies classical music. I can play, but because of his dedication to the music he is (I would argue) one of the great composers of our time.

When I first started playing guitar, my teacher barely had me playing anything, but we talked a lot about music theory, and that made learning easier later on. We need to be careful that making things easier for beginners doesn't hurt them in the long run.

For example, there used to be a lot of excitement about what computers could do for education. Those visions have not materialized, and it's not clear that computing is doing anything non-trivial in education for reasoning ability, unlocking math aptitude, writing creativity, etc. It might actually be a net harm, with its effects on attention spans and language development, though this will be very complicated to assess.

I think it is often harmful -- we're teaching people to use the tech rather than using the tech to teach people.

My Kiwanis club gives money to our kindergarten teachers every year for school supplies, and the teachers generally come and talk about what they're doing with the kids. The first year they used iPads they weren't that happy -- they should be reading from a book, they're too young, etc. The next year they were showing off what they could do with the kids now; they still had complaints, but they were able to help kids learn in ways they could not previously do.

How we use the technology determines whether it's positive or a negative. We just need to quit placing tech in schools because it's shiny and use when it's beneficial.

Forcing people to learn Vim or Emacs, grep, and poorly designed command line interfaces that dump a bunch of unformatted text at you are disastrous decisions from a pedagogical standpoint. (See the BlueJ project for an effort to do something about this.) They do nothing to illustrate what new and exciting things you could build with computers, and they seem to mold students into a rigid, conformist nix, git, and markdown monoculture where computing is reduced to bizarre manipulations of ASCII text on a black 1980s DOS-like screen, and constantly fiddling with and repairing one's operating system just to be able to continue to work on this DOS-like screen (Unix/Linux requires a lot of maintenance and troubleshooting overhead, especially for beginners – if they also have to do this while learning programming, then programming itself could be associated with a life of neverending, maddening hassles and frustrations). The debugging experience on Unix/Linux will be painful. From a pedagogical standpoint, this situation looks like a doomsday scenario, the worst CS education approach we could devise.

This reads more like a rant than an analysis of programming tools/procedures. You and I seem to have had very different introductions to programming.

The idea that we should no longer be stuck with text-based odd-looking programming languages and tools is kind of like claiming that since we can get running water on the 30th floor of a building, plumbers shouldn't have to deal with the mess of a septic tank. There must always be somebody at the low-level. The projects you mention that are heading the direction you prefer are able to do so because somebody else had done a lot of the messy work (or they're doing the messy work for their users). There will always be a programmer working in the sewers to let another work from the penthouse.

After we "fix" programming, are we going to tell the chip designers that things should be simple and intuitive enough that anyone can build a computer processor?

Reply via email to