Concurrency and Map-Reduce Strategies in Various Programming Languages
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
Description and Teaching Materials
You can visit the module in your browser:
Concurrency and Map-Reduce Strategies in Various Programming Languages
or you can download the module in either PDF format or latex format.
PDF Format: Concurrency and Map-Reduce Strategies in Various Programming Languages.pdf.
Latex Format: Concurrency and Map-Reduce Strategies in Various Programming Languages.tar.gz.
Word Format: Concurrency and Map-Reduce Strategies in Various Programming Languages.docx.
Teaching Notes and Tips
- 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.