The 2001 Mathematica Developer Conference was an invaluable resource for users and developers who are interested in creating Mathematica-related tools, products, courseware, or literature--or who wish to offer services as a Mathematica trainer, consultant, or evangelist. 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 Development XML Numerics Web Front End Symbolics

 General Interest

• Button and Notebook Programming
David Withoff, Wolfram Research, Inc.
Button programming is not difficult. It is almost always easy to add a user-friendly button interface to existing programs, and many imaginative programmers have developed applications that would be all but impossible without buttons. This session will include a tutorial on the basic mechanics of button programming and a tour of the impressive range of ways in which button and notebook programming can be used to enhance your applications.
Mathematica Notebook

• Graphing: A Package to Enhance Plots with Auxiliary Graphics
Barry Cherkas, Hunter College (CUNY)
To enable students of calculus and precalculus to include auxiliary graphics conveniently in their graphs--and thereby reduce the potential for confusion and misinterpretation that can result from relying solely on a singular function's plot--it is important to have tools that generate auxiliary graphics in accordance with standard mathematical conventions. In this presentation, we describe three commands--RationalGraph, Graph, and Graph1D (synonym InequalityGraph)--that display the auxiliary graphics enhancements that are traditionally used when graphing functions with singularities and when graphing inequalities in one dimension. These commands make up the 'Graphing package.
Mathematica Notebook

• Group Bases and Rubik's Cube
Gerrard Liddell, University of Otago
Group bases are a key tool in computational finite group theory. The ideas will be introduced in the case of Rubik's cube.
Mathematica Notebook (zipped)

• Learning Activity Modules in Chemical Engineering using webMathematica
Brian Higgins, University of California, Davis
Computing vapor-liquid equilibria is a common occurrence in many chemical engineering operations. For ideal mixtures the calculations are fairly routine. Unfortunately, many vapor liquid systems of industrial interest form non-ideal mixtures and the calculations then require solving systems of nonlinear equations. In this presentation we show how webMathematica can be used to develop an online site that students can use to validate VLE models using their own experimental data.
Mathematica Notebook

• Modelling, Analysis & Prototyping for Rapid Manufacturing
Christopher J. Purcell, Defence R&D Canada
A prototype Mathematica package for building finite element (FE) models was introduced in the 1997 Developer Conference. This package has matured to the point where it has already been used in product development. The package permits building parametric models, where the FE database contains both numeric data and symbolic Mathematica expressions which can be used to morph the model geometry. The package was originally developed for sonar transducer modelling, but it is open and extensible so that it can support a range of external solvers. Extensive online documentation is now available from the Help Browser. An update on the Model Maker package will be presented, with examples to illustrate potential uses.
Mathematica Notebook

• Wolfram Education Group
Paul Wellin, Wolfram Research, Inc.
In January of this year, Wolfram Research announced the creation and launch of Wolfram Education Group, designed to provide Mathematica training for individuals and corporations. Courses are offered by certified instructors using materials developed at Wolfram Research, sometimes in cooperation with outside developers. Two-day introductory courses are now being offered throughout the United States, with plans to expand the course offerings and locations in 2002. This talk will include information on course development as well as certification of trainers.
Mathematica Notebook

 Applications of Mathematica

• CalculationCenter
Jon McLoone, Wolfram Research, Inc.
Wolfram Research's new mid-market technical computing system, CalculationCenter, offers an alternative platform for delivering live electronic books and technical calculations. With an emphasis on ease-of-use and low price, CalculationCenter is aimed at a less technically demanding market than Mathematica. This talk will introduce CalculationCenter and discuss ways in which Mathematica developers might use this new channel.
Mathematica Notebook

• Creating a Button-Driven Application
Al Hibbard, Central College
It is relatively easy to create a button to accomplish a routine task. It is another matter to create buttons to perform more complicated tasks, such as notebook modifications. This talk will focus on illustrating the programming details of the buttons created by the Pivot package. This package creates an interface for a non-technical user to perform the Simplex Method while solving a linear programming problem. Except for entering in the initial matrix, almost all the other steps are accomplished by appropriately clicking on buttons. Explaining how these buttons perform their complicated tasks will be the goal of this talk. In particular, we will look at how to programmatically create and modify notebooks, including creating a matrix of buttons on the fly.
Mathematica Notebook

• Implementation of Java Photo Editor
Junzo Sato, University of Kumamoto
J/Link is not just a wrapper for MathLink, but also a powerful application development environment because of Java's variety of GUI components and built-in event handling mechanism. Digital Image Processing is an add-on application package for Mathematica. It covers a vast area of scientific and engineering knowledge and works as a powerful engine for image processing. The combination of a customizable front end application and the Digital Image Processing package is therefore the ideal environment for research and education. The advantages of Java Photo Editor are discussed in the talk.
Mathematica Notebook

• Java and the Digital Image Processing Application Package
Mariusz Jankowski, University of Southern Maine
The Digital Image Processing application package, a relatively recent addition to the Mathematica application library, enhances Mathematica with over 160 functions in the area of digital processing of images. The introduction of the package supported by significant performance improvements in Versions 4.0 and 4.1 have made Mathematica an effective platform for image processing and analysis. Now, thanks to the introduction of J/Link, the Mathematica user gains direct access to an extensive native Java imaging functionality found in the Java 2D and Java Advanced Imaging (JAI) application programming interfaces (APIs) and excellent graphical user interface (GUI) design features thanks to Java Swing.
Mathematica Notebook

• Mathematica Inside: Software Development Made Easy
Roman Maeder, MathConsult
The Mathematica kernel is uniquely suited as a computation server and control program inside batch-oriented, interactive, or web-based applications. Its rich, interactive programming language allows for rapid prototyping and its flexibility makes it easy to adapt to the environment in which it will be deployed. With the recent expansion of Mathematica's I/O capabilities and MathLink-based interfaces to backend databases and front ends, it is now possible to use Mathematica in many applications in place of more traditional, expensive solutions. Examples from the author’s work in finance give an idea of the possibilities. The first application is a batch-oriented program for term structure modeling. The second example shows the integration of the UnRisk PRICING ENGINE with the Database Access Kit and the Mathematica Link for Excel.
Mathematica Notebook

• The Mathematical Explorer
Stan Wagon, Macalester College
Paul Wellin, Wolfram Research, Inc.
The Mathematical Explorer is a new Wolfram Research stand-alone product that uses Mathematica to introduce the general public to some central ideas of modern mathematics. Creating the product combined work across several areas: the use of a custom kernel, the creation of packages for advanced functions, and the integration of historical documents and images relevant to the mathematics. For example, the chapter on the Four-Color theorem includes a copy of the original 1852 document in which the theorem was first presented, a discussion of the ideas of Kempe's false proof of 1879 and the correct proof of 1976, access to functions that create and color maps, as well as images and biographies of many of the mathematicians involved in this problem.
Mathematica Notebook

• Neural Networks
Jonas Sjoberg
This presentation is an overview of the Neural Networks application package. Topics discussed include people in the neural networks field, typical problems, tools, and examples.
Mathematica Notebook

• UnRisk
Andreas Binder, MathConsult GmbH
The UnRisk PRICING ENGINE is an application package for the numerical valuation of financial derivatives. For most of the actively traded financial instruments, closed-form solutions are not available and numerical schemes have to be applied. In the UnRisk PRICING ENGINE, Adaptive Integration is implemented, a method developed by MathConsult, which combines analytic (local Green functions) and numeric components. Adaptive Integration typically needs drastically fewer time steps than, say, binomial trees. The computational engine of UnRisk is realized in C++ and is linked to Mathematica via MathLink.
Mathematica Notebook

 Development

• Dbg - An Easy-to-use Debugger
David Bailey, Salford Software
This talk will outline just some of the features of Dbg. It is hoped that this talk will not only illustrate some of the features of the Dbg debugger, but will also stimulate a discussion about what sort of debug facilities would be useful inside Mathematica. It is felt that the debug facilities of Mathematica have not kept pace with the rest of the package and could offer the programmer much more help.
Mathematica Notebook

• Getting the Most out of (or into) Import/Export
Dale Horton, Wolfram Research, Inc.
The Import and Export functions are simple enough for basic purposes, but more sophisticated applications require a higher degree of control. We will discuss tricks-of-the-trade, common problems, in addition to how to modify the export of notebooks to HTML and TEX, and what do all those ConversionOptions do, anyway? In addition, we will cover recent and future additions to Import and Export and how developers can add their own converters.
Mathematica Notebook

• Symbol Contexts
John Novak, Wolfram Research, Inc.
All Mathematica symbols exist in name-spaces called contexts. There are a number of subtleties in understanding and managing contexts that any Mathematica programmer needs to be aware of. This talk describes the notion of contexts, the tools to manage them, and some of the “gotcha’s” involved in their use.
Mathematica Notebook

• Turning an Application into an Interface
Dale Horton, Wolfram Research, Inc.
The front end has many features that can make packages more accessible to users. Most packages are driven by kernel commands and their front end interface (if one exists) consists solely of buttons that paste, and sometimes evaluate, kernel commands in a notebook. A largely unused strategy is to use the palettes as a Graphical User Interface (GUI) to the functionality of the package. Beginning users can start to use the package with little knowledge of the underlying processes while the more advanced users can quickly access commonly used functionality. If properly implemented, the palette makes using the package easier, and the package makes using the palette more powerful.
Mathematica Notebook

 XML

• Extending Mathematica's XML Capabilites with J/Link
Todd Gayley, Wolfram Research, Inc.
Java and XML are a natural match, and there is a considerable body of XML functionality available to Java programmers. Because of J/Link, all these capabilities are also available to Mathematica programmers. This talk will examine some ways to link the extensive Java XML APIs into Mathematica's own XML-handling capabilities. We will see how to convert Mathematica XML expressions into Java DOM objects and vice-versa, how to perform SAX parsing of XML data with event logic coded entirely in Mathematica, how to perform XSLT transformations and XPath queries on XML data directly from the Mathematica environment, and how to query and process XML data available on the internet, such as finanical data.
Mathematica Notebook

• Importing, Exporting, and Manipulating XML in Mathematica
Chris Hill, Wolfram Research, Inc.
XML is a structured data representation language with strong support from every corner of the computing world. Mathematica will soon support an expression format for representing XML data. This talk will include an overview of the XML representation and the XML import and export processes. Examples utilizing Mathematica's symbolic manipulation facilities to extract and transform XML data will be presented.
Mathematica Notebook

• Notebook ML
Imran Rashid, Wolfram Research, Inc.
NotebookML is a format for saving a Mathematica notebook as an XML file. This talk will explain the motivation behind NotebookML and how it can be used in XML-based systems, specifically, the relationship between NotebookML and XML; the relationship between NotebookML and other XML specifications; generating NotebookML within Mathematica; using NotebookML with “standard” XML applications, e.g., XSLT & SAX; and displaying NotebookML on the web with CSS.
Mathematica Notebook

• XML Primer
Imran Rashid, Wolfram Research, Inc.
XML has quickly become one of the hottest buzz words in the IT industry. This talk will bring the user up to speed on what XML is and what it can be used for. In addition, the talk will address some XML related specifications, such as DTDs, Namespaces, XSLT, and Schemas. The talk will touch on used XML APIs, like SAX and DOM. Finally, the talk will briefly touch on XML functionality in Mathematica, with more detail being provided in related talks.
Mathematica Notebook

 Numerics

• Discrete Optimization in Mathematica 4.2
Daniel Lichtblau, Wolfram Research, Inc.
Often in optimization problems arise that are discrete in nature. For example, there are the standard problems of integer programming; these are similar to continuous optimization except that one needs to restrict some or all variables to be integer or 0-1 valued. Other examples include assignment problems, set coverings by families of subsets, set splittings, routing problems, and more. We discuss application of Mathematica's numeric optimization technology to such problems in discrete optimization. We will illustrate nuts­and­bolts details of how to cast problems in a framework that NMinimize can handle and will illustrate with a variety of examples. We will say a bit about tuning considerations.
Mathematica Notebook (updated May 17, 2002)

• High-Precision Approximate Solutions for Nonlinear 2x2 Systems of First-Order IVPs with Periodic Solutions
Stephan V. Joubert, Technikon Pretoria and the University of Southern Mississippi
We provide an interactive routine for producing high-precision approximate solutions (truncated Fourier Series) for low degree nonlinear 2x2 systems of first-order ODEs (IVPs) with periodic solutions. The routine is primarily meant for use in the classroom by undergraduate and graduate students, but might also be usefull to technologists and scientists working with such systems for which no obvious closed-form solution exists.
Mathematica Notebook

• NumericalMath'NMinimize
Brett Champion, Wolfram Research, Inc.
NumericalMath`NMinimize is a new standard add-on package for finding solutions to constrained and unconstrained global optimization problems. The package provides several derivative-free methods for finding global minima. This allows us to solve problems where the objective function is not differentiable (or even continuous.) The methods are robust enough to allow us to find global minima and are not easily trapped by local minima.
Mathematica Notebook (full version 28MB)
Mathematica Notebook (short version 1.4MB)

• Stability Investigation of the Exact Symmetrical Solutions of the Plane Newton's Many-Body Problem
Alexander Prokopenya, Brest Technical University
It is well known that the many-body problem is very important for a wide variety of applications, ranging from theoretical physics to celestial mechanics and astrodynamics. But the differential equations of this problem are in general not integrable. So, according to Poincare’s ideas, the further progress in this field will be connected with finding new classes of the exact particular solutions of the many-body problem and investigating their stability. But the stability investigation turned out to be the most complicated problem of qualitative theory of differential equations. For example, solving of the stability problem of the Lagrange triangular solutions has taken about 200 years, whereas stability of the homographic and homothetic solutions in the three-body problem still remains unsolved. However, now we have new computation systems, for example Mathematica that essentially increase our ability to do both numerical and symbolic calculations. So there is a hope that we can push considerably both the many-body problem and the theory of dynamical systems generally using modern computer algebra systems.
Mathematica Notebook

 Web

Todd Gayley, Wolfram Research, Inc.
This session will go beyond the basics to examine some techniques that are often overlooked by J/Link programmers, including the Expr class, sending Java object references to Mathematica, using the front end for graphics rendering services, fun tricks with Periodicals ("How to Make the Kernel into a Web Server in 20 Lines of Mathematica Code"), and tips for debugging your Java programs. We will also look at the major new features of J/Link 1.2 and discuss plans for J/Link in the future.
Mathematica Notebook

Todd Gayley, Wolfram Research, Inc.
This talk will provide an introduction to J/Link, a toolkit that integrates Java and Mathematica via MathLink. You will learn what J/Link is and how to use it both to call Mathematica from Java, and Java from Mathematica. Demonstrations will be presented to give you an idea of the sorts of things that users and developers can do with it. If you have ever wanted to call Mathematica from an external program, or access "external" functionality from within the Mathematica environment, but shied away from MathLink programming, then come take a look at J/Link.
Mathematica Notebook

Lars Hohmuth, Wolfram Research, Inc.
webMathematica opens up exciting new possibilities for Mathematica developers. For example, it is now possible to sell or rent Mathematica services, or to build specialized web sites that allow subscribers to do highly advanced calculations through a standard web interface. This talk will give an overview of Wolfram Research licensing and support programs for developers interested in building webMathematica-enhanced web sites. It will also provide a forum to discuss your ideas.
Mathematica Notebook

 Front End

• Creating Notations, Templated Structures, and Tensors
Jason Harris, Wolfram Research, Inc.
This talk will cover creating notations in Mathematica. It will progress from creating basic notations to details on creating templated structures via TagBoxes and the corresponding notations to use for these structures. With these techniques a "proper" implementation of Dirac's Bra Ket Notation will be presented. Several other advanced features of the notation package, such as adding input aliases and the Action option, will be mentioned. These techniques will culminate in a presentation of a notation for Tensors, which fully works in both input and output. Finally, a highly efficient algorithm to canonicalize tensorial expressions will be demonstrated. Functioning with the created tensorial notation, by an innovative technique this algorithm circumvents the dummy index relabeling problem of tensor calculus. The complete algorithm handles linear symmetries such as the Bianchi identities as well as fullAy accommodating partial derivatives and mixed index classes.
Mathematica Notebook

 Symbolics

• functions.wolfram.com
Oleg Marichev and Michael Trott, Wolfram Research Inc.
Currently the web site functions.wolfram.com includes more than 33,000 formulas for the about 250 elementary and special functions that are available in Mathematica. The structure and organization of the web site is discussed in detail. An overview of how to manage and update this large mathematical knowledge base and how to deliver various format types (e.g., Mathematica notebooks, HTML, and PDF) is given. Various "semiautomatic" ways to find new formulas using Mathematica will be demonstrated. Future development directions will be outlined.
Mathematica Notebook