Applied Symbolic Computation (CS 300)

 Announcments  Lectures  Programs  Course Resources   Assignments and Labs  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, judgment, 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.

This term, the course will focus algorithms for and applications of the exact solution of linear and non-linear systems.

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).
Jeremy Johnson
Office: University Crossings 139
phone: (215) 895-2893
office hours: TR 11-12 and M 8-9 (online), Additional hours by appointment.
Course Assistant
Rachel Goeken
Office: Cyber Learning Center
office hours: T 4-6.
Course Meeting Time
TR 2:00-3:20 in Rush 014
Course Announcements and Discussion
Use piazza

This course requires Maple 2016. Maple 2016 is available to Drexel students through a site license and may be obtained through IRT's software site. Course notes will be provided on the web page as Maple worksheets that can not be read without Maple. Students will also use the LinBox library for computational linear algebra. Additional resources are listed below.
  1. Maplesoft
  2. Maplesoft Online Help
  3. Maple User Manual
  4. Maple Progrmaming Guide
  5. Project LinBox: Exact computational linear algebra
  6. In addition there students will be required to read journal articles and readings from texts available from the Drexel library.


  1. Introduction to symbolic mathematics systems in general and Maple in particular.
  2. Effective use of Maple.
  3. Programming in Maple.
  4. Algorithms for exact arithmetic
  5. Fundamental computer algebra algorithms such as the Euclidea algorithm, Chinese remainder algorithm, Fast Fourier transform (FFT), Guassian elimination, Hensel lifting, Berlekamp/Massey, Groebner bases.
  6. Exact solution of linear systems
  7. Exact solution of non-linear systems
  8. Applications to cryptography, optimization, robotics.


  1. Homework assignments (60% - 4 X 15%)
  2. In class participation (labs and quizzes) (20%)
  3. Final Project - due during the scheduled time of the final (20%)
Labs will be done in small groups. Assignments and quizzes will be returned on a regular basis to provide feedback to students. Assignments and quizzes must be done individually. 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.


Reference Books
  1. tba
Web Pages
  1. Maplesoft
  2. Maple User Manual
  3. Maple Progrmaming Guide
  4. Project LinBox: Exact computational linear algebra
  5. ACM SIGSAM: Special Interest Group in Symbolic and Algebraic Manipulation

Announcements and Discussion Board

See Piazza Discussion Forum for announcements and to ask questions and discuss course material.


This list is subject to change.
  1. Week 1
    1. Dominoes and Fibonacci Numbers
    2. Higher Order Fibonacci Numbers, Companion Matrices and Eigenvalues
  2. Week 2
    1. The Euclidean Algorithm
    2. The Euclidean Algorithm
  3. Week 3
    1. Integer Multiplication and Karatsuba's Algorithm
    2. Bit Complexity of the Euclidean Algorithm and Lehmer's Improvement
  4. Week 4
    1. Modular Arithmetic and Fast Powering
    2. Chinese Remainder Theorem and Modular Algorithms
  5. Week 5
    1. Fast Fourier Transform
    2. Modular FFTs
  6. Week 6
    1. FFT Based Polynomial and Integer Arithmetic
    2. Gaussian Elimination and Fast Matrix Multiplication
  7. Week 7
    1. Determinants, LU Factorization and Cramer's Rule
    2. Continued Fractions and Rational Reconstruction.
  8. Week 8
    1. Computing Integer Determinants
    2. Dixon's Algorithm for Solving Rational Systems
  9. Week 9
    1. Smith Normal Form
    2. Smith Normal Form.
  10. Week 10
    1. Sparse Elimination
    2. Weidemann's Algorithm for Solving Linear Systems

Programs and Worksheets

Assignments and Labs


Created: 12/20/16 (revised 2/20/18) by jjohnson AT cs DOT drexel DOT edu