Abstract

How can parallel programming be made tractable for students in high schools and community colleges, to programmers in four-year colleges, to commercial and government employees, to interested independent users learning on their own, and as CASE tools for professional software designers? The computer science community must address this question if the ability of programmers to harness the power of parallel systems is to maintain pace with technology advances forthcoming in parallel systems. This paper addresses some of the issues of bringing parallel programming to the people, ranging from newly developing programmers with little experience on any computer to seasoned programmers of single-processor machines. We aim not only to enable people to use more powerful computers, but also to enable people to use computers more powerfully, by nurturing the techniques that enable them to develop efficient, correct code with relative ease. This paper briefly presents the concept of an Archetype, a software engineering methodology developed at the Caltech for patterns of problem solving, and for providing media for quick reference and natural software reuse. We then describe eText, an interactive multimedia electronic textbook that facilitates the teaching of, navigating through, and referring to Archetypes. Initial experience with Archetypes and the electronic textbook suggests that this approach to teaching parallel programming can aid computer users in the immediate future.