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.
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 121-123, 200 or equivalent), linear algebra (MATH 201 or equivalent), discrete mathematics (MATH 221 or equivalent).
Jeremy Johnson
Office: University Crossings 100
phone: (215) 895-2669
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: T 3-4 and R 3-6. Additional hours by appointment.
Meeting Time
TR 11:00-12:30 in University Crossings 153
Course Mailing List
cs300 AT cs DOT drexel DOT edu

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.
Maple version 11. Maple is available free of charge to Drexel University students through a University site license. See IRT Software Site. Course notes will be made available as Maple worksheets. Additional resources will be made available as needed.
  1. Maple 11.
  2. Maple 11 Getting Started Guide.
  3. Maple 11 Quick Reference
  4. Maple 11 User Manual.
  5. Maple 11 Introductory Programming Guide.
  6. Maple 11 Advanced Programming Guide.
  7. 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 (60%)
  2. Midterm (20%)
  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.


Reference Books
  1. Maple 11 Quick Reference
  2. Maple 11 User Manual.
  3. Maple 11 Introductory Programming Guide.
  4. Maple 11 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 Oct. 30 @ 7:00 am)


This list is tentative and may be modified at the instructor's discretion.
  1. Week 1
    1. Sept. 25, 2007 (Course Introduction and Introduction to Maple)
    2. Sept. 27, 2007 (Experimenting with Maple)
  2. Week 2
    1. Oct. 2, 2007 (Programming Maple - procedures, sequences, recurrences, and limits)
    2. Oct. 4, 2007 (The Euclidean Algorithm)
  3. Week 3
    1. Oct. 9, 2007 (Karatsuba's Algorithm for Integer Multiplication)
    2. Oct. 11, 2007 (Interpolation, Generalized Karatsuba, and Asymptotically Fast Integer Multiplication)
  4. Week 4
    1. Oct. 16, 2007 (Modular Arithmetic and Fast Powering)
    2. Oct. 18, 2007 - No Lecture due to convocation
  5. Week 5
    1. Oct. 23, 2007 (CRT and a modular algorithm for integer multiplication)
    2. Oct. 25, 2007 (RSA Public Key Encryption)
  6. Week 6
    1. Oct. 30, 2007 (Midterm Exam)
    2. Nov. 1, 2007 (Midterm Exam)
  7. Week 7
    1. Nov. 6, 2007 (Modular Algorithms for Polynomial and Integer Arithmetic)
    2. Nov. 8, 2007 (Fast Fourier Transform)
  8. Week 8
    1. Nov. 13, 2007 (Convolution, CRT, and the FFT)
    2. Nov. 15, 2007 (Three Primes Algorithm)
  9. Week 9
    1. Nov. 15, 2007 (Three Primes Algorithm)
    2. Nov. 22, 2007 (Thanksgiving Holiday)
  10. Week 10
    1. Nov. 27, 2007 (Computing Time Analysis - Bit Complexity)
    2. Nov. 29, 2007 (Computing Time Analysis - Bit Complexity)
  11. Week 11
    1. Dec. 4, 2007 (Convolution Algorithms)
    2. Dec. 6, 2007 (Deriving Convolution Algorithms using Maple)

Programs and Worksheets



Created: 9/24/2007 (revised ) by jjohnson AT cs DOT drexel DOT edu