Pedagogy and tools for teaching parallel computing at the sophomore undergraduate level
Max Grossman,Maha Aziz,Heng Chi,Anant Tibrewal,Shams Imam,Vivek Sarkar
DOI: https://doi.org/10.1016/j.jpdc.2016.12.026
IF: 4.542
2017-07-01
Journal of Parallel and Distributed Computing
Abstract:As the need for multicore-aware programmers rises in both science and industry, Computer Science departments in universities around the USA are having to rethink their parallel computing curriculum. At Rice University, this rethinking took the shape of COMP 322, an introductory parallel programming course that is required for all Bachelors students. COMP 322 teaches students to reason about the behavior of parallel programs, educating them in both the high level abstractions of task-parallel programming as well as the nitty gritty details of working with threads in Java.In this paper, we detail the structure, principles, and experiences of COMP 322, gained from 6 years of teaching parallel programming to second-year undergraduates. We describe in detail two particularly useful tools that have been integrated into the curriculum: the HJlibparallel programming library and the Habanero Autograder for parallel programs. We present this work with the hope that it will help augment improvements to parallel computing education at other universities.
computer science, theory & methods