I've recently been elevated in my team to a lead position, and one thing I have identified as a problem is that we don't have any existing curriculum or program for teaching programming to those members on our team without programming experience. There seems to be a barrier to people's potential when they don't see things as a programmer -- like they don't look at problems from a machine's perspective. From what I've seen, those with even a basic knowlege of programming tend to approach problems differently.

However, just because I have some programming experience doesn't mean I can teach it. Does anyone have any recommendations for how I should design an "on-the-job" training course with the objective of giving people a solid introduction to programming? Any suggestions are greatly appreciated! Thanks!

You can take the gist of following books
impatient perl
learning perl
and intermediate perl

I was just reading about programming and SQL logic, and how they are different. ('Data & databases: Concepts in practice' by Joe Celko).

He explains the difference between programming logic and SQL logic. For a programmer, logic is used to make decisions about sequential control. In SQL, logic makes a statement about the state of the data.

Programmers usually think in terms of 2 values: TRUE or FALSE. But in SQL there is a 3rd value called UNKNOWN, which is different from NULL.

In your course you will need to devise ways to measure and test the relevant kind of logic.