FutureGrid Education: Using Case Studies to Develop A Curriculum for Communicating Parallel and Distributed Computing Concepts Jerome Mitchell Indiana University Bloomington, Indiana jeromitc@indiana.edu Judy Qiu Indiana University Bloomington, Indiana judy.qiu09@gmail.com Massimo Canonico University of Piemonte Orientale Vercelli, Italy mex@di.unipmn.it Shantenu Jha Lousiana State University Baton Rouge, LA sjha@cct.lsu.edu Linda Hadyen Elizabeth City State University Elizabeth City, North Carolina haydenl@mindspring.org Barbara Ann O’Leary Indiana University Bloomington, Indiana baoleary@indiana.edu Renato Figueiredo University of Florida Gainesville, Florida renato@acis.ufl.edu Geoffrey Fox Indiana University Bloomington,Indiana gcf@indiana.edu ABSTRACT The shift to parallel computing—including multi-core com- puter architectures, cloud distributed computing, and general- purpose GPU programming—leads to fundamental changes in the design of software and systems. As a result, learn- ing parallel computing techniques in order to allow software to take advantage of the shift toward parallelism is of im- portant significance. To this end, FutureGrid, an experi- mental testbed for cloud, grids, and high performance com- puting, provides a resource for anyone to find, share, and discuss modular teaching materials and computational plat- form supports. This paper presents a series of case studies for experiences in parallel and distributed education using the FutureGrid testbed. Building on previous experiences from courses, workshops, and summer schools associated with FutureGrid, we present a viable solution to developing a curriculum by leveraging collaboration with organizations. Our approach to developing a successful guide stems from the idea of any- one interested in learning parallel and distributing comput- ing can do so with minimum assistance from a domain ex- pert, and it addresses the educational goals and objectives to help meet many challenges, which lie ahead in the discipline. We validate our approach to developing a community driven curriculum by providing use cases and their experiences with the teaching modules. Examples of some use cases include the following: hosting a workshop for faulty members of historically black colleges and universities, courses in dis- tributed and cloud computing at universities, such as Indi- ana University, Lousiana State University, and the Univer- sity of Piemonte Orientale. 1. INTRODUCTION In order to prepare students for the manycore era, com- puter science educators must urgently increase the promi- nence of parallel computational concepts and programming in their curriculum. The concurrency evolution is not the only reason to teach parallelism to interested students. Cur- rent avenues to teach parallel and distributed computing fo- cus on smaller- sized problems and datasets, which can be processed on a student’s personal computer, making them ill-prepared to cope with the vast quantities of data in oper- ational environments. Even when larger datasets are lever- aged in a control medium, they are mostly used as static resources. Thus, students experience a disconnect as they transition from a learning environment to where they work on real-world problems. Some of the most exciting emerg- ing applications of computing involve data-intensive scalable computing, which allow computational frameworks, such as, Google’s proprietary, MapReduce and the open-source Apache Hadoop to be applied to datasets of web scale. Because computer scientists and software developers can no longer take advantage of Moore’s dividend, where software developers rely on increasingly faster CPUs for faster soft- ware - has expired, educators must become pioneers, learn from their efforts, and work together to infuse a curriculum with parallelism. Some computer science educators have started by suggesting ways to introduce parallel concepts and problems into an educational context. As a step towards enabling interest in parallel and distributed