• University departments create a new course and add it to the electives list. Depending on the faculty's availability and willingness, a department offers such a course from time to time.
• University departments can't find space for another course. This is especially the case when such a course doesn't have a champion—a person who ensures that the department will actually offer, for example, Parallel and Distributed Computing.
• include parallel and distributed computing as early as possible, possibly in Computer Science I and II;
• teach parallel and distributed computing in core courses in a breadth-first manner; and
• introduce parallel and distributed computing based on software engineering principles.
• treat parallel and distributed computing as a natural environment our students will find themselves in and
• treat a single thread of execution as a special case of the typical situation (where multiple threads execute concurrently and interact with each other).