How Should I Teach a Basic Programming Course?
riverman writes "I have been 'provisioned' at the school where I work to teach a new Computer Science/Programming course. I'm supposed to be teaching everything from the very-very basics (i.e. where that myspace thing is in your computer monitor, and how it knows who your friends are) to the easy-advanced (i.e. PHP classes and Python/Google App Engine). I'm an experienced programmer, but I'm not sure where to start — I could easily assume that my students know something basic they don't. Are there any resources on the internet that could help me find a solid curriculum? What are your suggestions?"
I'm sure many of us have gone through intro-level programming courses of some sort; what are some things your teacher or professor did that worked well, and what didn't work at all?
...my first class in programming: the teacher wrote "x=x+1" on the blackboard, and my reaction was "Huh? That is unsolvable!"
110 Teach Basic 120 End
-- I ignore anonymous replies to my comments and postings.
109 If you already know BASIC goto 120
We need to change the stereotypes of future generations of programmers!
The CB App. What's your 20?
(Considering I'm almost 30, I program computers for a good living, and I've never used it, I'm thinking: it ain't.)
Considering I'm almost 40, I program computers for a living and have to use it all the time, I am thinking you are a some kind of web developer.
Contrary to the popular belief, there indeed is no God.
One thing I have seen students get hung up on is:
It looks like an equality statement that couldn't possibly be correct. Just telling them it's "an assignment statement" doesn't seem to penetrate.
have you considered switching to Haskell?
Assign George Boole as outside reading.
Give them a little bit of overview as to how the machine actually works, and maybe later down the track they'll think before they cascade ELSEIF's or load stack manipulation inside tight loops. Make them sensitive to the tools they use, not just the media (the languages) they're working with.
You can cover ones and zeroes, registers, memory and addresses a little easier, maybe even shorten the process by a couple of days if you give them something that relates abstracts to the physical world. Tie things together a bit.
Do not mock my vision of impractical footwear