I once taught a short course in usability. I used an exercise I learned from someone else: design the controls for a microwave oven. Given them a set of requirements and have them do a paper prototype. Partway through, change the design slightly. (In mine, started with the assumption that the time could be set automatically from the mobile phone network, then I added the requirement that it needed to be set manually.) Then have them do user testing for scenarios which test those requirements.
I used someone who wasn't in the class as the test subject, which was also a chance to mention the ethics of human testing: make sure that the test subjects know they can stop at any time, let them know the goals of the project, etc.
This is small enough to do in a couple of hours.
I've heard of a technique for teaching some of the ideas you want to teach. Have them develop a code project. Part way through have the teams switch code bases, or form new teams using the original code bases as the start. I have no experience with that technique, and it probably takes longer than you have time for your workshop.
As for things to cover, get a copy of Rapid Development and review it for the topics you think are the most important. There are way more things to cover than is possible in a workshop for inexperienced developers.