Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Journal of the ACM (JACM)
Proceedings of the ACM 2000 conference on Java Grande
Java Concurrency in Practice
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
The design of a task parallel library
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Memory models: a case for rethinking parallel languages and hardware
Communications of the ACM
Strategies for preparing computer science students for the multicore world
Proceedings of the 2010 ITiCSE working group reports
A model-driven approach to teaching concurrency
ACM Transactions on Computing Education (TOCE)
ACM/IEEE computer science 2013 exemplar-fest
Proceeding of the 44th ACM technical symposium on Computer science education
Proceeding of the 44th ACM technical symposium on Computer science education
Hi-index | 0.00 |
We report on our experience integrating a three-week introduction to multithreading in a required data structures course for second-year computer science majors. We emphasize a distinction between parallelism and concurrency that teaches students to use extra processors effectively and enforce mutual exclusion correctly. The material fits naturally in the data structures course by having the same mix of algorithms, programming, and asymptotic analysis as the conventional, single-threaded part of the course. Our department has used this unit for 1.5 years and will do so indefinitely. We report feedback from students, multiple instructors for the course, and students in a later course that uses threads. We developed a full set of course materials that have been adapted for use by instructors in various courses at five other institutions so far.