An introduction to parallel algorithms
An introduction to parallel algorithms
Practical Pram Programming
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Towards concrete concurrency: occam-pi on the LEGO mindstorms
Proceedings of the 36th SIGCSE technical symposium on Computer science education
A template library to facilitate teaching message passing parallel computing
Proceedings of the 37th SIGCSE technical symposium on Computer science education
An easy to use distributed computing framework
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Cluster computing for web-scale data processing
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Preparing students for ubiquitous parallelism
Proceedings of the 40th ACM technical symposium on Computer science education
Using simple abstraction to reinvent computing for parallelism
Communications of the ACM
Lazy binary-splitting: a run-time adaptive work-stealing scheduler
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Using simple abstraction to reinvent computing for parallelism
Communications of the ACM
Strategies for preparing computer science students for the multicore world
Proceedings of the 2010 ITiCSE working group reports
EcoSim: a language and experience teaching parallel programming in elementary school
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Hi-index | 0.02 |
All students at our high school are required to take at least one course in Computer Science prior to their junior year. They are also required to complete a year-long senior project associated with a specific in-house laboratory, one of which is the Computer Systems Lab. To prepare students for this experience the lab offers elective courses at the post-AP Computer Science level. Since the early 1990s one of these electives has focused on parallel computing. The course enrolls approximately 40 students each year for two semesters of instruction. The lead programming language is C and topics include a wide array of industry-standard and experimental tools. Since the 2007-2008 school year we have included a unit on parallel algorithmic thinking (PAT) using the Explicit Multi-Threading (XMT) system. We describe our experiences using this system after self-studying the approach from a publicly available tutorial. Overall, this article provides significant evidence regarding the unique teachability of the XMT PAT approach, and advocates using it broadly in Computer Science education.