Designing Problems for Problem-based Learning