ABSTRACT
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.
- ACM/IEEE-CS Joint Task Force, "Computer Science Curricula 2013." {Online}. {Accessed: 07-Sep-2013}: http://ai.stanford.edu/users/sahami/CS2013/.Google Scholar
- R. Brown and E. Shoop, "Modules in community: injecting more parallelism into computer science curricula," in Proceedings of the 42nd ACM technical symposium on Computer science education, New York, NY, USA, 2011, pp. 447--452. Google ScholarDigital Library
- B. Wilkinson, J. Villalobos, and C. Ferner, "Pattern programming approach for teaching parallel and distributed computing," in Proceeding of the 44th ACM technical symposium on Computer science education, New York, NY, USA, 2013, pp. 409--414. Google ScholarDigital Library
Index Terms
- Teaching parallel design patterns to undergraduates in computer science
Recommendations
CSinParallel: Using WebMapReduce to Teach Parallel Computing Concepts, Hands-on (Abstract Only)
SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science EducationMap-reduce computation is the on-ramp to data-intensive cloud computing, and arguably the most widely deployed form of parallel/distributed computing. Participants will carry out exercises designed for students at CS1, intermediate, and advanced levels ...
CS in parallel: modules for adding parallel computing to CS courses, from CS2 to theory of computation (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationParallel computing with more and more cores is here to stay. This workshop presents four independent, class-tested, primarily hands-on modules for incrementally adding parallelism in undergraduate CS courses, each requiring 1 to 3 class days and ...
Teaching Parallel and Distributed Computing with MPI on Raspberry Pi Clusters: (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationCS2013 brings parallel and distributed computing (PDC) into the CS curricular mainstream. The Message Passing Interface (MPI) is a platform independent, industry-standard library for parallel and distributed computing. The MPI standard includes support ...
Comments