Knots are mathematical abstractions of objects you probably deal with everyday when you tie your shoes. Formally, a knot is a continuous map from a circle into 3-dimensional space. We consider two knots the same if we can "wiggle" one around until it looks like the other one. (More formally: if they are "ambient isotopic.") An interesting mathematical question is to decide when two knots are the same (or not). One way to do this is to use a "knot invariant," which is any quantity that can be computed from a knot that does not change when you wiggle the knot. Invariants need not be "complete," i.e. sometimes, two different knots have the same invariant. Every finite group G can be used to concoct an invariant of knots called the G-coloring invariant. These are quite powerful invariants, in the sense that usually different knots have different G-coloring invariants. Unfortunately, the more powerful the invariant, the harder it is to compute. This is actually true in a very precise sense that we will explore over the semester: deciding when a knot has a nontrivial G-coloring invariant is NP-complete. This project will consist of two separate, but related, parts. First,we will build a visualizer for coloring invariants: a computer program that takes a picture of a knot and a finite group, and builds pictures of its various G-colorings. Second, and more ambitiously,we will try to build a "computer" using colorings of knots. (More precisely, we will build a computer program that converts Boolean circuits into knots.) This project should produce some nice pictures,introduce you to some fun topology, and develop your programming experience.

**Faculty Member: **Eric Samperton

**Difficulty: **Advanced

**Team Meetings: **Once or twice per week

**Prerequisites: **Vector calculus required, some linear algebra required, some group theory preferable. We'll learn all the topology we need as we go.
No coding/software prerequisites in particular, but be prepared to learn! We may use Python, Sage, GAP, LaTeX, or TikZ, among others. Some previous programming experience is preferable.

More information on Building a computer by braiding colorful knots