Teaching parallel design patterns to undergraduates in computer science
暂无分享,去创建一个
The industry shift to 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 ACM/IEEE CS2013 recommendations. 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 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 ubiquity of these patterns in all forms of parallel and distributed computation makes parallel patterns relevant and illuminating at all undergraduate levels, and knowledge of those patterns can guide effective problem solving for parallel programs. This panel presents four viewpoints representing various approaches for teaching parallel patterns to CS undergraduates at various academic levels, including short "patternlets" examples, patterns in domain applications and parallel problem solving, and two tools, Seeds and Paraguin, for teaching parallel design patterns to undergraduates.
[1] Barry Wilkinson,et al. Pattern programming approach for teaching parallel and distributed computing , 2013, SIGCSE '13.
[2] Richard A. Brown,et al. Modules in community: injecting more parallelism into computer science curricula , 2011, SIGCSE '11.
[3] Sally Fincher,et al. Computer Science Curricula 2013 , 2013 .