TEACHING:
Fall 2001
 UIUC CS 397: ``Cryptography and Network Security''.
Fall 1999
 UIUC CS 397: ``Cryptography and Network Security''.
Spring 1999
 UIUC CS 497: ``Randomized Algorithms and Combinatorial Optimization''.
Fall 1998
 UIUC CS 397: ``Cryptography and Network Security''.
Spring 1998
 UIUC CS 350: ``Introduction to Scientific Computing''.
Fall 1997
 UIUC CS 397: ``Cryptography and Network Security''.
Spring 1997
 UoM CSci 8421: ``Advanced Algorithms: Cryptography and its
Applications''.
Fall 1996

UoM Scic: ``Introduction to Programming Language Fortran.''
Spring 1996

UoM CSci 5422: ``Introduction to Computational Geometry''.
Winter 1996

UoM CSci 8421: ``Advanced Algorithms,'' winter, 1996.
Fall 1995

UoM Scic 8001: ``High Performance and Parallel Scientific
Computing.''
Spring 1995

UoM Scic: ``Introduction to Programming Language C.''
Winter 1995

UoM Scic: ``Introduction to Programming Language Fortran.''
Fall 1994

UoM Scic 8001: ``High Performance and Parallel Scientific
Computing.''
Spring 1994

MIT 18.337: ``Parallel Scientific Computing,'' (with Alan
Edelman).

MIT 18.337: ``Differential Equations''.
Fall 1993

MIT 18.409: ``The probabilistic method and applications.''
Spring 1993

MIT 6.402: ``Geometric Methods and Algorithms.''
In addition, with Alan Edelman of MIT and Rob Schreiber of NASA/HPL,
I designed and taught MIT Summer Professional Program 6.50s
``A peek at parallel processing from an application perspective''
in the summer of 1994. We taught this course again in the summers of
1995 and 1996.
This program attracted professionals from
industry, government research labs and universities.
Such a program
not only helps professionals keep pace with stateoftheart
developments in this field, but it also helps to initiate
collaboration between universities and industry.