# Each year, we build in opportunities for students to explore topics that go beyond our core curriculum.

This year, one avenue for this exploration is through mini-courses in Block 5. Students were offered a range of options, with student demand determining which of the options would run. Peruse the course descriptions below for a taste of the mini-courses that students are now taking!

## Asymptote

Take a good look at this image. How many lines of code do you think it took to make? 2,000? 200? Would you believe... 20?

In this workshop, we'll use the Asymptote programming language to make everything from simple geometric diagrams to word art to fractals. Asymptote has three features that set it apart from other languages: built-in math support (including 3-D graphics), integration with LaTeX, and vector-based output that renders smoothly at any scale of magnification. If you've seen Dr. Shapiro's course handouts, then you've seen a little of what Asymptote can do. With Austin Shapiro.

## Building a harmonograph

Build two dimensional drawing tools that explore oscillations, with variable frequencies. With Kaushik Basu.

## Creating mathematical sculptures

We will learn how to build symmetrical objects or make puzzles using the machine tools in the lab, and explore what it means to blend origami, tapigami, woodworking, and other approaches to build something aesthetically pleasing and mathematically interesting at the same time. With Kaushik Basu.

## Evolutionary models of cooperation

This is a programming project to model how cooperative behavior can emerge from natural selection, and how behavior shifts over many generations. With John DeIonno.

## Independent project time

Propose an independent project!

## Java bootcamp

After taking our Intermediate Python course here at Proof School, you will have learned almost all of the computer science theory that you need to ace the AP Computer Science test. However, the language used in the AP test is Java, not Python. The purpose of this mini-course is to teach you the basic syntax of Java (which is identical to the basic syntax of C++), and additionally, to familiarize you with some important features of Java that do not have direct equivalents in Python. At the end of the course, you will have added another weapon to your arsenal of programming languages, and you will have gained the knowledge that you need to take the AP Computer Science test in the future, should you choose to do so. With Steve Gregg.

## Proof School museum

Visit local museums and then try your hand at museum design! This might involve, for example, curating a creative exhibit about Proof School (perhaps by imagining that we are aliens who just landed or archeologists from the future–something that gets us to look at the school with fresh eyes). With Eve Simister.

## Puzzle writing

In this mini-course you will get support for writing puzzles. The focus will be on word puzzles: in particular, we will look at cryptic crosswords, mini crosswords, and variations on those (such as rebuses and other ways to play with grids.) We will also look at word puzzles of other types including the more creative mystery hunt style puzzles which do not have any instructions. Students will be exposed to various types of puzzles, and get support in writing, testing, and editing their puzzles. Some experience solving word puzzles is useful, but you don't have to be an expert to participate. With Sachi Hashimoto.

## Student-led workshops

Learn about a range of topics, from music to self-defense, in a series of workshops led by students. With Sydney Cochran.

## Writing interactive fiction

Write a piece of interactive fiction (or a game, or non-fiction, etc) using Twine. Twine allows you to build an interactive story in a web browser without using programming, though you can use programming if you want to for more complex behavior.  You could do something like a choose-your-own-adventure, mock-up an RPG-style computer game, write a piece of fiction or non-fiction to raise awareness about an issue or to teach something from a class, or anything else you can think of. With Emily Eames and Ilyse Gordis.

## Zome

Students will conduct a study of the Zometool construction system, including zome ball symmetries, appearance of the golden ratio, constructible regular polygons and polyhedra, and types of tetrahedra. We will become familiar with the vZome environment and create virtual models of large zonohedra. Finally, students will design and build a physical model of their own devising, incorporating aesthetic, structural, and mathematical elements in their creation, which will be displayed at the end of year symposium. With Sam Vandervelde.