I always started with figuring out what was the real underlying goal of the class (which is NOT to cover chapters 1-15 in the textbook.) In other words, in the real world why would someone need to know this information.
For instance in teaching an operating systems course to a group who are specializing in networking, the real goal might be to have the students be able to research and troubleshoot operating systems issues. This is very different than being able to tell you the difference between Windows and Macintosh and Linus operating systems (which seems to be the goal of most textbooks!).
In a database course designed for people who are specializing in information systems, the real goal is to understand how to query a database and especially in enough complexity to produce reports. But if the students are computer science students, they need to not only query the database but understand how to design one. (Incidentally all the database textbooks I ever read started with database design and work out to queries at the end and I always reversed this, students who don't understand how to query aren't ready to understand how to design. Do it in the order of the texts and you'll lose half the students the first week. Think about this in what ever texts you are using, is the information in the logical order for understanding it?)
Once you really understand what the student should be able to do when the course is finished, it is easier to design the course. I always think of what real world examples I can find to get the material across. Textbooks have notoriously bad examples and leave the students wondering why they would ever want to do whatever the task was. I try ot supplement with examples that will make sense to the students as to why they would want to do ...
I rarely taught a course without a final project. Further, I allowed at least two weeks at the end of the course where they worked on the project in class in front of me. By wandering around the classroom, I could see who was having trouble and who was probably going to try to steal an answer off the Internet and give it to me without understanding. I never let students work on a project completely in off-class time. Further I made my class projects such that they were relatively hard to steal by varying them every semester. I also was sneaky because I only told them the elements they had to have in the final project to get a B. To get an A they had to do things not described in the project handout. Once I started doing this the quality of the work I got went up drastically as students had no idea how much extra they had to do to get an A and went all out. The other instructors at the school where I taught (a technical college) were so impressed with the projects my students did vice what theirs did that several of them also adopted this approach.
In day-to-day teaching, I usually did as little lecture as possible. Often instead of lecturing, I asked the students questions to cover the same material in a way that would make them more likely to learn it than a lecture (Lecture is hands down the least successful and most used training technique because it is easiest for the teacher to prepare). I averaged 10% lecture when I taught and the rest was hands on and group discussions. When I did lecture, I made it interesting, no reading straight from the text or slides. If a student seemed to not be paying attention or falling asleep, he or she immediately got asked a question.
I also prepped extra exercises for the smart students who finished earlier than everyone else. No one permitted to sit around looking bored in my class. I also got some of the students who grasped the material best to work individually with some of those who didn't. That gave the least proficient more attention and helped keep the most proficient from being bored, plus explaining to someone else helped cement their learning process.
Don't give out exercises to do and then leave the room. Move around the room and give people individual attention. Let them ask questions to you personally that they might not be brave enough to ask in front of the whole class. Make sure you see what they are doing with the exercises and give pointers when they are stuck by asking leading questions. When you see a pattern inthe problems several people are having, stop the exercise and explain somethign further if need be.
In class discussion, force everyone to participate. It is your job to make sure they all get the material, not just the few smarest who answer first.
If the class is clearly not getting something, try a differnt method to get it across. It is more important that they understand the material you do cover than the total number of chapters covered. If that means that you have to repeat a particular difficult section of the course 4 times using four different techniques, then do it. This is especially true of critical skills or concepts.
You are preparing students in a field where research skills and problem solving ability are important. Include exercises that use those in every class. Make sure they have things to do where right answer can't just be looked up in the back of the text. Make them find three differnt ways to solve a problem for instance. Then ask them to tell you the pros and cons of each way.
I'm not fond of group projects until the students are very advanced. The more advanced students will do the group work to get the A and the less advanced will do little or nothing and thus no learning occurs for them. Core concepts need to be learned individually. When you do a group project, I never let the students choose the groups either. You have to work with whoever else works at your workplace not just your friends, learn to deal with people you aren't fond of at school.
In teaching you get what you expect - so expect more than you think they can give you. You'll be pleasantly surprised at how much more they can do.