2. Background and Activities
We start with some historical background behind the NSF/TCPP curriculum effort and a synopsis of some synergistic activities of the curriculum working group. Readers who wish to refer to the curriculum guidelines only may skip to Section 3.
2.1 Version 1 of NSF/TCPP Curriculum and Impact
As background preparation for the development of the curriculum proposal, a planning workshop funded by the US National Science Foundation (NSF) was held in February 2010 in Washington, DC. This was followed up by a second workshop in Atlanta, alongside the International Parallel and Distributed Processing Symposium (IPDPS) in April 2010. These meetings were devoted to exploring the state of existing curricula relating to PDC, assessing needs, and recommending an action plan and mechanisms for addressing the curricular needs in the short and long term. The planning workshops and their related activities benefited from experts and various stakeholders, including instructors, authors, industry, professional societies, NSF, and the ACM education council. The primary task identified was to propose a set of core topics in parallel and distributed computing for undergraduate curricula for CS and CE students. Further, it was recognized that, in order to make a timely impact, a sustained effort was warranted. Therefore, a series of weekly/biweekly tele-meetings was begun in May 2010. These weekly tele-meetings have continued uninterrupted since then. A preliminary version of the NSF/TCPP curriculum guidelines was released in Dec of 2010 and the first version was released in 2012, after nearly two years of deliberations. The first version of the curriculum can be found at http://tcpp.cs.gsu.edu/curriculum/?q=system/files/NSF-TCPP-curriculum-version1.pdf.
2.2 Impact of the Curriculum
This initial effort was quite impactful. The CS2013 ACM/IEEE Computer Science Curriculum Joint Task Force also recognized the need to integrate PDC topics in the early core courses in the CS curriculum, and collaborated with us leveraging our curriculum. The CS2013 curriculum explicitly refers to the NSF/TCPP curriculum for comprehensive coverage of parallelism (and provides a direct hyperlink1). ABET/CSAB now has a new parallelism requirement2, and we have initiated collaborations. The enthusiastic reception of the curriculum guidelines led to a commitment within the working group to continue to develop the guidelines and to foster their adoption at an even broader range of academic institutions. Toward these ends, the NSF-supported Center for Parallel and Distributed Computing Curriculum Development and Educational Resources (CDER) was founded3. Since 2011, CDER has worked for broad adoption of PDC in early courses by awarding over 100 early adopter grants, organizing four annual Edu* workshops and five CyberTraining workshops, and publishing two edited books and two journal special issues.
Early Adopter Competitions:
A vibrant community of early adopters and educators has taken hold, who are carrying the torch to various parts of the world, enriching the discourse, and contributing resources all the while shining light on emerging needs and further work, including the need to update the curriculum. Since the release of our curriculum guideline, we have run early adopter competitions six times: in spring and fall 2011, spring and fall 2012, and fall 2013, 2014, and 2015, selecting a total of 141 institutions. NSF and Intel supported the grants, with hardware donations from NVIDIA. Aspiring early adopters submitted a proposal that was evaluated by a CDER committee and external experts. Selected proposals were awarded a small stipend, ranging from $1K for single course proposals to $2.5K for multi-course multi-semester proposals. International awards included India, China, Turkey, Spain, Argentina, Malaysia, and others.
In order to allow the early adopters, the public, and the working group to benefit from everyone's experiences and evaluations, the first EduPar workshop, collocated with IPDPS in Anchorage, was organized in May of 2011. Thereafter, EduPar has been a regular annual workshop at IPDPS. We also initiated a new workshop on education at SC13 in Denver, EduHPC. This workshop was specifically dedicated to bringing together stakeholders from industry (hardware and software vendors and employers), government labs, funding agencies, and academia, so that each could hear the challenges faced by the others, learn the various approaches to these challenges, and generally have opportunities to exchange ideas and brainstorm solutions. This again has become an annual workshop at SC. Working with colleagues in Europe, we also helped launch a new workshop in conjunction with EuroPar 15 in Vienna, called Euro-EduPar. The recent addition to Edu* series has been EduHiPC at HiPC’18.
CDER has additionally initiated several complementary activities toward the goal of fostering PDC education.
- A courseware repository4 has been established for pedagogical materials (exemplars, sample lectures, recommended problem sets, peachy assignments, experiential anecdotes, evaluations, papers, etc.). This is a living repository. CDER invites the community to contribute existing and new material to it. The Exemplars group is working to provide an extensive set of exemplars for various topics and courses.
- A CDER Compute Cluster5 has been set up for free access by early adopters and other educators and their students. The CDER cluster was upgraded in Fall’18 with additional GPUs and the Spark environment. Its current specifications are 656 cores, 1 TB of RAM, and four GPUs, including NVIDIA V100s, and includes an Apache Spark subsystem.
- A book project was initiated recognizing that both instructors and students need suitable textual material. The book project's goal is to address the lack of suitable textbooks to integrate PDC topics into the lower level core courses (CS1, CS2, Systems, Data Structures and Algorithms, Logic Design, etc.). The first edited book volume entitled “Topics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses” was published September 2015 in hardcopy by Elsevier with a free preprint version on the Web6. This volume was focused on the introductory courses, and the preprint version has had over 39,000 chapter downloads. A second book was published by Springer in Fall 2018, entitled "Topics in Parallel and Distributed Computing: Enhancing the undergraduate curriculum - performance, concurrency, and programming on modern platforms.” It provides exemplars that are geared more toward upper level electives. Both books have two categories of chapters, one meant primarily for instructors, and the other for students.
2.3 Companion Curriculum Activities
A companion activity to curriculum development has also begun with the ambitious goals of collecting, curating and developing exemplars of various kinds: (i) Topic exemplars on how to teach individual or related PDC topics and suitable instructional materials; (ii) course exemplars on how entire core CS and CE courses can be constituted to infuse suitable PDC topics from the TCPP curriculum; and (iii) curriculum exemplars in adapting the entire CS/CE curriculum for alignment with TCPP curriculum guidelines.
A second companion activity that NSF has recently funded the CDER group for is to explore a more Computer Engineering-oriented version of the TCPP curriculum, primarily focusing on PDC topics which can be infused into early CE core courses. CS and CE programs have similar early core courses, such as introductory programming, discrete math, and data structures and algorithms. However, CE offerings also differ from CS, for example, with emphasis on topics such as digital logic, and computer communications and interfacing. In addition to collaboration with the ACM/IEEE taskforce for their CS curricula, this component of our work could inform the taskforce for their CE curricula in their next revision cycle.
This report is expected to engage various stakeholders for their feedback and adoption as well as for participation in ongoing activities.
1 The ACM/IEEE Computer Science Curricula 2013: https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
2 ABET Criteria for Accrediting Computer Science and Similarly Named Programs, https://www.abet.org/accreditation/accreditation-criteria/criteria-for-accrediting-computing-programs-2019-2020/#GC5
3 NSF-supported Center for Curriculum Development and Educational Resources (CDER): https://tcpp.cs.gsu.edu/curriculum/?q=node/21183
4 CDER Courseware Repository: https://tcpp.cs.gsu.edu/curriculum/?q=courseware_management
5 CDER Cluster free access: https://tcpp.cs.gsu.edu/curriculum/?q=node/21615
6 CDER Book Series - Free preprint version on the Web at https://tcpp.cs.gsu.edu/curriculum/?q=CDER_Book_Project