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 W 1-3. Additional hours by appointment.
Jeff Abrahamson
Office: Korman 207 (MCS Student Resource Center)
office hours: R 2-3:30.
Meeting Time
TR 12:30-2:00 in Pearlstein 101
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 9.   It is highly recommended that students purchase the student version of Maple 9, 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 9 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 (50%)
  2. Midterm (25%)
  3. Final Exam (25%)
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 (Sat. Nov. 22 @ 9:00am)


This list is tentative and may be modified at the instructor's discretion. The course will be organized around three themes: 1) Discrete mathematics, combinatorics, and algorithm analysis. 2) Number theoretic algorithms and cryptography. 3) Solving systems of equations and applications. Approximately three weeks will be devoted to each topic. Maple will be used to explore all of these topics and the topics will be used to illustrate effective use of Maple. More detailed lecture notes and a more accurate timeline will be provided as the term progresses.
  1. Week 1
    1. Sept. 23, 2003 (Course Introduction and Introduction to Maple)
    2. Sept. 25, 2003 (FindMax, Permutations, Harmonic and Stirling Numbers)
  2. Week 2
    1. Sept. 30, 2003 (FindMax, Permutations, Harmonic and Stirling Numbers)
    2. Oct. 2, 2003 (Generating Permutations)
  3. Week 3
    1. Oct. 7, 2003 (Partitions)- class starts at 1 due to convocation.
    2. Oct. 9, 2003 (Partition trees and the Walsh-Hadamard Transform)
  4. Week 4
    1. Oct. 14, 2003 (Generating Functions)
    2. Help with assignment 2
  5. Week 5
    1. Oct. 21, 2003 (Solving Recurrences using Generating Functions)
    2. (take-home midterm)
  6. Week 6
    1. Oct. 28, 2003 (Go over midterm - solmid.mws)
    2. No class
  7. Week 7
    1. Nov. 4, 2003 (Fibonacci Numbers and the Euclidean Algorithm)
    2. Nov. 6, 2003 (Modular Arithmetic and Fast Powering)
  8. Week 8
    1. Nov. 11, 2003 (RSA public-key cryptosystem)
    2. Nov. 13, 2003 (RSA public-key cryptosystem)
  9. Week 9
    1. Nov. 18, 2003 (Fast Integer Multiplication using Karatsuba's Algorithm)
    2. Nov. 20, 2003 (Faster Integer Multiplication and Polynomial Interpolation)
  10. Week 10
    1. Nov. 25, 2003 (Interpolation and the FFT)
    2. Thanksgiving Holiday
  11. Week 11
    1. Dec. 1, 2003 (Interpolation and the FFT)
    2. Dec. 3, 2003 (Review) - go over Solution to Assignment 4 and the Final Exam

Programs and Worksheets



Created: 9/22/03 () by