
Re: Details?
I taught calculus and linear algebra to 1st and 2nd year engineering students at Ga. Tech - that's how I paid for school :) Because everyone had to take core math classes at a non-trivial level, the sections were huge - a 5 hour class consisted of a professor lecturing 3 hrs a week to 200 or so students, while 5 or so teaching assistants would conduct the other 2 hrs as problem solving, test discussion etc. Since what we did was more or less up to us as long as we covered the appropriate sections of the book, I used at least half the time explaining the ideas in practical terms and illustrating with zillions of examples, particularly from physics which gave them a head start on the core physics courses to come the next year. I made them do hundreds of problems which made a lot of extra work for me, but it was well worth it because my students were *good*. We almost always topped the list of TA sections. I never coddled them but my door was always open. I explicitly used Feynman's advice to aim at the best students - when you do this a weird "symbiosis" takes over, the mental climate of the class gets more charged, and the middle students do better - so the main things were lots of mechanical work - idioms - practical explanations, and aiming at the top students.
In the context of programming - if it's a beginning class then what they most need to master is the mechanics of making programs - understanding what a compiler does, what a linker does, generalities of machine architecture etc. Then throw algorithms at them and have them implement them in the language of choice. If they are comp-sci majors they can handle C as a first language - like cranking out multiple integrals and eigenvectors, the very process of working with C will provide a firm basis for higher level work. "Pair programming", "XP" and all that BS at an early stage sounds too much like "new math". If you had time to prepare (this can't be overstressed in teaching - preparation is everything) you could work out a step by step program for writing a complete, non-trivial application, say, a Rolodex, a comp-sci calculator, etc.
In short - in the early stages, play God, be God, live God. They want to be instructed. The NEED to be instructed.
-drl