\section*{University of Tennessee}
The Department of Computer Science offers the following courses.

\begin{itemize}
\item CS 435/494:  Microprocessors, Multimicroprocessor Systems, and LANs.        
        The first third of the course deals with state-of-the-art 
microprocessors (e.g. 486, Pentium, and Alpha), reservation tables,
        and caches (including coherence problems in parallel systems).  
        The middle third covers multimicroprocessor systems, including
hypercubes, shared-memory machines, the Intel Paragon, the MasPar MP-1, 
and the PVM system. 
        Students will write programs on two different systems.  

\item CS 535: Architecture.  

        The emphasis is on parallel architectures.  
        Students write programs on distributed-memory and shared-memory
machines.

\item CS 594: Algorithms for Parallel Architectures.

	This course reviews
	various features of advanced architectures and discusses how they
	affect the potential performance of linear algebra
	algorithms.  Recent techniques devised for utilizing advanced 
	architectures will be considered more fully, especially the design of 
	the Level 1, 2 and 3 BLAS.  A new package, called LAPACK, which is
	intended to most fully exploit advanced computers, will be discussed.
	In addition, a programming environment that will aid in the design, 
	development and understanding of parallel algorithms for 
	high-performance computers will be described.  The tools provide an
	environment for developing and analyzing new parallel algorithms in 
	Fortran that require sophisticated synchronization at a large-grain 
	level.  This package provides portability of a user's code and also has
	a graphics postprocessor for performance analysis and debugging.  
	Finally, the challenge facing designs of mathematical software in view
	of the development of massively parallel computer systems will be
	addressed.

\item CS 594: Parallel Programming.

	This course covers the basics of parallel
	programming, fundamental theoretical models, and
	tools for evaluating and assimilate new technology in parallel
	computing.
	Students will gain practical hands-on experience with several types of
	parallel computers and several models of parallel programming,  
including
	message passing,
	shared memory, and data parallel models.
	Students will implement programs on each of these models.  

\item CS 690: Parallel Computing.

	Areas covered include a description of different types of parallel
	architectures, the development of parallel algorithms for solving
	important numerical problems, and software tools intended to aid
	implementation of parallel numerical computation.

\item CS 593: Seminar in Parallel Computing.

	This is a survey of programming tools and techniques for parallel computing,
	with emphasis on software environments for distributed network 
	computing, message-passing paradigms, object-oriented programming 
	models, and programming tools for task partitioning and scheduling.

\end{itemize}
