\section*{Iowa State University}
The Department of Computer Science offers the following undergraduate
course.

\begin{itemize}


\item Computer Science 425:
High Performance Computing for Scientific and
Engineering Applications.

Introduction  to  high-performance  computing   using   different
architectures,  programming  on  vector  processors  and parallel
computers.    Discussion   of   performance    issues,     sample
applications  from  science and engineering,  and practical issues in
high-performance computing are covered.

\end{itemize}

\noindent In addition, the following graduate-level courses are offered.

\begin{itemize}
\item Computer Science 524:
Computer System Architecture.

Fundamentals  of   computer   design,   performance   and   cost,
instruction    set   design,   basic   processor   implementation
techniques,  pipelining,  memory  design,  caches,  I/O  systems,
multiprocessor systems, interconnection networks.


\item Computer Science 612:
Parallel and Distributed Algorithms.

An advanced course in the  theory  of  parallel  and  distributed
computation.   Models  of  parallel  and distributed computation.
Parallel  sorting,  graph,  geometric,  algebraic,   and   number
theoretic-algorithms.   The  parallel  computation  thesis.   NC-
algorithms and P-complete problems.  Agreement problems.   Mutual
exclusion  and  resource allocation. Implementations of wait-free
registers.  Network  problems.  Lower  bounds  and  impossibility
results.  Fault-tolerance.  Randomized computation.


\item Computer Science 624:
Advanced Topics in Computer Architecture.

Shared-memory  multiprocessors,  distributed   memory   machines,
systolic  processing, neural networks, issues in high performance
computing,  comparative   study   of   different   architectures,
performance models.


\item Computer Science 625:
Issues in Parallel Programming and Performance.

Parallel  solutions  of  numerical  and  non-numerical  problems,
performance  and   other   computational   issues   in   parallel
programming.


\item Computer Science 652:
Topics in Distributed Operating Systems.

Concepts and techniques for network operating systems: high-level
languages   and   communication   protocols,   name   and  object
management, concurrency control for consistent distributed  data,
design of reliable software, protection, performance analysis.

\end{itemize}
