Applied Symbolic Computation (CS 300)

 Announcments  Lectures  Programs  Course Resources   Assignments and Solutions  Grading Policy
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. See syllabus fo more details.
Undergraduate 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 and an introduction to the algorithms underlying systems like MAPLE.  The course counts towards the numeric and symbolic computing track for computer science students.
Undergraduate data structures course (CS 260)
Courses in calculus (MATH 200 or equivalent), linear algebra (MATH 201 or equivalent), discrete mathematics (MATH 221 or equivalent) and some knowledge of differential equations would be helpful.
Jeremy Johnson
Office: 206 Korman Center
phone: (215) 895-2893
office hours: M 3-6 and W1-3. Additional hours by appointment.
Jeff Abrahamson
Office: Korman 207 (MCS Student Resource Center)
office hours: T 3:30-5:30.
Meeting Time
TR 2:00-3:30 in Matheson 309
Course Mailing List

Please use this list for questions and discussions related to the course. If you know the answer to someone's question, please feel free to jump in, as long as well it is not an answer to a homework problem. I will moderate the list so that frivolous mail and spam is not forwarded.
Every student must have access to Maple version 8.   It is highly recommended that students purchase the student version of Maple 8, though Maple is available in the Math and CS labs as well as Drexel labs.   Course notes will be provided on the web page as Maple worksheets that can not be read without Maple.  Additional resources are listed below.
  1. Maple 8 student edition.
  2. Maple 8 Getting Started Guide.
  3. Maple 8 Learning Guide.
  4. Maple 8 Introductory Programming Guide.
  5. Maple 8 Advanced Programming Guide.
  6. 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. Cryptography and Number Theoretic Algorithms.
  5. Integer and polynomial arithmetic.
  6. Code generation (e.g. finite diferences schemes, automatic differentiation)
  7. Solution of systems of polynomial equations (introduction to Groebner Bases).
  8. Applications of Groebner Bases (digital signal processing, robotics)
  9. Quantifier elimination and applications to stability analysis and control theory.
  10. Other applications based on student interests.


  1. Homework assignments (40%)
  2. Midterm (30%)
  3. Optional (for non-graduating seniors) Final Exam (30%)
Assignments and exams will be returned on a regular basis to provide feedback to students. All students must do their own work. Any violation of this will result in a zero grade for the assignment. A second violation may lead to an F for the course.


Reference Books
  1. Maple 8 Getting Started Guide.
  2. Maple 8 Learning Guide.
  3. Maple 8 Introductory Programming Guide.
  4. Maple 8 Advanced Programming Guide.
  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 Student Center
  3. Maple Essentials
  4. Maple Programming
  5. Maple Application Center
  6. SymbolicNet -- Symbolic Mathematical Computation Information Center
  7. ISSAC 2003 -- International Conference on Computer Algebra
  8. ECCAD 2003 -- Regional Conference on Computer Algebra
  9. IMACS Conferences on Applications of Computer Algebra

Look Here for Important Announcements

Announcements (Last posted April 29 @ 8:30pm)


This list is tentative and may be modified at the instructor's discretion.
  1. Week 1
    1. April 1, 2003 (Course Introduction and Introduction to Maple)
    2. April 3, 2003 (Symbolic and Numeric Computing in Maple)
  2. Week 2
    1. April 8, 2003 (Symbolic and Numeric Computing in Maple)
    2. April 10, 2003 (Symbolic and Numeric Computing in Maple)
  3. Week 3
    1. April 15, 2003 (Symbolic and Numeric Computing in Maple)
    2. April 17, 2003 (Computing e)
  4. Week 4
    1. April 22, 2003 (Maple Syntax and Semantics)
    2. April 24, 2003 (Maple Programming)
  5. Week 5
    1. April 29, 2003 (Advanced Maple Programming)
    2. May 1, 2003 (The Euclidean Algorithm)
    3. May 1, 2003 (Midterm Exam)
  6. Week 6
    1. May 6 2003 (Modular Arithmetic)
    2. May 8 2003 (RSA Public Key Cryptosystem)
  7. Week 7
    1. May 13, 2003 (Multiplication, Interpolation, and the Chinese Remainder Theorem)
    2. May 15, 2003 (Review Session) See p3.mws
  8. Week 8
    1. May 20, 2003 (Convolution, the CRT, and the FFT)
    2. May 22, 2003 (FFT Based polynomial and integer multiplication)
  9. Week 9
    1. May 27, 2003 (FFT Based polynomial and integer multiplication)
    2. May 29, 2003 (Review Session)
  10. Week 10
    1. June 3, 2003 Code Generation
    2. June 5, 2003 Code Generation

Programs and Worksheets



Created: 3/24/01 (revised 5/22/01) by