Pervasive parallel and distributed computing in a liberal arts college curriculum

Abstract We present a model for incorporating parallel and distributed computing (PDC) throughout an undergraduate CS curriculum. Our curriculum is designed to introduce students early to parallel and distributed computing topics and to expose students to these topics repeatedly in the context of a wide variety of CS courses. The key to our approach is the development of a required intermediate-level course that serves as an introduction to computer systems and parallel computing. It serves as a requirement for every CS major and minor and is a prerequisite to upper-level courses that expand on parallel and distributed computing topics in different contexts. With the addition of this new course, we are able to easily make room in upper-level courses to add and expand parallel and distributed computing topics. The goal of our curricular design is to ensure that every graduating CS major has exposure to parallel and distributed computing, with both a breadth and depth of coverage. Our curriculum is particularly designed for the constraints of a small liberal arts college, however, much of its ideas and its design are applicable to any undergraduate CS curriculum.

[1]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[2]  Jie Wu,et al.  NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates , 2011, SIGCSE '11.

[4]  Ewing L. Lusk,et al.  Programming with MPI on clusters , 2001, Proceedings 42nd IEEE Symposium on Foundations of Computer Science.

[5]  Norman E. Gibbs,et al.  A model curriculum for a liberal arts degree in computer science , 1986, CACM.

[6]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[7]  Marcelo Arroyo Teaching Parallel and Distributed Computing to Undergraduate Computer Science Students , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[8]  David J. John,et al.  Parallel and Distributed Computing across the Computer Science Curriculum , 2014, 2014 IEEE International Parallel & Distributed Processing Symposium Workshops.

[9]  Éva Tardos,et al.  Algorithm design , 2005 .

[10]  Charles Kelemen,et al.  A 2007 Model Curriculum For A Liberal Arts Degree In Computer Science , 2007 .

[11]  Samuel P. Midkiff,et al.  Introducing Parallel Programming in Undergraduate Curriculum , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[12]  Richard A. Brown,et al.  Patterns and Exemplars: Compelling Strategies for Teaching Parallel and Distributed Computing to CS Undergraduates , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[13]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[14]  Andrew Danner,et al.  Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.