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, understanding of mathematical concepts learned in previous courses.
This term will focus on number theoretic algorithms, integer factorization, primality testing, and cryptography.
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 (in particular number theory and cryptography). The course is appropriate for students interested in scientific programming and an introduction to the algorithms underlying systems like MAPLE. For computer science students, the course counts towards the numeric and symbolic computing track, and due to the emphasis on cryptography, the computer and network security track.
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: 206 Korman Center
phone: (215) 895-2669
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: TBA. Additional hours by appointment.
Aliaksei Sandryhaila
Office: Univ. Crossings 147 (CS Student Resource Center)
e-mail: aus23 AT drexel DOT edu
office hours: M 3:00-5:00.
Meeting Time
TR 12:30-2:00 in Univ. Crossings 153
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.
  1. David M. Bressoud, Factorization and Primality Testing, Springer, 1989.
  2. Every student must have access to Maple version 10. Course notes will be provided on the web page as Maple worksheets that can not be read without Maple. Maple is available in the CS labs as well as Drexel labs, and the student edition is available at a reduced price.
  3. Additional resources are listed below.


  1. Introduction to symbolic mathematics systems in general and Maple in particular.
  2. Effective use of Maple.
  3. Programming in Maple.
  4. Integer and polynomial arithmetic and the FFT
  5. Cryptography and Number Theoretic Algorithms.


  1. Class Participation (15%)
  2. Three Homework assignments (45%)
  3. Two Quizes (40%)
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 will 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. Maple Getting Started Guide.
  2. Maple Users Manual.
  3. Maple Introductory Programming Guide.
  4. Maple Advanced Programming Guide.
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. The Prime Pages
  8. GIMPS: The Great Internet Mersenne Prime Search

Look Here for Important Announcements

Announcements ()


This list is subject to change.
  1. Week 1 (Chapter 1)
    1. April 4, 2006 (Unique Factorization)
    2. April 6, 2006 (The Euclidean Algorithm)
  2. Week 2 (Chapter 2)
    1. April 11, 2006 (The Sieve of Eratosthenes and the Prime Number Theorem)
    2. April 13, 2006 (Mersenne Primes and Integer Multiplication)
  3. Week 3 (Chapters 3,4)
    1. April 18, 2006 (Modular Arithmetic and Fast Exponentiation)
    2. April 20, 2006 (RSA Public Key Crypto-System)
  4. Week 4 (Chapter 4)
    1. April 25, 2006 (No class - review lecture 6 and the paper by Rivest, Shamir, and Adleman that was distributed)
    2. April 27, 2006 (Exam 1)
  5. Week 5 (Chapters 6,7)
    1. May 2, 2006 (Strong Pseudoprimes and a Probabalistic Primality Test)
    2. May 9, 2006 - Go over Exam 1.
  6. Week 6 (Chapter 9)
    1. May 9, 2006 (Quadratic Reciprocity and the Solovay-Strassen Primality Test)
    2. May 11, 2006 (Primitive Roots and Primality Testing)
  7. Week 7 (Handout)
    1. May 16, 2006 (Fast Fourier Transform)
    2. May 18, 2006 (FFT Based Polynomial and Integer Arithmetic)
  8. Week 8 (Chapter 5)
    1. May 23, 2006 (Three Primes Algorithm)
    2. May 25, 2006 (Three Primes Algorithm)
  9. Week 9 (Chapters 8)
    1. May 30, 2006 (Introduction to Integer Factorization Algorithms)
    2. June 1, 2006 (The Quadratic Sieve)
  10. Week 10 (Chapter 8)
    1. June 6, 2006 (Quadratic Sieve)
    2. June 8, 2006 (No Class)

Programs and Worksheets

Assignments and Exams


Created: 9/26/05 (revised) by