# Visualizing Mathematical Structures with Processing

**Facilitator: Roger Antonsen**

We look at how mathematical structures, in particular discrete structures and sets of finite objects, can be visualized, and interactively experimented with. Our vehicle will be Processing, an open-source, easily accessible computer programming language and environment based on Java. We start from scratch and look at how to implement and visualize structures like relations, functions, sets, equivalence classes, groups, and graphs.

*What prerequisite knowledge or skills will the workshop assume?*Anyone can attend this workshop without any prior knowledge of Processing or programming, but having some experience with programming will make things easier. In any case, we’ll spend part of the first session reviewing the basics, like variable declarations, assignments, data types, iteration, and control structures.

*What specific preparation or tasks should participants have completed prior to the beginning of the workshop?*No preparation is necessary. Bring good energy and a healthy curiosity!

*What outcomes should participants expect to achieve by the end of the workshop?*By the end of this workshop, the goal is that each participant will be able to take any mathematical structure or concept, and have some idea of how to visualize it and make it more tangible. Each participant should have a toolkit with a variety of tools and methods for creating mathematical visualizations.

*Will there be specific projects for participants, or should participants have their own projects in mind already?*The workshop will be centered around broad topics, like number theory and number sequences, graph theory and simulations, cellular automata, and abstract algebra and tilings. There will be smaller projects and exercises within these topics for the participants to work on, but everyone should feel free to bring their own project to the workshop.