How to teach programming to first timers at a college level?
We've had pretty good success through the Software Carpentry initiative.

There are software carpentry bootcamps happening around the world: I'd advise going on one yourself, before hosting them.

They offer a well-rehearsed pattern of training, with lots of hands-on exercises, using open-source training materials.

You can mix and match bits of the syllabus to suit: databases, particular languages, using the shell command line, source-code version control, OOP, and so on.

Once you've put one cohort through a Software Carpentry bootcamp, get them to be the helpers on the next software carpentry bootcamp, for the next cohort of students. That way, they get to copy the successful "see one, do one, teach one" method used in medical training: they learn at least as much again when they're teaching the material, as they did when being taught it.