\section*{Rice University}
A multidisciplinary effort involving parallelism 
involves the Department
of Computational and Applied Mathematics and the Department of
Electrical and Computer Engineering.
The following are upper-division undergraduate courses.
\begin{itemize}
\item C\&AM 420: Introduction to Computational Science.

Vector and parallel architectures, parallel numerical algorithms,
analysis and enhancement of performance, scientific visualization,
use of programming tools and environments.

\item COMP 421: Operating Systems and Concurrent Programming.

Introduction to the design, construction, and analysis of concurrent programs
with an emphases on operating systems, including file systems, schedulers,
and memory allocators.
\end{itemize}

\noindent The following are graduate-level courses, some of which may be
taken by upper-division undergraduates.
\begin{itemize}

\item COMP 515: Advanced Compilation for Vector and Parallel Processors.

Advanced compilation techniques for vector and parallel computer systems,
including the analysis of program dependence, program transformation
to enhance parallelism, compiler management of the memory hierarchy,
interprocedural data flow analysis, and parallel debugging.

\item COMP 520: Distributed Systems.

Multiprocess structuring, and interprocess communication.  File access and
memory management.  User interfaces.

\item COMP 525: Advanced Computer Architecture.

Design issue of pipelined, vector, and multiprocessor architectures.  
Development of performance evaluation techniques to model and 
simulate configuration of concurrent architectures.

\item COMP 551: Advanced Numerical Linear Algebra.

\item C\&AM 571: Advanced Integer and Combinatorial Optimization.

Emphasis on methods of solving various optimization problems with
discrete components. 
\end{itemize}
