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, students’understanding of mathematical
concepts
learned in previous courses.
 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 understand the difference between numeric and symbolic
computation.
 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).
 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 200 or equivalent), linear algebra
(MATH 201 or equivalent), discrete mathematics (MATH 221 or equivalent)
and some knowledge of differential equations would be helpful.
 Instructor
 Jeremy Johnson
Office: 206 Korman Center
phone: (215) 8952893
email: jjohnson @
cs.drexel.edu
office hours: TBA. Additional hours by appointment.
 TA
 Servesh Tiwari
Office: Univ. Crossings 147 (CS Student Resource Center)
email: st86@drexel.edu
office hours: R 2:004:00.
 Meeting Time
 TR 12:302:00 in Univ. Crossings
 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
Every student must have access to Maple version 10. Maple is
available in the CS labs as well as Drexel labs. Course
notes will be provided on the web page as Maple worksheets that can not
be read without Maple. Additional resources are listed below.
Students will be provided with a copy of the student edition of Maple
10 (either for free or at a reduced price  this is being set up).
 Maple
Getting Started Guide.
 Maple User
Manual.
 Maple Introductory Programming Guide.
 Maple 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 and the FFT
 Code generation (e.g. finite diferences schemes, automatic
differentiation)
 Solution of systems of polynomial equations (introduction to
Groebner Bases).
 Applications of Groebner Bases
Grading
 Homework assignments (55%)
 Midterm (25%)
 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.
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.
 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
Look Here for Important
Announcements
Announcements
()
Lectures
This list is subject to change.
 Week 1
 Sept. 27, 2005 (Course
Introduction and Introduction to Maple)
 Sept. 29, 2005 (Experimenting with Maple)
 Week 2
 Oct. 4, 2005 (Sequences, Recurrences and Growth Rates)
 Oct. 6, 2005 (A Fast Algorithm to Compute Fibonacci Numbers)
 Week 3
 Oct. 11, 2005 (The Euclidean Algorithm)
 Oct. 13, 2005 (Modular Arithmetic and Fast Powering)
 Week 4
 Oct. 18, 2005 (Modular Algorithms)
 Oct. 20, 2005 (Fast Integer Arithmetic)
 Week 5
 Oct. 25, 2005 (No Class)
 Oct. 27, 2005 (Modular Algorithm for Integral Polynomial Multiplication)
 Week 6
 Nov. 1, 2005 (Review Midterm Exam)
 Nov.
3, 2005 (Review Midterm Exam)
 Week 7
 Nov. 8, 2005 (Fast Fourier Transform)
 Nov, 10, 2005 (FFT Based Polynomial and Integer Multiplication)
 Week 8
 Nov. 15, 2005 (Numeric Solution of Univariate Equations)
 Nov. 17, 2005 (Polynomial System Solving)
 Week 9
 Nov. 22, 2005
(MultiDimensional Newton's Method)
 Nov. 24, 2005 (Univ. Holiday  NO Class)
 Week 10
 Nov. 29, 2005
(Rings and Algorithms)
 Dec. 1, 2005
(The Division Algorithm)
 Week 11
 Dec. 6, 2004
(Groebner Bases)
 Dec. 8, 2004
(Polynomial System Solving)
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
 Assignment 1  assign1.mw (10%)  Due Oct.13
 Assignment 2  assign2.mw (15 %)  Due Oct. 27
 Take home Midterm Exam midterm.mw (25%) Oct. 25 (Due Wed. Nov. 2 @ 11:55 pm)
 Assignment 3  assign3.mw (25 %)  Due Dec. 1
 Final Exam (25%)  TBA
Solutions
Created: 9/26/05 (revised) by jjohnson@cs.drexel.edu