|"A Breadth-First Course in Multicore and Manycore Programming"—Sonoma State||
Suzanne Rivoire from Sonoma State recently taught an undergraduate course on multicore/manycore programming. She wrote a paper on it for the ACM SIGCSE Technical Symposium on Computer Science Education (slides, course materials).
The course covered shared-memory programming (OpenMP), threaded programming with Intel's Threaded Building Blocks, and GPU programming with CUDA. I'm impressed with the diversity of topics covered, and the fact there were labs and projects for each component of the course. Also interesting for CUDA fans is that 7 of the 8 student groups surveyed chose CUDA as their first choice for the final project; CUDA was clearly preferred over OpenMP, which was favored over TBB.
Rivoire also concluded that a breadth-first course is preferable to studying a single model in depth, but the 3-week modules she chose were perhaps a little short. Definitely an interesting read for faculty considering introducing parallel programming to undergraduates.