October 21-23, 1999
Champaign, Illinois

Mathematica Programming Challenge
winning solutions and other entries

The conference was an invaluable source of developer information and an excellent opportunity to meet Wolfram Research staff and other Mathematica experts from around the world. The conference featured tutorials, forums, an open computer lab, special events, and many informative, practical sessions. Listed below are many of the presentations. (If you don't have your own copy of Mathematica, you can download MathReader to view the talk notebooks.)

General Interest
Applications of Mathematica
Connections / System / Web
Front End / Document Creation
Developer / Publishing

General Interest

  • Mathematica Tutorial: A New Resource for Developers
    Lou D'Andria and David Withoff, Wolfram Research, Inc.
    Preview a forthcoming self-guided, introductory Mathematica tutorial. This session is intended both for anyone interested in a general introduction to Mathematica and for developers interested in including tutorial materials in books, packages, and courseware. Suggestions and feedback about the beta tutorial are encouraged. The tutorial will be covered in four parts: overview of the tutorials and basic calculations, built-in functions for numerical and graphical calculations and graphics, notebooks and typesetting, and Mathematica programming and external files.
    HTML | Mathematica notebook

Applications of Mathematica
  • Artlandia: Turning Mathematica into a Graphic Design Machine
    Igor Bakshee, Artlandia, Inc.
    Teaching Mathematica to make interesting patterns, ornaments, wallpaper images, and other types of decorative compositions and algorithmic art is easy with Artlandia, the first Mathematica application for creative graphic design. The demonstration shows how Artlandia, now in Version 1.5, brings the design process within the reach of a student or hobbyist. Artlandia further suggests a stream of plausible solutions and makes you magnificently productive in your design work.
    HTML | Mathematica notebook

  • Chemical Structures as Mathematica Expressions
    Robert Nachbar, Merck Research Lab
    A simple hierarchical data structure (Mathematica expression) has been developed to represent the constitution (topology) of organic chemical structures. This representation supports the notion of chemical valence and stereochemistry. Mathematica expression patterns and built-in functions can be used to perform chemically meaningful transformations. The important aspects of the implementation, as well as its strengths and weaknesses, will be presented. Application of this methodology to chemical constitution optimization, nonrigid molecular symmetry group (automorphism group) construction, isomer counting, and chemical reactivity will be described.
    HTML | Mathematica notebook

  • Courseware Development
    Paul Abbott, University of Western Australia
    Paul Wellin, Wolfram Research, Inc.
    This talk will present ways of integrating Mathematica into teaching materials. By itself, Mathematica is an excellent teaching tool--but it is not ideal for all applications. However, because it is extensible (using MathLink) and customizable (custom front end and kernel), it can form the basis for a wide range of teaching tools. As an example of such tools, Calculus Live (an electronic mathematics text that uses a customized interface and kernel) and its associated authoring tool will be demonstrated.

    HTML | Mathematica notebook

  • Database Access Kit
    Lars Hohmuth, Wolfram Research, Inc.
    Database Access Kit provides a flexible, powerful, and convenient interface to ODBC-compatible relational databases like Oracle; Microsoft Access, FoxPro, and SQLServer; Sybase; Informix Information Server; and DB2. Using Microsoft Windows and the ODBC control panel, Database Access Kit also provides full access to a number of flat-file databases like Excel and dBase files. This demonstration of the release version shows some short examples of how Database Access Kit can be used to query, analyze, and manipulate information stored in database tables. It will also show how Database Access Kit can be integrated with other Mathematica application packages and will discuss further development plans for Database Access Kit.
    Mathematica notebook

  • Digital Image Processing
    Mariusz Jankowski, University of Southern Maine
    Digital Image Processing is an add-on package for digital image processing. Completely compatible with Mathematica 4, this package is designed for speed and functionality and features a comprehensive collection of over one hundred two-dimensional linear and nonlinear image operators for common measurement, analysis, and image-enhancement tasks. Package performance, functionality, and documentation will be discussed.
    HTML | Mathematica notebook

  • MathCode C++
    Mats Jirstrand, MathCore AB
    In this demonstration an overview of the application package MathCode C++ will be given. MathCode C++ generates optimized C++ code from Mathematica programs. Basic functionality as well as application examples, all from a user-oriented point of view, will be covered. The objective is to demonstrate some of what can be achieved by combining powerful algorithm development and visualization in Mathematica with optimized code generation from MathCode C++.

  • In this demonstration, an overview will be given of possible uses of the application package MathCode C++, which generates optimized C++ code from Mathematica programs. We will list the program's basic functionality and give examples of what kind of users benefit from the possibilities that MathCode C++ can provide. The demo includes some application examples to illustrate the usage of MathCode C++. The objective of this talk is to give a flavor of what can be done with code generation with the powerful algorithm development and visualization environment that Mathematica provides.
    HTML | Mathematica notebook
  • Mathematica Function Definition Visualization
    Keehong Song, Pusan National University
    The three golden rules for a successful project: education, education, and education. Certainly they hold for many Mathematica projects. Mathematica proficiency is achieved with an adequate command of Mathematica programming language. Mathematica function definition animation is a visual representation of the functional language. This talk is designed for anyone looking for an effective way of teaching Mathematica functional programming language.
    Project website

  • mathStatica and Assumptions Technology
    Colin Rose, Theoretical Research Institute
    The package "mathStatica" provides a completely general toolset for doing mathematical statistics with Mathematica. Common statistical operators are defined for taking expectations, finding probabilities, deriving transformations of random variables, and so on--all from first principles. By taking full advantage of the latest Version 4 assumptions technology, these functions automatically yield exceptionally clean and neat symbolic output.
    HTML | Mathematica notebook

  • Nonlinear Constrained Optimization Using Penalty Functions
    Asghar Bhatti, University of Iowa
    Constrained optimization problems arise naturally in many different disciplines. A structural engineer designing a multistory building must choose materials and proportions for different structural components to create a safe structure that is as economical as possible. A portfolio manager for a large mutual fund company must choose investments that generate the largest possible rate of return for its investors while keeping the risk of major losses to acceptably low levels. A plant manager in a manufacturing facility must schedule the plant operations such that the plant produces products that maximize the company's revenues while staying within the available resource limitations. All of these situations can be formulated in terms of a constrained optimization problem.
    HTML | Mathematica notebook

  • Numerical Calculations for Robotics in Mathematica
    Adam Bienkowski and Krzysztof Kozlowski, Poznan University of Technology
    We will present how to use a list structure to solve fundamental problems in robotics, namely inverse and forward kinematics and dynamics. Both symbolical and numerical results will be presented for serial chains and topological trees robots. We will also discuss how we handle problems arising from such large calculations.
    HTML | Mathematica notebook

  • Simulation of Forces: Solution of the Inverse Dynamics in Classical Mechanics
    Robert Kragler, Fachhochschule Ravensburg-Weingarten
    A.N. Prokopenya and N.I. Chopchits, Brest Polytechnic Institute/Belarus
    Given the path of a particle r=r(t), then the "inverse dynamical problem" is: what is the force F(t) acting on the particle? The problem posed will be illustrated using the example of a particle moving frictionless along a horizontal line and at the same time sliding on a rotating contour C. Assigned a uniformly accelerated motion or harmonic oscillations, the resulting equations are solved with Mathematica, and the shape of the contour C is determined, which gives rise to the prescribed dynamical behavior of the particle along a horizontal line. An animation is used to visualize the dynamics of the system under investigation.
    HTML | Mathematica notebook | zip file (added January 2000)

  • Teaching and Learning via the Internet: Math Everywhere Courseware
    Bill Davis, Ohio State University
    J. Jerry Uhl, University of Illinois at Urbana-Champaign
    Calculus&Mathematica lessons are the foundation for internet-based remote instruction. The key to success is the interactive lesson format and strong communication among participants: students, teachers, and mentors. This talk will give an overview of the courseware and a little bit of hands-on action.
    Project website

  • The Use of Mathematica in Control System Engineering
    Neil Munro, UMIST
    This talk will present several new facilities that have been developed in the framework of Mathematica's Control System Professional. In particular, some alternative, attractive, and fully editable data formats for systems described by state-space equations and transfer functions, or transfer-function matrices, will be introduced, along with some new model data-formats such as matrix-fraction forms and Rosenbrock's system matrix in polynomial form and state-space form. The necessary new transformations to manipulate system descriptions between these new formats have been implemented and will be demonstrated. Additional system analysis tools to extend the existing controllability and observability tests to the more general polynomial system matrix description will be presented. An alternative, simple algorithm for generating minimal state-space realizations will be introduced, and algorithms to reduce polynomial matrix descriptions of a system to least-order (or minimal-order) form will be presented, along with an algorithm to extract the greatest left- or right-matrix common divisor from two polynomial matrices. The Smith standard form of a polynomial matrix has been implemented, which enables the Smith-McMillan standard form of a rational polynomial matrix to be determined. If time allows, a presentation will be made of some interesting results on the accuracy and computing time of several pole assignment algorithms, when used with system descriptions containing symbols, and a best choice will be suggested. Also, an interesting extension of the optimal control LQR approach to the model reference case will be discussed.
    PowerPoint presentation (added January 2000)

  • Import and Export
    Paul Hinton, Wolfram Research, Inc.
    Mathematica 4 provides a facility for importing and exporting graphics, data, and text from the kernel. This talk will survey some of the numerous options for fine-tuning interpretation and output, provide an opportunity for developers to ask questions, and offer suggestions for future supported formats.
    HTML | Mathematica notebook

  • Interactive Encyclopedias Using the Web and Mathematica
    Eric Weisstein, Wolfram Research, Inc.
    The internet revolution has ushered in a new information age. However, much of the "information" currently available on the web is incomplete and of uneven quality, or else available only through subscription to specialized information services. Starting five years ago, I began compiling and making available on the web extensive encyclopedias of math and science intended for a general audience, but containing detailed enough information to be useful to a graduate student or research scientist. Mathematica has been used extensively in the compilation and implementation of these encyclopedic resources, and I am currently spearheading an initiative underway at Wolfram Research to harness the power of Mathematica in the production of "live," publicly available encyclopedias useful to practitioners and students in many areas of mathematics, physics, and engineering.
    HTML | Mathematica notebook

  • Interfacing Mathematica with Your IT Infrastructure
    Roman Mäder, MathConsult
    We will discuss available and forthcoming interfaces of Mathematica to databases, front ends, online information services, and web-based solutions. Examples from finance will show how Mathematica can become a powerful environment for information processing.
    HTML | Mathematica notebook | project web site

  • MathML
    Neil Soiffer and Robby Villegas, Wolfram Research, Inc.
    MathML is the Mathematical Markup Language, an HTML-like language for putting mathematics on the web. It is defined in terms of XML and is an official recommendation of the World Wide Web Consortium (W3C). This talk will give an overview of MathML and discuss Mathematica's ability to import and export web pages containing MathML.
    HTML | Mathematica notebook

Front End/Document Creation
  • Authoring Notebooks
    Richard Mercer, Wright State University
    I will discuss the entire process of creating and revising notebooks and controlling their appearance, both on screen and in print. I will also give advice about why and when you should use style sheets, tell what will happen to you if you don't, and give a couple of examples illustrating what you can do with them. I will also cover structured expressions, the Option Inspector (and its new documentation in Version 4), style sheets, and the BoxForm (or "Show Expression"form) of cells.
    HTML | Mathematica notebook

  • How to Create Buttons
    Paul Hinton, Wolfram Research, Inc.
    Buttons provide a means of creating highly interactive notebooks; however, writing your own buttons to perform nonstandard tasks can be frustrating. This talk will discuss buttons from a fundamental viewpoint and demonstrate how to create and test them.
    HTML | Mathematica notebook

  • Programming the Front End
    John Novak, Wolfram Research, Inc.
    This is an introduction to front end programming for experienced Mathematica programmers. The focus is on the structure and use of kernel notebook operations and on connecting them to buttons.
    HTML | Mathematica notebook

  • Generally Efficient Numerics Programming in Mathematica
    Rob Knapp, Wolfram Research, Inc.
    Mathematica 4 allows you to use and write numerical procedures that are not only efficient but also very general; they can work both with machine-hardware numbers and with arbitrary-precision software arithmetic. In this talk, I will explain some of the details behind how efficient machine-number and arbitrary-precision arithmetic and numerical functions work and will show, with a variety of examples, how you can write your own efficient and general programs.
    Mathematica notebook

  • Numerical Solving of ODEs and PDEs in Mathematica
    Rob Knapp, Wolfram Research, Inc.
    This talk will look into NDSolve in some detail. Problems arising from the numerical solution of ordinary differential equations will be explored, including higher-order differential equations and systems of equations, initial- and boundary-value problems, and stiffness. The current state of the numerical solver for partial differential equations will be outlined. The various types of errors that inevitably arise will be highlighted. A short preview of upcoming features for NDSolve will also be included.
    Mathematica notebook

  • Enhance Your Code Performance: Effective Data Structures Techniques in Mathematica
    Daniel Lichtblau, Wolfram Research, Inc.
    Many people routinely make good use of Mathematica's built-in functions. It is less well known when and how to utilize more exotic programming methodologies such as hash tables, tree structures, and variable-length arrays. Moreover, Mathematica's evaluation semantics can lead to performance problems for naive implementations of these methodologies. In a few detailed examples we will show how to implement and manipulate appropriate data structures for several common types of problems and how to analyze the performance in order to assess algorithmic quality and complexity. We will also suggest ways in which to overcome typical performance problems.
    HTML | Mathematica notebook   updated July 2000

  • Working with Unevaluated Expressions
    Robby Villegas, Wolfram Research, Inc.
    Most experienced Mathematica programmers will eventually encounter tasks or applications in which they need to manipulate expressions without letting them evaluate. For instance, typesetting and interpretation rules, debugging programs, code analysis tools, and constructing code on the fly at run time are all areas of programming that require careful control of evaluation. Since Mathematica automatically evaluates arguments and return values of functions, building up a result without exposing intermediate stages of work to the evaluator requires subtle techniques that even seasoned Mathematica programmers sometimes find elusive. In this tutorial, I will demonstrate situations in which evaluation control is important, pointing out common pitfalls and providing useful tools and techniques along the way.
    HTML | Mathematica notebook

  • New Tools for Package Developers and Authors
    André Kuzniarek, Wolfram Research, Inc.
    This session will cover the documentation palette and AuthorTools, two new tools, and show how they can be used to quickly create package documentation and prepare materials for publication.
    Mathematica notebook

  • Publishing Using Mathematica 4
    Al Hibbard, Central College
    Have you considered using Mathematica 4 to publish an article or a book? This session will focus on some of the issues and concerns involved in using Mathematica to produce a book from the beginning through the end, including style sheets and environments, footers, headers, dimensioning, design, and page layout. We will also look at the extra concerns involved in producing a book that includes documentation similar to the definition boxes found in the Help Browser. Comments will be based on recent experience coauthoring Exploring Abstract Algebra with Mathematica and publishing it with Springer-Verlag as well as on experience writing many of the initial files with Version 2.2, converting them to Version 3.0, and then preparing PostScript files with Alpha 4.0.
    Project website