Welcome to Season 2 of the course Applied Compositional Thinking for Engineers (ACT4E)!

This edition is officially offered as a graduate course at ETH Zürich and will feature an extended list of topics, recitals, and many exercises (both theory and software ones).

It is open to everyone interested in learning how concepts from applied category theory can be useful for tackling engineering problems.

Subscribe to updates: If you do not have the time to follow this edition, you can also subscribe to a mailing list to keep updated about the next editions of the class and related activities. 

Sign up for email updates

Help us advertise

Please share the video below to help us advertise this effort.

How can Applied Category Theory be useful for engineering?

In many domains of engineering it would be beneficial to think explicitly about abstraction and compositionality, to improve both the understanding of problems and the design of solutions. 

A kind of mathematics particularly well-suited for thinking about compositionality is applied category theory. However, at present, this mathematics is relatively inaccessible to the average engineer. This is due in part to the inertia of the education system: outside of computer engineering, only little algebra is taught, in favor of analysis and related fields. This made sense some decades ago, but does not reflect today's real-world needs. 

Recently, many good expositions of category theory for applications have appeared (see resources) yet to date, none are oriented explicitly toward engineering. This course will fill this gap. We will introduce the framework of monotone co-design as a means to teach basic concepts of category theory alongside principles of compositional engineering. Special care will be taken to illustrate the ideas with concrete examples (especially from autonomous robotics), and to indicate applications.

Course Details

Dates and times: see below for the detailed schedule. Sessions will happen virtually on Mondays between 12:15 and 14:00 CET (2 separate lectures per session). Recitals will happen on Wednesdays between 12:15 and 13:00 CET. Both lectures and recitals will happen here. Office hours (for ETH students only) will happen here each Wednesday from 16:15 to 17:00 CET.

Format

Each session consists of two 45 minute interactive online lectures, allowing for questions and discussion.

We interact using Zulip (similar to Slack), and have a wiki for collaboration.

Syllabus and Schedule

Note: all materials and recordings will be posted in the lectures page.

  • Lecture 1 (Mar 1st, 12:15 - 13:00): Logistics, introduction
  • Lecture 2 (Mar 1st, 13:15 - 14:00): Composition, semigroups, monoids
  • Recital 1 (Mar 3rd, 12:15 - 13:00): Example of semigroups and monoids
  • Lecture 3 (Mar 8th, 12:15 - 13:00): SemigroupsMonoid, and Group homomorphisms
  • Lecture 4 (Mar 8th, 13:15 - 14:00)Semicategories, categories
  • Recital 2  (Mar 10th, 12:15 - 13:00)  More examples of categories
  • Lecture 5 (Mar 15th, 12:15- 13:00): Relations and properties; Rel, Set. 
  • Lecture 6 (Mar 15th, 13:15 - 14:00): Procedures and processes, propositions
  • Recital 3  (Mar 17th, 12:15 - 13:00): TBD
  • Lecture 7 (Mar 22nd, 12:15 - 13:00): Posets, lattices; 
  • Lecture 8 (Mar 22nd, 13:15 - 14:00): Combinations: product/coproduct
  • Recital 4  (Mar 24th, 12:15 - 13:00): TBD
  • Lecture 9 (Mar 29th, 12:15 - 13:00): Functors, translation, embedding;
  • Lecture 10 (Mar 29th, 13:15 - 14:00): Natural transformations
  • Recital 5  (Mar 31st, 12:15 - 13:00): TBD
  • Lecture 11 (Apr 12th, 12:15 - 13:00): Parallelism, feedback
  • Lecture 12 (Apr 12th, 13:15 - 14:00): Co-design, profunctors
  • Recital 6 (Apr 14th, 12:15 - 13:00 : Introduction to co-design software
  • Lecture 13 (Apr 26th, 12:15 - 13:00): Co-design
  • Lecture 14 (Apr 26th, 13:15 - 14:00): Solutions
  • Recital 7 (Apr 28th, 12:15 - 13:00): More about co-design software
  • Lecture 15 (May 3rd, 12:15 - 13:00): Monads
  • Lecture 16 (May 3rd, 13:15 - 14:00): Decorated/structured co-spans
  • Recital 8 (May 5th, 12:15 - 13:00 : Uncertainty monads in co-design
  • Lecture 17 (May 10th, 12:15 - 13:00): Optics
  • Lecture 18 (8May 10th, 13:15 - 14:00):  Profunctor Optics
  • Recital 9 (May 12th, 12:15 - 13:00): TBD
  • Lecture 19 (May 17th, 12:15 - 13:00): Wiring diagrams, operads
  • Lecture 20 (May 17th, 13:15 - 14:00): Algebra of operads
  • Recital 10 (May 19th, 12:15 - 13:00 : TBD
  • Lecture 21 (May 31st, 12:15 - 13:00): Linear logic
  • Lecture 22 (May 31st, 13:15 - 14:00): TBD
  • Recital 11 (June 2nd, 12:15 - 13:00 : TBD

Prerequisites

  • Algebra: at the level of a bachelor’s degree in engineering.

  • Analysis: ODEs, dynamical systems.

  • Familiarity with basic physics, electrical engineering, mechanical engineering, mechatronics concepts (at the level of bachelor's degree in engineering).

Instructors

Instructors: