Applied Symbolic Computation (CS 680-505)

 Announcments  Lectures  Programs  Course Resources   Assignments  Grading Policy
Course Announcement
The department of Mathematics and Computer Science is offering a graduate course (CS 680-505) in Applied Symbolic Computation during the Fall 99-00 term. This course is of interest to computer science, mathematics, science, and engineering students who are interested in using computer algebra systems, such as Maple, to solve various application problems. The course will focus on the use of Maple.

A followup sequence will be offered in the winter and spring terms for those students interested in the algorithms underlying computer algebra systems.

See syllabus fo more details.

Course Description
This course is for users of symbolic computation in the physical and biological sciences, engineering, mathematics, finance, computer science, etc. who wish to gain an understanding of fundamental symbolic mathematical methods as embodied in contemporary systems for symbolic mathematics (e.g. Maple, Derive, Macsyma, Mathematica, etc.). Topics covered include: an introduction to a symbolic mathematical computation system; simplification of expressions, discussion of fundamental techniques in symbolic computation as illustrated by the solution of applications problems, the problem of intermediate expression swell, the basic economics of symbolic manipulation, methods for efficient solution of large problems, hybrid symbolic/numeric techniques.
Graduate computer science, mathematics, engineering, and science students interested in learning about and applying computer algebra systems, such as MAPLE, to various application areas. The course is appropriate for students interested in scientific programming.

This course is also open to upper level undergraduates interested in scientific computing and computational mathematics. The course counts towards the numeric and scientific computing track for computer science students.
Undergraduate data structures course
Courses in calculus, linear algebra, and some knowledge of differential equations
Jeremy Johnson
Office: 271 Korman Center
phone: 895-2893
office hours: MW 1-2, 4-5 and T 4-6. Additional hours by appointment.
Meeting Time
T 6:00-9:00 in Korman 259
  1. R. M. Corless. Essential Maple: A Guide for Scientific Programmers. Springer-Verlag, 1995.
  2. Maple V Computer Algebra System. The student edition is available for purchase. Access to Maple is available through department and university computers.
  3. The text will be supplemented by several journal articles and readings from texts available in the library.


  1. Introduction to symbolic mathematics systems in general and Maple in particular.
  2. Effective use of Maple.
  3. Scientific programming in Maple.
  4. Code generation (e.g. finite diferences schemes, automatic differentiation)
  5. Solution of systems of polynomial equations (introduction to Groebner Bases).
  6. Applications of Groebner Bases (digital signal processing, robotics)
  7. Quantifier elimination and applications to stability analysis and control theory.
  8. Other applications based on student interests.


  1. Homework assignments (five @ 10%) (50%)
  2. Midterm Exam (20%)
  3. Final project (30%)


Reference Books
  1. Maple V Learning Guide, Springer-Verlag, 1996.
  2. Maple V Programming Guide, Springer-Verlag, 1996.
  3. A. Heck. Introduction to Maple, Second Edition. Springer-Verlag, 1996.
  4. Gander, W., Hrebicek, J., Solving Problems in Scientific Computing Using Maple and MATLAB, Third Edition, Springer-Verlag, 1997.
  5. Cox, D., Little, J., and O'Shea, D. Ideals, Varieties, and Algorithms, Second Edition. Springer-Verlag, 1997.
Web Pages
  1. Waterloo Maple
  2. Maple V Application Center
  3. SymbolicNet -- Symbolic Mathematical Computation Information Center
  4. IMACS Conferences on Applications of Computer Algebra

Look Here for Important Announcemen ts

Announcements (Last posted Nov. 8 & 11:00 pm)


This list is tentative and may be modified at the instructor's discretion.
  1. Sept. 21, 1999 (Course Introduction and Introduction to Maple)
  2. Sept. 28, 1999 (Basic Maple Syntax and Semantics)
  3. Oct. 5, 1999 (Modular Arithmetic and the RSA public Key Cryptosystem)
  4. Oct. 12, 1999 (Programming in Maple and Implementation of the RSA algorithm)
  5. Oct. 19, 1999 (Advanced Maple Programming)

Programs and Worksheets

Created: 9/2/99 (revised 10/21/99) by