#### Get Citation

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.

INTRODUCTION

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

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.

INTRODUCTION

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

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.

INTRODUCTION

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

INTRODUCTION

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

INTRODUCTION

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

INTRODUCTION

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