Powerful, flexible, easy to use-small wonder that the use of MAPLE® continues to increase, particularly since the latest releases of MAPLE. The built-in nature of its numerical and graphical facilities gives MAPLE a distinct advantage over traditional programming languages, yet to date, no textbook has used that advantage to introduce programming concepts. Moreover, few books based on MAPLE's latest versions even exist.
Computing with MAPLE presents general programming principles using MAPLE as a concrete example of a programming language. The author first addresses the basic MAPLE functions accessible for interactive use then moves to actual programming, discussing all of the programming facilities that MAPLE provides, including control structures, data types, graphics, spreadsheets, text processing, and object oriented programming. Reflecting MAPLE's primary function as a computational tool, the book's emphasis is on mathematical examples, and it includes a full chapter devoted to algebraic programming.
Classroom tested since 1995, the material in Computing with MAPLE is particularly appropriate for an intermediate-level introductory course in programming for both mathematics and computing students. It includes numerous exercises and test questions, with MAPLE worksheets, contact information, and supplementary material available on the Internet.
Learning Computing
Background References
Fundamental Terminology
MAPLE Interfaces
The MAPLE Worksheet Interface
Exercises: The Worksheet Interface
REVIEW OF BASICS
MAPLE Syntax: Special Symbols
Assignment, Evaluation, Substitution, and Simplification
Common Errors
Sequences, Lists, and Sets
Characters and Strings
Exercises
TWO-DIMENSIONAL PLOTTING
Simple Plotting
The plots Package and Animation
A Graphical Investigation of the Cardioid
Exporting Plots (and Worksheets)
Exercises: The Cycloid
Appendix: Code to plot the Figures
THREE-DIMENSIONAL PLOTTING
The plot3d Function
Three-Dimensional Plotting Options
Interacting with Three-Dimensional Plots
Three-Dimensional Plotting Options
Using the plots Package
Three-Dimensional Bouncing Ball Animation
Exporting Three-Dimensional Plots
Exercises
Appendix: Code to Plot the Figures
NUMERICAL AND SEMI-NUMERICAL COMPUTATION
Number Systems
Floating-Point Computation in MAPLE
Multiple Roots
Aliases and Algebraic Numbers
Computing with Modular Integers
Exercises
Appendix: Code to Plot the Figures
NUMERICAL LINEAR ALGEBRA
Linear Algebra in MAPLE
Numerical Linear Algebra
Interaction: Linear Algebra
Viewing Large Matrices and Vectors
Using the LinearAlgebra Package
Solving Systems of Linear Equations
Special Matrices
Eigenvalue Problems
Ill-Conditioned Problems
Under- and Over-Determined Problems
Exercises
LOGIC AND CONTROL STRUCTURES
Relational Operators
Boolean Algebra
Boolean Operators in MAPLE: and, or, not
Conditional Execution: if
Piecewise-Defined Functions
Loops: do, while, for
Exercises
PROCEDURES AND RECURSION
Defining and Using Procedures
General Procedure Definition Syntax
Variable Scope
Procedure Arguments
Special Identifiers in Procedures
Terminating Procedure Execution
Examples: Integer Factorization
Displaying MAPLE Procedures
Procedure Options and Remember Tables
More About Variable Scope
Recursion
Procedures that Output Plots
Recursive Plotting
Animating the Koch Snowflake Fractal
Program Design
Exercises
OPERATORS AND FUNCTIONS
Operators
Converting Between Expressions and Mappings
Composition of Mappings and Functions
The Derivative Operator D
Set Operations
Example of Recursive Integer and Polynomial Functions
Exercises
DATA TYPES
Primitive Types: whattype
Use of Type Information: Error Checking, Polymorphism
Alternative Types: {type1, type2, …}
The Main MAPLE Data Types
Type Testing: type and ::
Boolean Combination of Types: And, Or, Not
Structured or Nested Data Types
Special Procedure-Argument Types
Examples of Polymorphic Procedures
Defining New Types
Exercises
CONVENTIONAL PROGRAMMING
Operations on Structures
Implementing Vector and Matrix Algebra
Data Processing in MAPLE
Interactive Programs in MAPLE
Error Handling: try, catch
Debugging
Exercises
ALGEBRAIC PROGRAMMING
Univariate Polynomial Algorithms
Multivariate Polynomial Algorithms
Exercises
SPREADSHEETS
Introduction
Copying and Moving Cells
Working with Sequences
Tabulating Data
Programming Spreadsheets
Case Study: The Simple Pendulum
Exercises
TEXT PROCESSING
Text Files
Counting Lines, Words, and Characters
Text Formatting
A Markov Chain Algorithm
Exercises
OBJECT ORIENTATION AND MODULES
Introduction to Object Orientation
Block Matrices
Modules as Records
Modules in More Detail
Module Constructors
Modules as Objects
Data Encapsulation
Accessing Block Matrix Elements
Square and Inverse Block Matrices
Modules and Types
Block Matrix Multiplication
Limitations of Modules as Objects
Operator Overloading
Using a Private MAPLE Library
Modules as Packages
Adding Online Help
Exercises
BIBLIOGRAPHY
Biography
Francis Wright