You are here

How to Read this Proposal


The reader of this proposal should keep in mind that many of the topics we discuss can appear at multiple levels in the broader curriculum. Upon seeing a topic, the reader should not make a premature judgment regarding its suitability for an undergraduate course. Rather, the reader should consider where and how aspects of the topic might naturally be blended into a suitable context to facilitate the move to holistically allowing students to develop a capacity for parallel and distributed thinking.

For each of the topics, we suggest where and how it can be covered in a curriculum. We thus provide suggestions and examples rather than prescriptions: We are not saying that this is the preferred form of coverage. Our goal is to illustrate one possibility and to get the reader thinking about alternate possibilities.

Our curricular guidelines are not meant to specify precisely where each item is addressed. Our intention is, rather, to encourage instructors to find as many ways as appropriate to insert coverage of the indicated PDC topics into core courses. Even side comments of a few sentences about how some topic under discussion takes on a new perspective in a parallel or distributed context when judiciously sprinkled throughout a course will help students to expand their thinking. Students will more naturally start to think in parallel and distributed terms when they sense that their instructors are always conscious of the implications of parallelism and distributed computing with respect to each topic that is covered in their courses - even topics that have no obvious parallel or distributed content.

This curriculum guide should thus be taken as a basic list of those topics associated with parallel and distribute computing to be kept in mind in the teaching of computer science and engineering. They form a fundamental set of concepts that all students should be familiar with, through seeing them in multiple contexts and at differing levels of sophistication during their academic careers.

In the next four sections we present rationales for the four areas of computer science and engineering into which we have divided the learning goals of the proposed curriculum: Architecture, Programming, Algorithms, and Crosscutting Topics.