https://hgpu.org/?p=15011
A Problem-Based Learning Approach to GPU Computing