Today, many computing environments consist of multiple computing elements including multi-core machines, GPU and clusters. The learning computing architectures for most undergraduate computer science students are primarily treated as single CPUs — there is a large disconnect. There is much interest in teaching parallel and distributed computing to undergraduates, as evidenced in the ACM/IEEE Joint Curriculum recommendations (Curriculum 2014) and the IEEE/NSF recommendations. Two pedagogical strategies are being studied by the computer science communities: introduction of a sophomore level course on parallel and distributed computing, and integration of PDC topics into existing computer science core topics. Professors Thomas and John are actively involved in the development and dissemination of small parallel and distributed computing modules that fit appropriately into core computer science courses. In 2014 Wake Forest was recognized as an early adopter in this effort.
Modules that have been developed so are are: