The undergraduate courses I teach fall into three categories: basic programming (introduction, tools, and data structures), computational math (computational geometry, symbolic computation, numerical analysis), and industrial math & computation. The latter has been developed into a regular undergraduate MCS course (MCS 472). The graduate seminar MCS 595 which ran in Fall 2003 through Spring 2006 provided lecture notes for the graduate course MCS 563 "Analytic Symbolic Computation", offered in Fall 2004, Spring 2007, Spring 2009, and Spring 2011. In Spring 2006 and Spring 2012, I taught an introduction to high performance computing (better known as supercomputing). A third graduate course offered in Fall 2011, Fall 2012, and Fall 2013 is Mathematical, Statistical and Scientific Software (MCS 507).

Links to web sites for future, current, and previous courses are below.


Fall 2017:
  • MCS 360: Introduction to Data Structures
    Spring 2017:
  • MCS 275: Programming Tools and File Management
  • MCS 320: Introduction to Symbolic Computation
    Fall 2016:
  • MCS 572: Introduction to Supercomputing
  • MCS 595: graduate seminar
    Spring 2016:
  • MCS 260: Introduction to Computer Science
  • MCS 275: Programming Tools and File Management
  • MCS 320: Introduction to Symbolic Computation
  • MCS 595: graduate seminar
    Fall 2015:
  • MCS 595: graduate seminar
    Spring 2015:
  • MCS 260: Introduction to Computer Science
  • MCS 320: Introduction to Symbolic Computation
  • MCS 595: graduate seminar
    Fall 2014:
  • MCS 507: Mathematical, Statistical and Scientific Software
  • MCS 595: graduate seminar
    Summer 2014:
  • MCS 260: Introduction to Computer Science
    Spring 2014:
  • MCS 572: Analytic Symbolic Computing
  • MCS 572: Introduction to Supercomputing
  • MCS 595: graduate seminar
    Fall 2013:
  • MCS 507: Mathematical, Statistical and Scientific Software
  • MCS 595: graduate seminar
    Spring 2013:
  • MCS 595: graduate seminar
    Fall 2012:
  • MCS 507: Mathematical, Statistical and Scientific Software
  • MCS 595: graduate seminar
    Spring 2012:
  • MCS 572: Introduction to Supercomputing
  • MCS 595: graduate seminar
    Fall 2011:
  • MCS 507: Mathematical, Statistical and Scientific Software
  • MCS 595: graduate seminar
    Spring 2011:
  • MCS 320: Introduction to Symbolic Computation
  • MCS 563: Analytic Symbolic Computation
  • MCS 595: graduate seminar
    Fall 2010:
  • MCS 360: Introduction to Data Structures
  • MCS 595: graduate seminar
    Spring 2010:
  • MCS 260: Introduction to Computer Science
  • MCS 275: Programming Tools and File Management
  • MCS 320: Introduction to Symbolic Computation
  • MCS 595: graduate seminar
    Fall 2009:
  • MCS 595: graduate seminar
    Spring 2009:
  • MCS 481: Computational Geometry
  • MCS 563: Analytic Symbolic Computation
  • MCS 595: graduate seminar
    Fall 2008:
  • MCS 260: Introduction to Computer Science
  • MCS 595 Graduate Seminar: Decomposition Algorithms in Algebraic Geometry
    Spring 2008:
  • MCS 275: Programming Tools and File Management
  • MCS 320: Introduction to Symbolic Computation
  • MCS 595 Graduate Seminar: Tropical Geometry
    Fall 2007:
  • MCS 260: Introduction to Computer Science
  • MCS 595 Graduate Seminar: Tropical Geometry
    Spring 2007:
  • MCS 320: Introduction to Symbolic Computation
  • MCS 563: Analytic Symbolic Computation
    Fall 2006: sabbatical semester, mostly at the IMA.
    Spring 2006:
  • MCS 572: Introduction to Supercomputing
  • MCS 595 Graduate Seminar: Solving Polynomial Systems
    Fall 2005:
  • MCS 320: Introduction to Symbolic Computation
  • MCS 471: Numerical Analysis
  • MCS 595 Graduate Seminar: Polyhedral Methods in Algebraic Geometry
    Spring 2005:
  • MCS 471: Numerical Analysis
  • MCS 494 Special Topics in Computer Science: Industrial Math & Computation
  • MCS 595 Graduate Seminar: Homotopy Methods to Solve Polynomial Systems
    Fall 2004:
  • MCS 563: Analytic Symbolic Computation
  • MCS 595 Graduate Seminar: Parallel Algorithms in Algebraic Geometry
    Spring 2004:
  • MCS 320: Introduction to Symbolic Computation
  • MCS 595 Graduate Seminar: Introduction to Numerical Algebraic Geometry
    Fall 2003:
  • MCS 471: Numerical Analysis
  • MCS 494 Special Topics in Computer Science: Industrial Math & Computation
  • MCS 595 Graduate Seminar: Solving Polynomial Systems
    Spring 2003:
  • MCS 320: Introduction to Symbolic Computation
  • MCS 360: Introduction to Data Structures
    Fall 2002:
  • MCS 494 Special Topics in Computer Science: Industrial Math & Computation
    Spring 2002:
  • MCS 471: Numerical Analysis
    Fall 2001:
  • MCS 260: Introduction to Computer Science
  • MCS 320: Introduction to Symbolic Computation
    Spring 2001:
  • MCS 275: Programming Tools and File Management
  • MCS 320: Introduction to Symbolic Computation
    Fall 2000:
  • MATH 310: Applied Linear Algebra
  • General information and policies
  • Course outline and homework assignments
  • postscript version of syllabus
    courses taught at Michigan State University:
    Spring 2000:
  • MTH 234: Multivariable Calculus
  • MTH 415: Applied Linear Algebra:
  • General information and policies
  • Course outline and homework assignments
  • pdf version of the syllabus
    Fall 1999:
  • MTH 124: Survey of Calculus with Applications I
  • MTH 234: Multivariable Calculus
    Spring 1998:
  • MTH 132: Calculus I
  • MTH 234: Multivariable Calculus
    Fall 1997:
  • MTH 124: Survey of Calculus with Applications I
  • MTH 234: Multivariable Calculus
    During Fall 1998 - Spring 1999 I stayed at the Mathematical Sciences Research Institute.