I would do something that motivates them. I don't think reading a book will, it doesn't work with my students, and I believe it only works with self-teaching people, which is not the majority. Determining what motivates them seems tricky in your case.
My approach would be to do lab sessions with them and repeat the following cycle:
Explain something briefly (like 20-25 minutes). The explanation should be like a screencast, with you writing code and compiling, and running it. That is, you "doing" something useful. In your case, useful might mean something related to their job (but not always).
Propose some exercises that you know they can do easily with what you have explained. The first exercise could be simply to replicate what you have done. And the next to extend the solution in certain ways.
Spend time with everyone to see how they are doing, and then spend more time with the ones that are not following so quickly (and give the good ones more work so that they are not bored).
If you know the subject well, this is an approach that works very well for me. The idea is always to try to do something useful during the class. I'm sure Head First C# contains some ideas, but I haven't read it.
As an example, the other day I did the following (my class is C++, and I was teaching STL containers, and efficiency). I gave the students two text files: a book from Project Gutenberg, and a complete word list for the language of the book (in my case Spanish). You can find both on the Internet. The idea was to produce a list of those words that appear in the book that are not in the word list, like names of people, places, whatever. It was not perfect, since the word list in Spanish doesn't contain conjugated verbs, and therefore a lot of wrong stuff came out in the solution, but the idea is that it was a small project for the session (2 hours), and the students were a little curious about what would come out. The best students will do it quickly, and the others will often be driven by envy, and work harder just to catch up with the others. That is always a good motivation, I exploit it a lot.
Now, for this you would need to think about 4 simple 'projects' every week. While thinking about the problems, I suppose you will see connections between them and could make them last a couple of classes or more, and end up with something more substantial. To put another example, in this course I mentioned already, we ended up writing a simple SRT (subtitles) editor in Qt. Nothing fancy, but they found it useful, and that counts a lot.
In summary, any programming class needs motivation and I think there is no better motivation than to reveal the computer as an incredibly powerful tool to do repetitive and automated stuff. If you can quickly show that to them, everyone will notice and they'll be interested. By the way, at no point I did say this was easy.
Oh, one last thing: avoid the Fibonacci series and the primes, they bore everybody except the nerds.