As a comp sci student, I have to say I love the format my teacher uses:
You have problem sets to do, work on them in class (and at home if you want to), you will have a test on this day.
Pretty simple. We spend 95% of the time in the class coding, and it's the most efficient way.
One note: allow some open-endedness on coding problems. If a kid wants to do something cool and fun with an assignment, let them, and help teach them.
Also, not allowing students to use break; outside of switches will annoy the hell out of them, but it'll also help them learn to code well. I know I've hated my comp sci teacher for it, but it also helped me when I was learning loop use.