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
 To be able to use Maple (or similar system) to solve
computational
and mathematical problems.
 To be able to write Maple scripts to perform and analyze a series
of
computations, and to extend the features of Maple to solve a problem of
interest
 To use Maple to explore a mathematical theorem, example, or
concept
or other scientific or engineering problems.
 To appreciate the limitations and features (symbolic, numeric,
mathematical,
visual, programming) of a symbolic mathematics system such as Maple.
 To use and understand some fundamental algebraic computations and
algorithms
(e.g. Euclidean algorithm, modular arithmetic and the Chinese Remainder
theorem, fast Fourier transform, Groebner bases).
 To understand the mathematics behind and be able to implement and
analyze a variety of number theoretic and cryptographic algorithms.
 Audience
 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.
 Prerequisites
 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).
 Instructor
 Jeremy Johnson
Office: 206 Korman Center
phone: (215) 8952669
email: jjohnson AT cs DOT drexel DOT edu
office hours: TBA. Additional hours by appointment.
 TA
 Aliaksei Sandryhaila
Office: Univ. Crossings 147 (CS Student Resource Center)
email: aus23 AT drexel DOT edu
office hours: M 3:005:00.
 Meeting Time
 TR 12:302:00 in Univ. Crossings 153
 Course Mailing List
 cs300@cs.drexel.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.
 Textbook
 David M. Bressoud, Factorization and Primality Testing,
Springer, 1989.
 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.
 Additional resources are listed below.
Topics
 Introduction to symbolic mathematics systems in general and Maple
in particular.
 Effective use of Maple.
 Programming in Maple.
 Integer and polynomial arithmetic and the FFT
 Cryptography and Number Theoretic Algorithms.
 Euclidean algorithm, continued fractions, and fast exponentiation
 Modular Arithmetic
 RSA publickey cryptosystem
 Primality testing
 Algorithms for integer factorization
Grading
 Class Participation (15%)
 Three Homework assignments (45%)
 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.
Resources
 Reference Books
 Maple Getting Started Guide.
 Maple Users Manual.
 Maple Introductory Programming Guide.
 Maple Advanced Programming Guide.
 Web Pages
 Waterloo Maple
 Maple Student Center
 Maple
Essentials
 Maple
Programming
 Maple Application Center
 SymbolicNet 
Symbolic Mathematical Computation Information Center
 The Prime Pages
 GIMPS: The Great Internet
Mersenne Prime Search
Look Here for Important
Announcements
Announcements
()
Lectures
This list is subject to change.
 Week 1 (Chapter 1)
 April 4, 2006
(Unique Factorization)
 April 6, 2006
(The Euclidean Algorithm)
 Week 2 (Chapter 2)
 April 11, 2006
(The Sieve of Eratosthenes and the Prime Number Theorem)
 April 13, 2006
(Mersenne Primes and Integer Multiplication)
 Week 3 (Chapters 3,4)
 April 18, 2006
(Modular Arithmetic and Fast Exponentiation)
 April 20, 2006
(RSA Public Key CryptoSystem)
 Week 4 (Chapter 4)
 April 25, 2006
(No class  review lecture 6 and the paper by
Rivest, Shamir, and Adleman that was distributed)
 April 27, 2006
(Exam 1)
 Week 5 (Chapters 6,7)
 May 2, 2006
(Strong Pseudoprimes and a Probabalistic Primality Test)
 May 9, 2006  Go over Exam 1.
 Week 6 (Chapter 9)
 May 9, 2006
(Quadratic Reciprocity and the SolovayStrassen Primality Test)
 May 11, 2006
(Primitive Roots and Primality Testing)
 Week 7 (Handout)
 May 16, 2006
(Fast Fourier Transform)
 May 18, 2006
(FFT Based Polynomial and Integer Arithmetic)
 Week 8 (Chapter 5)
 May 23, 2006
(Three Primes Algorithm)
 May 25, 2006
(Three Primes Algorithm)
 Week 9 (Chapters 8)
 May 30, 2006
(Introduction to Integer Factorization Algorithms)
 June 1, 2006
(The Quadratic Sieve)
 Week 10 (Chapter 8)
 June 6, 2006
(Quadratic Sieve)
 June 8, 2006
(No Class)
Programs and Worksheets
 line.mw  worksheet for lecture containing
intro to Maple and problems with linear equations.
 quadratic.mw  Worksheet for lecture on quadratic equations
 euclid.mws  Worksheet on the Euclidean Algorithm
 power.mws  Worksheet on fast powering
 mod.mws  Worksheet introducing modular
arithmetic, the Chinese Remainder algorithm (CRA), and modular algorithms
 imult.mws  Worksheet on integer multiplication
 karatsuba.mws  Worksheet on Karatsuba's integer multiplication algorithm
Assignments and Exams
 Assignment 1  Assignment 1 (15%)  Due May 5
 Assignment 2  assign2.mw (15 %)  Due May 26
 Assignment 3  Assignment 3 (20 %)  Due June 8 by 5pm
 Exam 1  Studyguide 1 (20%)  in class on Thur. April 27
 Exam 1 (Extra problem)  See webct for exam instructions. Due Tue. May 16 at 11:55 pm.
Solutions
Created: 9/26/05 (revised) by jjohnson@cs.drexel.edu