I’m biased in favor of PBL based approaches to learning. It is a lot more work to design and setup, but the payoffs in terms of learning that “sticks” is well worth the initial design time. This is a nice introduction to the concept in a practical setting.
Here’s an interesting guide to problem based learning:
“This guide is based on what Queen Mary University of London does and its context. It can be used as a guide to developing a PBL system that works in your context….”
… and another one on using case studies!