The industry shift emerging forms of parallel and distributed computing (PDC), including multi-core CPUs, cloud computing, and general-purpose use of GPUs, have naturally led to increased presence of PDC elements undergraduate Computer Science curriculum recommendations, such as the new and substantial "PD" knowledge area in the joint ACM/IEEE CS2013 recommendations[1]. How can undergraduate students grasp the extensive and complex range of PDC principles and practices, and apply that knowledge in problem solving, while PDC technologies continue to evolve rapidly? Parallel design patterns are descriptions of effective solutions to recurring parallel programming problems in particular contexts and have emerged from long-standing industry practice. Parallel patterns occur at all computational levels, ranging from low-level concurrent execution patterns (such as message passing or thread pool patterns) to high-level software design patterns suitable for organizing entire systems or their components (such as model-view-control or pipe and filter patterns). The sheer number of parallel patterns, which reflect the full breadth and complexity of PDC, can be quite daunting for a newcomer. However, the ubiquity of parallel patterns in all forms of parallel and distributed computation makes these patterns relevant and illuminating at all undergraduate levels. Knowledge of parallel patterns, being reusable elements of parallel design, guides problem-solving during the creation of parallel programs; and those enduring design patterns remain relevant and useful as new PDC infrastructure emerges in this rapidly evolving field. This panel presents four viewpoints representing various approaches for teaching parallel patterns to CS undergraduates at multiple academic levels. Moderator Dick Brown co-directs (with Adams and Shoop) the CSinParallel project (csinparallel.org), which produces and shares modular materials for incrementally adding parallelism to existing undergraduate computer science courses [2]. A former director of CS at St. Olaf, he serves as an officer and executive board member of EAPF (eapf.org). Brown will briefly review the goals of the session (3-4 min), introduce each panelist (10 min each), and moderate discussion.
CITATION STYLE
Brown, R. A., Adams, J. C., Ferner, C., Shoop, E., & Wilkinson, B. (2014). Teaching parallel design patterns to undergraduates in computer science. In SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education (pp. 547–548). Association for Computing Machinery. https://doi.org/10.1145/2538862.2538875
Mendeley helps you to discover research relevant for your work.