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 121-123, 200 or equivalent), linear algebra (MATH 201
or equivalent), discrete mathematics (MATH 221 or equivalent).
-
Instructor
-
Jeremy Johnson
Office: University Crossings 100
phone: (215) 895-2669
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: T 3-4 and R 3-6. Additional hours by appointment.
- Meeting Time
- TR 11:00-12: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. Springer-Verlag, 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