Acme MUD

formerly "untitled gamification platform"

Intro To Programming

So a friend of mine is taking his first intro CS course, and I found myself ranting on EotL this morning about education. Most of my grumbling here is specifically about intro classes, but I really feel that’s the kind of programming we’re going to need for the future.

Sure, programming the big fancy thing in the big fancy building will still be done by expert programmers who are probably very well served by an advanced CS curriculum; but I’m convinced the most demand is gonna come from the programming of everyday things that are all around us – the kind of programming done by the layman or hobbyist who probably isn’t going to take more than one or two programming “classes” their entire life, most likely at the community level. I decided to post this here because I also think these are the kind of programmers we’re going to need in order for gabbo to work. Not a lot of folks are gonna want such a pervasive machine governing their actions, no matter how much fun it may be, without retaining the means to control it to some extent. Part of this will come from political machinery yes, but it must also come from universal access to a basic programming education. The modern world was formed out of a basic need to control our environment, and programming is how one controls their environment in the connected world. We won’t be able to advance very far until we fix how we’re teaching it.

With that here’s the log (amended): <pre>You say: one thing I feel programming classes get wrong, seemingly universally... You say: so handing out assignments You say: that is basically what we in the biz call requirements You say: and usually it comes in text form, drafted by some sort of business person or liaison to a business person or whatever You say: the teacher shouldn't even really be involved there, requirements can easily come from the book or tutorial or whatever You say: and then you have to analyze them and figure out what you need to build You say: that's what we call technical requirements You say: then you write the code You say: okay the 'grading your work' part of the teacher role You say: is basically code review You say: I mean code kinda grades itself, it either meets the requirement or it doesn't You say: that's the debugging process You say: and everything on top of that is style, which is why you need review You say: every developer needs to not only be graded, but must also learn how to grade You say: because in most situations, the reviewing is done by your peers You say: so handing out assignments, and grading them You say: that should be part of what you're learning to do, not the role of the teacher You say: hell sometimes you don't even need the text to hand out the business requirements, if the class is creative enough the students should be able to do that too You say: the role of the teacher should be to teach You say: but the curriculum is usually so focused on writing code it ignores those other things You say: sometimes schools like make another higher level class that you can take after the intro class to teach those things separately You say: but learning how to write code without being able to do the other stuff is a nearly useless skill You say: oh and another thing, expecting any student no matter how gifted to get it right the first time is unrealistic You say: no programmer gets it right the first time You say: but my experience, with these intro classes especially, is you hand in an assignment, get a grade, and move onto the next thing You say: that's never how it works, technology is by nature iterative You say: teaching programming without allowing if not requiring the student to iterate on their own work is absurd You say: anyway end of rant, but hopefully that gives you an idea of why I'm interested in this stuff You say: I'd love to try and fix it </pre>

Maintained by Bobby Schaetzle