Computer Science with Mathematica

Theory and Practice for Science, Mathematics, and Engineering

Roman E. Maeder

Extended Table of Contents

Preface
About this Book
Overview of Contents - Comments on Exercises - Electronic Resources - Notation and Terminology - Colophon
 1 From Problems to Programs
From Problems to Programs - Computers - Programming Languages - Computer Science
 2 Mathematica's Programming Language
Arithmetic and Logic - Definitions -Simple Program Structures - Structure of Expressions - Help with Problems - Exercises
 3 Iteration and Recursion
The Greatest Common Divisor - The 3x+1 Problem - Advanced Topic: Loop Invariants - Application: Differential Equations - Exercises
 4 Structure of Programs
Complex Parametric Lines - The First Package - Optional Arguments - A Template Package - Exercises
 5 Abstract Data Types
Definition of Abstract Data Types - Example: Modular Numbers - Design of Abstract Data Types - Exercises
 6 Algorithms for Searching and Sorting
Searching Ordered Data - Sorting Data - Binary Trees - Exercises
 7 Complexity of Algorithms
Complexity of Computations - Example: Computing the n-th Fibonacci Number - Special Topic: Dynamic Programming - Long-Integer Arithmetic and Fast Multiplication - Exercises
 8 Operations on Vectors and Matrices
Vectors and Matrices - Inner and Outer Products - Linear Algebra - Programs with Arrays - Application: Aggregation - Exercises
 9 List Processing and Recursion
Symbolic Expressions and Lists - List Processing - Exercises
10 Rule-Based Programming
Pattern Matching - Rules and Term Rewriting - Simplification Rules and Normal Forms - Application: Trigonometric Simplifications - Exercises
11 Functions
A Notation for Functions (lambda Calculus) - Functions as Values - Example: Simulation of Shift Registers - Exercises
12 Theory of Computation
Computable Functions - Models of Computation - Turing Machines - Recursive Functions Are Turing Computable - Exercises
13 Databases
Database Design - Relational Databases - Data Entry and Queries - Commercial Databases - Exercises
14 Object-Oriented Programming
Introduction - Example: Bank Accounts - Principles of Object-Oriented Programming - Application: Collections - Exercises
Appendix A Further Reading
A Guide to the Literature - References
Appendix B More Information About Mathematica
Computations You Can Do with Mathematica - The Code for the Illustrations in this Book - Mathematica's Evaluation Method - Syntax of Operators
Index

Rev. 1.0, REM, © 2000 Roman E. Maeder