Experiences on Teaching Parallel and Distributed Computing for Undergraduates

Érik Saule · 2018

The recent increase in interest on big data and data intensive computing makes it important for CS undergraduate students to receive education in Parallel and Distributed Computing. The increase in scope and popularity of a CS education often causes the majority undergraduate students to take a whole four year degree to really perceive modern computing challenges; it therefore poses new challenges in teaching parallel computing. At UNC Charlotte, the Parallel and Distributed Computing class is a required class for the Systems, Software, and Network concentration of the BS in Computer Science. As such, it poses particular challenges because the class sees high enrollment, a diverse body of student and is the last opportunity to ensure basic computing skills as all later classes are electives. This paper presents the design choices of this class which focuses on teaching parallelism as opposed to performance through analysis of parallel algorithms, parallel programming in different models, and scalability testing. The paper also presents a set of scaffolded assignments that leverage a PBS cluster for testing. We present feedback from teaching the class during the Fall 2017 semester. In particular we introduced a simple tool to help extracting dependencies on algorithms and compute critical path. And we present student suggestions of assignments that would lead to higher engagement.

Read the paper · More papers on PaperTik