Applied Symbolic Computation (CS 300)

 Announcements  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

Werner Krandick
Office: University Crossings 112
phone: (215) 895-2939
e-mail: krandick AT cs DOT drexel DOT edu
office hours: T,W 1:00 pm - 2:30 pm, and by appointment.

Meeting Time
T,R 11:00 am – 12:20 pm in University Crossings 153

Textbook

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

  1. Maple 13.

  2. Maple 13 Getting Started Guide.

  3. Maple 13 Quick Reference

  4. Maple 13 User Manual.

  5. Maple 13 Introductory Programming Guide.

  6. Maple 13 Advanced Programming Guide.

  7. The text will be supplemented by several journal articles and readings from texts available in the library.


Topics

  1. Effective use of a symbolic computation system (Maple).

  2. Integer, rational, floating point, interval, modular arithmetic.

  3. The Euclidean Algorithm.

  4. Chinese Remainder Theorem: Computing with homomorphic images.

  5. Polynomial arithmetic.

  6. Code generation.

  7. Generating functions.

  8. Combinatorial structures.

  9. Algorithm analysis.


Grading

  1. Four homework assignments (15% each)

  2. Midterm (20%)

  3. Final Project (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

Keith O. Geddes, Stephen R. Czapor, George Labahn. Algorithms for Computer Algebra, Kluwer Academic Publishers, 1992.

Donald E. Knuth, The Art of Computer Programming, vol. 2, 3rd ed., 1998.

Web Pages

MapleSoft


Look Here for Important Announcements

Announcements (Last posted Oct 03, 2009 @ 5:00 pm)


Schedule

This list is tentative and may be modified at the instructor's discretion.

September 22 and 24, 2009: Computer algebra systems, dominance and computing time.

Introduction to Maple: Interest computation (interest.mw), quadratic equations (quadratic.mw). Dominance and computing time.

Assignment 1 due Sept 28 at noon (BbVista).

September 29 and October 1, 2009: Classical integer arithmetic

Representation of integers, computing time analysis of classical integer arithmetic. Evaluating an integer polynomial at an integer using Horner's scheme. Binary powering.

October 6 and 8, 2009: The Euclidean algorithm.

The Euclidean algorithm, computing time analysis.

Assignment 2 due Oct 12 at noon (BbVista). Typeset your math using LyX or similar software. LyX 1.6.2 is installed on tux (/usr/bin/lyx).



October 13 and 15, 2009: Rational arithmetic.

Rational arithmetic. Henrici's algorithm for addition of rational numbers.



Take-home midterm: Monday (!), Oct 19 at 11:59pm (BbVista).



October 20 and 22, 2009: Floating point arithmetic, interval arithmetic.

Floating point arithmetic, rounding error, IEEE 754 standard. Interval arithmetic, wrapping error.



Assignment 3 due Oct 30 at noon (BbVista).



October 27 and 29, 2009: Modular arithmetic.

Modular arithmetic. The extended Euclidean algorithm.



November 3 and 5, 2009: Chinese Remainder Theorem. Computing with homomorphic images.

Garner's algorithm. Determinant computation. Hadamard's theorem.



November 10 and 12, 2009: Code generation.

Karatsuba multiplication (karatsuba.mw), computing time, memory requirements. Generating generalized Karatsuba algorithms.



Assignment 4 due Nov 16 at noon (BbVista).

November 17, 19 and 24, 2009: Generating functions and combinatorial structures.

Generating functions (gen.mw), making change, counting binary trees, solving recurrences. Defining and investigating combinatorial structures using the combstruct package.



December 1 and 3, 2009: Algorithm analysis. Final project due December 7 at noon (BbVista.).

TBD.