Applied Symbolic Computation (CS 300)

 Announcments  Lectures  Programs  Course Resources   Assignments and Solutions  Grading Policy
Course Description
This course covers the fundamentals of symbolic mathematical methods as embodied in symbolic mathematics software systems, including: fundamental techniques, simplification of expressions, solution of applications problems, intermediate expressions swell, basic economics of symbolic manipulation, efficient solution methods for large problems, hybrid symbolic/numeric techniques. 
Course Goals
To provide students with the skills, judgement, and spirit necessary to effectively use a symbolic mathematics system such as Maple. To learn the features and limitations of Maple and related systems. To see how Maple can be used to solve a wide range of computational and mathematical problems. To see how computational tools can be applied to various application domains such as cryptography, signal processing, robotics, algorithm design and analysis, code generation, algebra and number theory, and scientific problems. To reinforce, through computational examples, students’understanding of mathematical concepts learned in previous courses.
Course Objectives
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: Monday 1-3, T 4-6, W 1-2. Additional hours by appointment.
Riddhi Dattani
Office: 207 (MCS Student Resource Center)
office hours: R 11-12.
Meeting Time
TR 12:30-2:00 in CAT 268
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.

The student version of Maple 9 can be purchased at a discount from Maplesoft through a special offer that has been arranged for our class. through the link below.

  1. Maple 9 student edition.
  2. Maple 9 Getting Started Guide.
  3. Maple 9 Learning Guide.
  4. Maple 9 Introductory Programming Guide.
  5. Maple 9 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. Combinatorics and Analysis of Algorithms
  7. Code generation (e.g. finite diferences schemes, automatic differentiation)
  8. Solution of systems of polynomial equations (introduction to Groebner Bases).
  9. Applications of Groebner Bases (digital signal processing, robotics)
  10. Other applications based on student interests.


  1. Homework assignments (55%)
  2. Midterm (25%)
  3. Final Exam (20%)
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.

Grades are based on a curve with the mean normalized to a B provided the mean performance shows competency of the material.

Graduating seniors do not take the final exam.  Their grade will be based on the remaining 80% and will be curved based on everyone's work except the final exam.


Reference Books
  1. Maple 9 Getting Started Guide.
  2. Maple 9 Learning Guide.
  3. Maple 9 Introductory Programming Guide.
  4. Maple 9 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. May. 29 @ 7:15am)


This list is subject to change.
  1. Week 1
    1. Mar. 30, 2004 (Course Introduction and Introduction to Maple)
    2. Apr. 1, 2004 (Numeric and Symbolic Computing in Maple)
  2. Week 2
    1. Apr. 6, 2004 (Numeric and Symbolic Computing in Maple)
    2. Apr. 8, 2004 (Maple Syntax and Semantics)
  3. Week 3
    1. Apr. 14, 2004 (Elementary Programming and Data Structures in Maple)
    2. Apr. 16, 2004 (Elementary Programming and Data Structures in Maple)
  4. Week 4
    1. Apr. 21, 2004 (Recursive Data Structures and Algorithm Exploration)
    2. Apr. 23, 2004 (Recursive Data Structures and Algorithm Exploration)
  5. Week 5
    1. Apr. 27, 2004 (Generating Functions)
    2. Apr. 29, 2004 (Generating Functions)
  6. Week 6
    1. May 4, 2004 (The Combstruct Package)
    2. May 6, 2004 (No Lecture )
  7. Week 7
    1. May 11, 2004 (Fast Integer Multiplication and Interpolation)
    2. May 13, 2004 (Fast Integer Multiplication and Interpolation)
  8. Week 8
    1. May 18, 2004 (Modular Arithmetic and Fast Powering)
    2. May 20, 2004 (The Fast Fourier Transform)
  9. Week 9
    1. May. 25 2004 (Polynomial and Interger Multiplication using the FFT)
    2. May. 27, 2004 (Catchup Session)
  10. Week 10
    1. June 1, 2004 (RSA Public Key Encryption)
    2. June 3, 2004 (The Three Primes Algorithm)

Programs and Worksheets



Created: 3/23/04 (revised 3/30/04) by