encouraging parallel thinking through explicit coordination modeling
Parallel thinking is a mindset that allows people to create support for activities that happen concurrently in a program. It crosscuts extant computer science boundaries, including parallel processing, network programming and multi-user systems, indeed, any system that involves the distribution and reintegration of work. Recent efforts to integrate parallelism across the CS curriculum begin to address the support of parallel thinking. We approach the pedagogy of parallel thinking by teaching students to model coordination explicitly using a specialized coordination language. We report a study of an experimental class taking this approach, finding that advanced CS students lack a good understanding of coordination but that the explicit modeling of coordination can address this lack.
parallel thinking parallelism coordination modeling pedagogy tuplespace parallel computing distributed computing