Course Description: A study of programming techniques and algorithms that utilize multiple processors. A comprehensive foundation of parallel programming paradigms such as message-passing interfaces, shared memory and threads. Computational applications of parallel programming techniques in searching, optimization, image processing, and other areas. Scheduled summer semesters of odd years.