# Mozart Documentation: Tutorials

## Introductory

Tutorial of Oz

  provides an easy introduction to this rich and many faceted language. It covers major issues of syntax, semantics, programming paradigms, and design. All programming concepts are illustrated with code snipets which the reader is encouraged to try for himself.

Distributed Programming in Mozart

  shows how to write efficient and robust distributed applications with the Mozart programming system. It presents and motivates the distribution model and the basic primitives needed for building distributed applications. It then progressively introduces examples of distributed applications to illustrate servers, agents, mobility, collaborative tools, fault tolerance, and security.

Finite Domain Constraint Programming

  introduces the reader to the art of constraint programming in Oz. The approach rests on the two complementary techniques of constraint propagation and constraint distribution. Constraint propagation is an efficient inference mechanism obtained with concurrent propagators accumulating information in a constraint store. Constraint distribution splits a problem into complementary cases once constraint propagation cannot advance further. The tutorial focuses on combinatorial problems that can be stated with variables ranging over finite sets of nonnegative integers. Problems in this class range from puzzles to real world applications as diverse as scheduling, ware house allocation, configuration and placement.

Application Programming

  introduces the reader to the art of designing and creating stand-alone applications in Oz, and puts great emphasis on modular development. Many design patterns are discussed and illustrated with small programs, eg concurrency, client/server applications, and distributed applications. The tutorial also reveals how trivial it is to interface with C/C++.

## Advanced

Problem Solving With Finite Set Constraints

  illustrates how difficult problems can be modelled elegantly and solved efficiently with finite sets constraints.

Window Programming

  introduces the reader to the art of creating graphical user interfaces for Oz application. It documents and illustrates extensively Mozart's high-level object-oriented interface to Tk. Every trick is illustrated with a code fragment and the corresponding graphical picture. The reader is highly encouraged to try each example as he works his way through the tutorial.

Open Programming

  introduces the reader to the art of creating applications that communicate with their environment. It documents and illustrates Mozart's object-oriented interface to IO facilities, such as files, sockets, and processes.

Constraint Extension Tutorial

  provides the knowledge to go beyond the built-in constraint capabilities of Mozart. It explains how to implement propagators and constraint systems in C++ and shows integration and usage of linear programming solvers.