Concurrency and Map-Reduce Strategies in Various Programming Languages

Professor Richard Brown, St. Olaf College

Summary

Parallel computing capabilities are not limited to a certain language; many well-established and widely utilized programming languages currently provide ways to implement concurrency. This concept module explores different ways in which concurrency and parallelism appear in different programming languages. In addition, the module activity explores how one can implement the map-reduce model in several high-level programming languages taught in a CS curriculum, including Scheme, C++, Java, and Python.

Module Characteristics

Languages Supported: Scheme, Python, C++, Java, Any
Relevant Parallel Computing Concepts:
Recommended Teaching Level: Intermediate
Possible Course Use: Programming Languages


Learning Goals

  • Students should be able to discriminate strategies of how programming languages implement parallelism and concurrency
  • Students should be able to implement map-reduce computing using several programming languages

Context for Use

This module is best introduced in an intermediate-level course, particularly for a Programming Languages (or similar) course. The module assumes prior knowledge of map-reduce computing concepts; if students have not yet had experience with this concept, consult the early sections of "Hadoop and Map-reduce Computing." The activity can be used during one or two lecture periods.

Description and Teaching Materials

Teaching Notes and Tips

Teaching Notes/Tips to be completed later...
  • It is recommended that students have at least some background in one or more of the following programming languages: C++, Java, Python, Scheme; however, it is not required for them to be knowledgeable in all four.

Assessment

Assessment to be completed later...

References and Resources

References and Resources to be completed later...



Concurrency and Map-Reduce Strategies in Various Programming Languages -- Discussion  

Join the Discussion


Log in to reply