During the first Intel Academic Community session at SC10, "Preparing for Extreme Parallel Environments-- Training and Education" there were fantastic and engaging audience discussions.
The questions first centered on when and how parallel programming topics should be introduced. Most audience members agreed that, like data structures and algorithms, parallel programming is extremely important and needs to be included in Computer Science curricula. The main challenge in doing this arises from the fact that most classes do not have the time to add another “section” of material to their course. The advice that our panel members provided is to teach parallel programming in conjunction with other topics, and find a way to integrate parallelism without having to re-think the entire course. Professor Dick Brown of St. Olaf College noted that in order for parallelism to be integrated successfully, it needs to be done with an incremental approach.
Clay Breshears told a fascinating story about the work he did at Brooklyn Technical High School. He did a week long course there about parallel programming concepts, and the students understood them extremely well. This supports the notion that the earlier students are introduced to the ideas of parallelism, it becomes more natural to them to “think parallel”.
For more information about Intel’s workshop at Brooklyn Technical High School, see here.
3 Key Takeaways:
- Integrate parallelism to teach in conjunction with other concepts
- Inspire your students with interesting examples of what parallelism can accomplish (for example, with domain sciences)
- Expose students to the ideas of parallelism early on to get them familiar with it and ease the transition into writing parallel code in more advanced courses
Be sure to check out the free resources that the Intel Academic Community provides to help accomplish these goals!