Parallel and distributed computing (PDC) has become pervasive in all aspects of computing, and thus it is essential that students include parallelism and distribution in the computational thinking that they apply to problem solving, from the very beginning. Computer science education is still teaching to a 20th century model of algorithmic problem solving. Sequence, branch, and loop are taught in our early courses as the only organizing principles needed for algorithms, and we invest considerable time in showing how best to sequentially process large volumes of data. All computing devices that students use currently have multiple cores as well as a GPU in many cases. Most of their favorite applications use multiple cores and numbers of distributed processors. Often concurrency offers simpler solutions than sequential approaches. Industry is desperate for software engineers who think naturally in terms of exploiting these capabilities, rather than seeing them as an exotic upper-level topic that gets layered over a sequential solution. However, we are still teaching students to solve problems using sequential thinking. In this workshop we overview key PDC concepts and provide examples of how they may naturally be incorporated in early computing classes. We will introduce plugged and unplugged curriculum modules that have been successfully integrated in existing computing classes at multiple institutions. We will highlight the upcoming summer training workshop, for which we have funding to support attendance, as well as other CDER (Center for Parallel and Distributed Computing Curriculum Development and Educational Resources) activities.
more »
« less
Unplugged Activities to Introduce Parallel Computing in Introductory Programming Classes: an Experience Report
Learning programming in early introductory classes is challenging for first year university students, and introducing parallel programming (PDC) in early classes along with traditional sequential programming is even more challenging. Unplugged activities may help alleviate some of the difficulties for students. Unplugged activities have been shown to increase student interest, and to enhance student understanding of CS programming concepts. We have used unplugged activities to teach PDC concepts before introducing parallel programming. Our experiences show that using unplugged activities to introduce the PDC concepts reduce the barrier to learn parallel programming.
more »
« less
- Award ID(s):
- 1730417
- PAR ID:
- 10191329
- Date Published:
- Journal Name:
- ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education
- Page Range / eLocation ID:
- 309 to 309
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
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
-
Robotics may be an ideal way to teach cybersecurity concepts to young students in the elementary classroom. Research shows robots can be an engaging experience and benefit learning in ways useful in other areas of education. Programming robots provides an ideal context for compelling demonstrations of cybersecurity concepts. Unplugged robotics activities benefit from the engaging aspect of robots but have the added advantage of bypassing hardware and making some concepts more transparent. Señor Robot is a gamified unplugged robotics activity modeled after some activities used before but specifically designed for cybersecurity education in the context of mathematics. The design and implementation of Señor Robot in a third-grade classroom is discussed along with observations and results of student assessments. Strengths and weaknesses of Señor Robot are examined and guide a proposed revision of the game called Frogbotics. An expanded instruction set and applicability to English language arts are considered along with ways to use Frogbotics to teach specific topics in cybersecurity. A website is provided as a dissemination point for materials developed in the study.more » « less
-
This special session explores the use of magic tricks based on computer science ideas; magic tricks help grab students' attention and can motivate them to invest more deeply in underlying CS concepts. Error detection ideas long used by computer scientists provide a particularly rich basis for working such ``magic'', with a CS Unplugged parity check activity being a notable example. Prior work has shown that one can perform much more sophisticated tricks than the relatively well-known CS Unplugged activity, and these tricks can motivate analyses across a wide variety of computer science concepts and are relevant to learning objectives across grade levels from 2nd grade through graduate school. These tricks have piqued the interest of past audiences and have been performed with the aid of online implementations; this conference session will demonstrate enhanced implementations used to illuminate the underlying concepts rather than just to perform the tricks. The audience will participate in puzzling out how to apply relevant concepts as we work through a scaffolded series of tricks centering on error detection and correction. The implementations also provide a useful model for incorporating greater interaction than is typically found in current innovative online interactive textbooks. In addition, they are samples for possible programming assignments that can motivate students using CS Unplugged activities to actively pursue deep programming experiences.more » « less
-
This special session explores the use of magic tricks based on computer science ideas; magic tricks help grab students’ attention and can motivate them to invest more deeply in underlying CS concepts. Error detection ideas long used by computer scientists provide a particularly rich basis for working such “magic”, with a CS Unplugged parity check activity being a notable example. Prior work has shown that one can perform much more sophisticated tricks than the relatively well-known CS Unplugged activity, and these tricks can motivate analyses across a wide variety of computer science concepts and are relevant to learning objectives across grade levels from 2nd grade through graduate school. These tricks have piqued the interest of past audiences and have been performed with the aid of online implementations; this conference session will demonstrate enhanced implementations used to illuminate the underlying concepts rather than just to perform the tricks. The audience will participate in puzzling out how to apply relevant concepts as we work through a scaffolded series of tricks centering on error detection and correction. The implementations also provide a useful model for incorporating greater interaction than is typically found in current innovative online interactive textbooks. In addition, they are samples for possible programming assignments that can motivate students using CS Unplugged activities to actively pursue deep programming experiences.more » « less