Monday, July 13, 2015

What is real programming?

I’m tempted to just leave the question there, get some popcorn and watch sparks fly. A lot of discussion on more or less that topic in the comments on a blog post Mark Guzdial wrote recently Do blocks equal “making” and text equal “coding”? Doing MediaComp in Blocks-Based Languages

Is HTML programming? Probably most of us agree it is not. But building a web page today is so much more than it used to me. Is HTML 5 programming? Maybe so. Is block programming “real” programming or do you have to be using a text based language? Ozobots can be programmed by drawing different colors on lines that the robot senses. Is that real programming? Does it matter if you use an IDE or is it less real unless you are using a text editor and a command line? As n aside every time someone suggests a command line for code I want to suggest that card readers are both more real and better. After all I can still read my cards from my college programs while the code on my DECtape is probably lost for ever even though it was entered in the command line.

At some point the question of what is real programming just becomes silly to me. If the tool you are using to give commands to the computer work and gets the right results isn’t that programming? Does it matter if it is a block, a line of text or a color on a piece of paper? Why get wrapped up in some sort of my way is more way then your way discussion? What is the point?

For teaching a first course the focus should be on the concepts and not the tools. It’s a real loop in Alice or TouchDevelop or Python or Java or what ever. If you want to define real computer science for a university student I suggest CS 2013 as your reference and good luck fitting that into your high school curriculum!

1 comment:

Garth said...

Things we that are teaching in the field cannot seem to define:

1. Computer Science
2. Programming
3. "Real" programming
4-87. Bunch more stuff

But they are always good for fun and educational discussions.