skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Interactive Textbooks for Parallel and Distributed Computing Across the Undergraduate CS Curriculum
It has been a decade since the ACM/IEEE CS2013 Curriculum guidelines recommended that all CS students learn about parallel and distributed computing (PDC). But few text- books for “core” CS courses–especially first-year courses–include coverage of PDC topics. To fill this gap, we have written free, online, beginner- and intermediate-level PDC textbooks, containing interactive C/C++ OpenMP, MPI, mpi4py, CUDA, and OpenACC code examples that students can run and modify directly in the browser. The books address a serious challenge to teaching PDC concepts, namely, easy access to the powerful hardware needed for observing patterns and scalability. This paper describes the content of these textbooks and the underlying infrastructure that make them possible. We believe the described textbooks fill a critical gap in PDC education and will be very useful for the community.  more » « less
Award ID(s):
1822486
PAR ID:
10540770
Author(s) / Creator(s):
; ; ;
Publisher / Repository:
IEEE
Date Published:
ISBN:
979-8-3503-6460-6
Page Range / eLocation ID:
377 to 384
Subject(s) / Keyword(s):
C C++ computing education interactive MPI OpenACC, OpenMP parallel runestone software textbook
Format(s):
Medium: X
Location:
San Francisco, CA, USA
Sponsoring Org:
National Science Foundation
More Like this
  1. null (Ed.)
    Teaching parallel and distributed computing (PDC) concepts is an ongoing and pressing concern for many undergraduate educators. The ACM/IEEE CS Joint Task Force on Computing Curricula (CS2013) recommends 15 hours of PDC education in the undergraduate curriculum. Most recently, the 2019 ABET Criteria for Accrediting Computer Science requires coverage of PDC topics. For faculty who are unfamiliar with PDC, the prospect of incorporating parallel computing into their courses can seem very daunting. For example, should PDC concepts be covered in a single required course (perhaps computer systems) or be scattered throughout different courses in the undergraduate curriculum? What languages are the best/easiest for students to learn PDC? How much revision is truly needed? This Birds of a Feather session provides a platform for computing educators to discuss the common challenges they face when attempting to incorporate PDC into their curricula and share potential solutions. Chiefly, the organizers are interested in identifying "gap areas" that hinder a faculty member's ability to integrate PDC into their undergraduate courses. The multiple viewpoints and expertise provided by the BOF leaders should lead to lively discourse and enable experienced faculty to share their strategies with those beginning to add PDC across their curricula. We anticipate that this session will be of interest to all CS faculty looking to integrate PDC into their courses and curricula. 
    more » « less
  2. Ghafoor, Sheikh; Prasad, Sushil K. (Ed.)
    The ACM/IEEE CS 2013 curriculum recommendations state that every undergraduate CS major should learn about parallel and distributed computing (PDC). One way to accomplish this is to teach students about the Message Passing Interface (MPI), a platform that is commonly used on modern supercomputers and Beowulf clusters, but can also be used on a Network of Workstations (NoW), or a multicore laptop or desktop. MPI incorporates many PDC concepts and can serve as a platform for hands-on learning activities in which students must apply those concepts. The MPI standard defines language bindings for Fortran and C/C++, but many university instructors lack expertise in these languages, preventing them from using MPI in their courses. OpenMPI is a free implementation of the MPI standard that also provides Java bindings for MPI. This paper describes how to install OpenMPI with these Java bindings; to illustrate the use of these bindings, the paper also presents several patternlets—minimalist example programs—that show how to implement PDC design patterns using OpenMPI and Java. This provides a new means of introducing students to PDC concepts. 
    more » « less
  3. The NSF/IEEE-TCPP Parallel and Distributed Computing curriculum guidelines released in 2012 (PDC12) is an effort to bring more parallel computing education to early computer science courses. It has been moderately successful, with the inclusion of some PDC topics in the ACM/IEEE Computer Science curriculum guidelines in 2013 (CS13) and some coverage of topics in early CS courses in some universities in the U.S. and around the world. A reason often cited for the lack of a broader adoption is the difficulty for instructors who are not already knowledgable in PDC topics to learn how to teach those topics and align their learning objectives with early CS courses. There have been attempts at bringing textbook chapters, lecture slides, assignments, and demos to the hands of the instructors of early CS classes. However, the effort required to plow through all the available materials and figure out what is relevant to a particular class is daunting. This paper argues that classifying pedagogical materials against the CS13 guidelines and the PDC12 guidelines can provide the means necessary to reduce the burden of adoption for instructors. In this paper, we present CAR-CS, a system that can be used to categorize pedagogical materials according to well- known and established curricular guidelines and show that CAR-CS can be leveraged 1) by PDC experts to identify topics for which pedagogical material does not exist and that should be developed, 2) by instructors of early CS courses to find materials that are similar to the one that they use but that also cover PDC topics, 3) by instructors to check the topics that a course currently covers and those it does not cover. 
    more » « less
  4. This work in progress research paper considers the question, what kind of problems do engineering students commonly solve during their education? Engineering problems have been generally classified as ill-structured/open-ended or well-structured/closed-ended. Various authors have identified the characteristics of ill-structured problems or presented typologies of problems. Simple definitions state that well-structured problems are simple, concrete, and have a single solution, while ill-structured problems are complex, abstract, and have multiple possible solutions (Jonassen, 1997, 2000). More detailed classifications have been provided by Shin, Jonassen, and McGee (2003), Voss (2006), and Johnstone (2001). It is commonly understood that classroom problems are well-structured while workplace problems are ill-structured, but we cannot find any empirical data to confirm or deny this proposition. Engineers commonly encounter ill-structured problems such as design problems in the field therefore problem-solving skills are invaluable and should be taught in engineering courses. This research specifically looks at the types of problems present in the two most commonly used statics textbooks (Hibbeler, 2016; Beer, et al., 2019). All end-of-chapter problems in these textbooks were classified using Jonassen’s (2000) well-known typology of problem types. Out of 3,387 problems between both books, 99% fell into the algorithmic category and the remaining fell into the logic category. These preliminary results provide an understanding of the types of problems engineering students most commonly encounter in their classes. Prior research has documented that textbook example problems exert a strong influence on students' problem-solving strategies (Lee et al., 2013). If instructors only assign textbook problems, students in statics courses do not see any ill-structured problems at that stage in their education. We argue that even in foundational courses such as statics, students should be exposed to ill-structured problems. By providing opportunities for students to solve more ill-structured problems, students can become more familiar with them and become better prepared for the workforce. Moving forward, textbooks from several other courses will be analyzed to determine the difference between a fundamental engineering course such as statics and upper-level courses. This research will allow us to determine how the problem types differ between entry level and advanced classes and reveal if engineering textbooks primarily contain well-structured problems. Keywords: problem solving, textbooks, ill-structured problems 
    more » « less
  5. Parallel and distributed computing (PDC) has become ubiquitous to the extent that even common users depend on parallel programming. This points to the need for every programmer to understand how parallelism and distributed programming affect problem solving, teaching only traditional sequential programming is no longer sufficient. To address the rapidly widening gap between emerging highly-parallel computer architectures and the sequential programming approach taught in traditional CS/CE courses, the Computer Science Department at Tennessee Technological University has integrated PDC into their introductory programming course sequence. This paper presents our implementation efforts, experience and lessons learned, as well as preliminary evaluation results. 
    more » « less