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

This term, the course will focus on applications to algorithm design, generation, and analysis.

Course Objectives
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.
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).
Jeremy Johnson
Office: University Crossings 100C
phone: (215) 895-2669
office hours: T,R 10-11 and R 7-8. Additional hours by appointment.
Meeting Time
TR 11:00-12:20 in UC 153
Course Mailing List
Use BbVista

This course requires Maple 14. Maple 14 is available to Drexel students through a site license and may be obtained through IRT's software site. Course notes will be provided on the web page as Maple worksheets that can not be read without Maple. Additional resources are listed below.
  1. Maplesoft
  2. Maplesoft Online Help
  3. Maplesoft Student Help Center
  4. Maplesoft Application Center
  5. Maple 14 Quick Reference
  6. Maple 14 User Manual
  7. Maple 14 Introductory Programming Guide
  8. Maple 14 Advanced Programming Guide
  9. The text will be supplemented by several journal articles and readings from texts available in the library.


  1. Introduction to symbolic mathematics systems in general and Maple in particular.
  2. Effective use of Maple.
  3. Programming in Maple.
  4. Combinatorics and Analysis of Algorithms
  5. Asymptotic Analysis
  6. Integer and polynomial arithmetic.
  7. Algorithm and Code generation
  8. Theorem Proving and Combinatorial Identities
  9. Other applications based on student interests.


  1. Homework assignments (60% - 4 X 15%)
  2. Midterm - in class using Maple (20%)
  3. Final Exam - take home due during the scheduled time of the final (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.


Reference Books
  1. Marko Petkovsek, Herbert Wilf, and Doron Zeilberger, "A = B", A K Peters, Ltd, 1996..
  2. Herbert Wilf, "generatingfunctionology", 2nd Ed., A K Peters, Ltd, 1994.. (3rd Ed. is available for purchase, and 2nd edition is available for download)
  3. Robert Sedgewick and Philippe Flajolet, "An Introduction to the Analysis of Algorithms", Addison-Wesley, 1996.
  4. Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, "Concrete Mathematics: A Foundation for Computer Science", 2nd Ed., Addison-Wesley, 1994.
Web Pages
  1. Waterloo Maple
  2. Maple Student Center
  3. Maple Application Center
  4. The Online Encyclopedia of Integer Sequences
  5. ECCAD - East Coast Computer Algebra Day
  6. IMACS Conferences on Applications of Computer Algebra

See BbVista course page for important announcements


This list is subject to change.
  1. Week 1
    1. Sept. 21, 2010 (FindMax, Permutations, Harmonic and Stirling Numbers)
    2. Sept. 23, 2010 (FindMax, Permutations, Harmonic and Stirling Numbers)
  2. Week 2
    1. Sept. 28, 2010 (No class - convocation - must come to office hours)
    2. Sept. 30, 2010 (Generating Permutations)
  3. Week 3
    1. Oct. 5, 2010 (Dominoes and Fibonacci Numbers)
    2. Oct. 7, 2010 (The Euclidean Algorithm)
  4. Week 4
    1. Oct. 12, 2010 (Karatsuba's Algorithm for Integer Multiplication)
    2. Oct. 14, 2010 (Fast Powering and Binary Divide and Conquer Recurrences)
  5. Week 5
    1. Oct. 19, 2010 (Recursive Data Structures and Algorithm Exploration)
    2. Oct. 21, 2010 (Midterm)
  6. Week 6
    1. Oct. 26, 2010 (Counting Binary Trees)
    2. Oct. 28, 2010 (Generating Functios)
  7. Week 7
    1. Nov. 2, 2010 (The Symbolic Method)
    2. Nov. 4, 2010 (The Symbolic Method)
  8. Week 8
    1. Nov. 9, 2010 (Analysis of Quicksort)
    2. Nov. 11, 2010 (Analysis of Quicksort)
  9. Week 9
    1. Nov. 16, 2010 (Probability Generating Functions)
    2. Nov. 18, 2010 (Bivariate Generating Functions)
  10. Week 10
    1. Nov. 23, 2010 (Bivariate Generating Functions)
    2. Nov. 25, 2010 (University Holiday - No Class)
  11. Week 11
    1. Nov. 30, 2010 (Asymptotic Analysis of Linear Recurrences)
    2. Dec. 2, 2010 (Stirlings Identity)

Programs and Worksheets



Created: 9/15/10 (revised 9/21/10) by jjohnson AT cs DOT drexel DOT edu