Category theory, with an origin in algebra and topology, has found use in recent decades for computer science and logic applications. Possibly most clearly, this is seen in the design of the programming language Haskell – where the categorical paradigm suffuses the language design, and gives rise to several of the language constructs, most prominently the Monad.
In this course, we will teach category theory from first principles with an eye towards its applications to and correspondences with Haskell and the theory of functional programming. We expect students to previously or currently be taking CS242 and to have some level of mathematical maturity. We also expect students to have had contact with linear algebra and discrete mathematics in order to follow the motivating examples behind the theory expounded.
Wednesdays at 4.15.
Online notes will appear successively on the Haskell wiki on http://haskell.org/haskellwiki/User:Michiexile/MATH198
Dear blogosphere,
come this fall, I shall be teaching. My first lecture course, ever.
The subject shall be on introducing Category Theory from the bottom up, in a manner digestible for Computer Science Undergraduates who have seen Haskell and been left wanting more from that contact.
And thus comes my question to you all: what would you like to see in such a course? Is there any advice you want to give me on how to make the course awesome?
The obvious bits are obvious. I shall have to discuss categories, functors, (co)products, (co)limits, monads, monoids, adjoints, natural transformations, the Curry-Howard isomorphism, the Hom-Tensor adjunction, categorical interpretation of data types. And all of it with explicit reference to how all these things influence Haskell, as well as plenty of mathematical examples.
But what ideas can you give me to make this greater than I’d make it on my own?
My two high-school kids came by today. We’ve been trying to get a new teaching session together since early February, but they had a hell of a time all through February, and all our appointments ended up canceled with little or no notice; and then I spent March and April on tour.
We pressed on with knot theory. Today, we discussed knot sums, prime knots, knot tabulation, behavior of the one invariant (n-colorability) we know so far under knot sums, Dowker codes, and we got started on Conway codes for knots. Next week, I plan for us to finish up talking about the Conway knot notation, get the connection between rational knots and continued fractions down pat, and start looking into new invariants.
So, here’s the plan for my 10th grade topology students.
Today, we’ll abandon algebraic topology completely, and instead go into knot theory. I’ll want to discuss what we mean by a knot (embedding of
in
), what we mean by a knot deformation (thus introducing isotopies while we’re at it) and the Reidemeister moves. Also we’ll discuss knot invariants – and their use analogous to topological invariants.
Later on, we’ll continue with other invariants; definitely including the Jones polynomial, and possibly even covering Khovanov homology. One possible end report would be to explain a bunch of knot invariants and show using examples how these have different coarseness.
Edited to add: I got myself some damn smart students. They figured out the Reidemeister moves on their own – as well as minimal crossing number in a projection being highly relevant – with basically no prompting from me. I’m impressed.
The last meeting with my 10th grade topology kids this year just finished. We introduced singular homology, calculated the singular homology of a point and discussed homeomorphism invariance.
Next term, we’ll want to show homotopy invariance and that the singular and simplicial homology coincide when applicable. After that, we’ll change directions slightly.
The future after that holds knot theory, was decided today. We’ll want to introduce knots, look at Reidemeister moves and basic knot invariants. I use basic here in a pretty wide sense – we’ll probably do the Jones polynomial and we might even end up doing Khovanov homology if I feel particularly insane late spring.
Today, I told my two bright students about abstract and geometric simplicial complexes, about the boundary map and the chain complex over a ring R associated with a simplicial complex Δ, and assigned them reading out of Hatcher’s Algebraic Topology.
The next couple of weeks will be spent doing homology of simplicial complexes, singular homology, equivalence of the two, neat things you can do with them; and then we’ll start moving towards a Borsuk-Ulam-y topological combinatorics direction.
I might end up pulling combinatorics papers from my old “gang” in Stockholm on graph complexes, and graph property complexes, and poke around those with them.
Today, with my bright topology 9th-graders, we discussed homotopy equivalence of spaces and the fundamental groupoid. In order to get the arguments sorted out, and also in order to give my esteemed readership a chance to see what I’m doing with them, I’ll write out some of the arguments here.
I will straight off assume that continuity is something everyone’s comfortable with, and build on top of that.
We say that two continuous maps, f,g:X→Y between topological spaces are homotopical, and write
, if there is a continuous map
such that H(x,0)=f(x) and H(x,1)=g(x). This captures the intuitive idea of step by step nudging one map into the other in formal terms.
Two spaces X,Y are homeomorphic if there are maps
,
such that
and
.
Two spaces X,Y are homotopy equivalent if there are maps
,
such that
and
.
Today, I started an experiment together with the local specialised secondary school. I’ll be taking care of two of their brightest students, meeting them roughly once a week, and taking them on a charge through algebraic topology. At the far end shimmers knot theory and other funky applications; and on the way there, I hope for many interesting spinoffs and avenues.
They got, today, Armstrong’s Basic Topology, and an extract from the German topology book by Jänich, and on monday, we shall go over the formal definition of topological spaces, and of continuous functions together.
I plan to keep updates on our progress here on the blog – with the questions I send them off with each meeting as well as some sort of discussion about how this setup is working out, if at all.
For the first trip, the questions I dumped in their laps were:
with the standard topology on
with the standard topology on
with the discrete topology
with the finite-complement topology