Yes. Teaching parallel algorithms is especially productive.
Introducing cutting edge fields can engage students. Like anything, it should be done using active learning techniques (Freeman et al. 2014) and within "proximal development." Of "cutting edge" fields that are useful to introduce early in the pipeline (i.e., high school or earlier)', I think parallel processing is one of the most important. I say this for three reasons:
1. "Mulch" required for later
Some ways of thinking require early introduction to nurture later growth. Parallel and distributed computing may be one such area, based on visionaries' opinions and evidence.
a. Visionaries opinions: Pappert and Resnick both suggested parallel and decentralized thinking an area in which CS for young students could alter how the student years later thinks about phenomena and how they solve problems.
b. Evidence: At the 2016 International Symposium on Parallel and Distributed Computing, I heard described an unpublished study assessing three groups of students in their tendency to solve problems with parallelism in mind. The assessment asked students to describe a procedure for making a peanut butter and jelly sandwich and then asked for a procedure to make 10,000 peanut butter and jelly sandwiches.
- Students who had taken no CS course frequently described a parallel algorithm.
- Students who had taken a traditional CS1 university course infrequently described a parallel algorithm.
- Students who had taken a parallelism-enhanced CS1 university course frequently described a parallel algorithm.
2. Present and Future Importance of Parallelism
a. After an advance in hardware capability, a corresponding advance in devices and software on the market takes place ~10 years later (Kurzweil, The Singularity is Near). A large portion of software on the market still does not take best advantage of multicore processors.
b. In writing a curriculum for CS Principles, I asked some 200 tech leaders, "What changes would you make to the post-secondary CS curriculum to better suit your needs?" Soft skills, parallel processing, version control, and distributed databases were topics that came up most frequently in these answers.
3. Accessible in High School
Various people have put forward ideas appropriate to the age level, and the high school CS teaching community can probably also draw additional ideas from EduPar, an annual conference for teaching parallelism and distributed computing at the university level.
- David Bunde 2012 CS4EDU
- CS in Parallel
- An unplugged activity from Dan Garcia: Ask a team of 4-6 to design an algorithm and execute it with human hands to sort a shuffled standard deck of cards into a particular order. This activity was in Beauty and Joy of Computing (BJC) and Garcia, one of the principal investigators on BJC told me he felt this was the BJC activity he regarded as most successful and engaging, though I don't see it in the current version.
- A compendium being created by Chuck Weems from U Mass Amherst