The answer is "almost". There are two types of bugs: Reliability and Usability.
Example Curriclum components from the VTU. Includes Syllabus, homework and lesson plans. Calls out where Parallel components wre addded to a tradtional undergraduate computer science curriculum. Units include:
COMPUTER CONCEPTS AND C PROGRAMMING
ANALYSIS AND DESIGN OF ALGORITHMS
The lecture given here is the first part in the “Introduction to Parallel Programming” video series. This part endeavors to define parallel computing, explain why parallel computing is becoming mainstream, and explain why explicit parallel programming is necessary. This part sets the tone for the other 11 parts in the series.
Running time: 9:51
This is an introductory graduate-level course in computer architecture. This course is intended to do two things: provide a solid, detailed understanding of how computers are designed and implemented, including the central processor and memory and I/O interfaces; and to present the numerous tradeoffs in design and implementation, system interaction, realization in both historical and state-of-the-art systems, and trends that will affect future systems.
After going thorough all the modules of the course, the learner should be able to
- Identify the need for multi-core architecture for specific applications by developing a suitable complexity measure.
- Identify needs for homogeneous or heterogeneous multi-core architectures for a given application
- Develop methods to partition a given application program to run on a multi-core processor
- Use the Intel multi-core architecture for develop high performance code
- Optimize code using appropriate techniques.