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.

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. 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.

Prerequisites

Undergraduate data structures course (CS 260)

Courses in calculus (MATH 121123, 200 or equivalent), linear algebra (MATH 201
or equivalent), discrete mathematics (MATH 221 or equivalent).

Instructor

Jeremy Johnson
Office: University Crossings 100
phone: (215) 8952669
email: jjohnson AT cs DOT drexel DOT edu
office hours: T 34 and R 36. Additional hours by appointment.
 Meeting Time
 TR 11:0012: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.

Textbook
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.

Maple
11.

Maple 11 Getting Started Guide.
 Maple 11 Quick Reference
 Maple 11 User Manual.
 Maple 11 Introductory Programming Guide.
 Maple 11 Advanced Programming Guide.
 The text will be supplemented by several journal articles and readings
from texts available in the library.
Topics

Introduction to symbolic mathematics systems in general and Maple in particular.

Effective use of Maple.

Scientific programming in Maple.

Cryptography and Number Theoretic Algorithms.

Integer and polynomial arithmetic.

Code generation (e.g. finite diferences schemes, automatic differentiation)

Solution of systems of polynomial equations (introduction to Groebner Bases).

Applications of Groebner Bases (digital signal processing, robotics)

Quantifier elimination and applications to stability analysis and control
theory.

Other applications based on student interests.
Grading
 Homework assignments (60%)
 Midterm (20%)
 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.
Resources

Reference Books
 Maple 11 Quick Reference
 Maple 11 User Manual.
 Maple 11 Introductory Programming Guide.
 Maple 11 Advanced Programming Guide.
 Cox, D., Little, J., and O'Shea, D. Ideals, Varieties, and Algorithms,
Second Edition. SpringerVerlag, 1997.

Web Pages

Waterloo Maple

Maple Student Center

Maple
Essentials

Maple
Programming

Maple Application Center

SymbolicNet  Symbolic Mathematical
Computation Information Center

ISSAC 2003  International
Conference on Computer Algebra

ECCAD 2003  Regional
Conference on Computer Algebra

IMACS Conferences on Applications
of Computer Algebra
Look Here for Important Announcements
Announcements (Last posted Oct. 30 @ 7:00 am)
Lectures
This list is tentative and may be modified at the instructor's discretion.
 Week 1
 Sept. 25, 2007
(Course Introduction and Introduction to Maple)
 Sept. 27, 2007
(Experimenting with Maple)
 Week 2
 Oct. 2, 2007
(Programming Maple  procedures, sequences, recurrences, and limits)
 Oct. 4, 2007
(The Euclidean Algorithm)
 Week 3
 Oct. 9, 2007
(Karatsuba's Algorithm for Integer Multiplication)
 Oct. 11, 2007
(Interpolation, Generalized Karatsuba, and Asymptotically Fast Integer Multiplication)
 Week 4
 Oct. 16, 2007
(Modular Arithmetic and Fast Powering)
 Oct. 18, 2007  No Lecture due to convocation
 Week 5
 Oct. 23, 2007 (CRT and a modular algorithm for integer multiplication)
 Oct. 25, 2007 (RSA Public Key Encryption)
 Week 6
 Oct. 30, 2007 (Midterm Exam)
 Nov. 1, 2007 (Midterm Exam)
 Week 7
 Nov. 6, 2007 (Modular Algorithms for Polynomial and Integer Arithmetic)
 Nov. 8, 2007 (Fast Fourier Transform)
 Week 8
 Nov. 13, 2007 (Convolution, CRT, and the FFT)
 Nov. 15, 2007 (Three Primes Algorithm)
 Week 9
 Nov. 15, 2007 (Three Primes Algorithm)
 Nov. 22, 2007 (Thanksgiving Holiday)
 Week 10
 Nov. 27, 2007 (Computing Time Analysis  Bit Complexity)
 Nov. 29, 2007 (Computing Time Analysis  Bit Complexity)
 Week 11
 Dec. 4, 2007 (Convolution Algorithms)
 Dec. 6, 2007 (Deriving Convolution Algorithms using Maple)
Programs and Worksheets
Assignments
Solutions
Created: 9/24/2007 (revised ) by jjohnson AT cs DOT drexel DOT edu