151-9904-00L  Applied Compositional Thinking for Engineers

SemesterSpring Semester 2021
LecturersE. Frazzoli, A. Censi, J. Lorand
Periodicityyearly recurring course
Language of instructionEnglish



Courses

NumberTitleHoursLecturers
151-9904-00 GApplied Compositional Thinking for Engineers3 hrs
Mon12:15-14:00ML F 39 »
Wed12:15-13:00ML F 39 »
E. Frazzoli, A. Censi, J. Lorand

Catalogue data

AbstractThis course is an introduction to applied category theory specifically targeted at persons with an engineering background. We focus on the benefits of applied category theory for thinking explicitly about abstraction and compositionality. The course will favor a computational/constructive approach, with concrete exercises in the Python.
ObjectiveIn many domains of engineering it would be beneficial to think explicitly about abstraction and compositionality, to improve both the understanding of the problem and the design of the solution. However, the problem is that the type of math which could be useful to engineers is not traditionally taught.

Applied category theory could help a lot, but it is quite unreachable by the average engineer. Recently many good options appeared for learning applied category theory; but none satisfy the two properties of 1) being approachable; and 2) highlighting how applied category theory can be used to formalize and solve concrete problems of interest to engineers.

This course will fill this gap. This course's goal is not to teach category theory for the sake of it. Rather, we want to teach the "compositionality way of thinking" to engineers; category theory will be just the means towards it. This implies that the presentation of materials sometimes diverges from the usual way to teach category theory; and some common concepts might be de-emphasized in favor of more obscure concepts that are more useful to an engineer.

The course will favor a computational/constructive approach: each concept is accompanied by concrete exercises in the programming language Python.
Throughout the course, we will discuss many examples related to autonomous robotics, because it is at the intersection of many branches of engineering: we can talk about hardware (sensing, actuation, communication) and software (perception, planning, learning, control) and their composition.
Content## Intended learning outcomes

# Algebraic structures

The student is able to recognize algebraic structure for a familiar engineering domain. In particular we will recall
the following structures: monoid, groups, posets, monoidal posets, graphs.

The student is able to translate such algebraic structure in a concrete implementation using the Python language for the purpose of solving a computational problem.

# Categories and morphisms

The student is able to recognize categorical structure for a familiar engineering domain, understand the notion of object, morphism, homsets, and the properties of associativity and unitality.

The student is able to quickly spot non-categories (formalizations in which one of the axioms fails, possibly in a subtle way) and is informed that there exist possible generalizations (not studied in the course).

The student is able to translate a categorical structure into a concrete implementation using the Python language.

The student is able to recognize the categorical structure in the basic algebraic structures previously considered.

The student is able to use string diagrams to represent morphisms; and to write a Python program to draw such a representation.

# Products, coproducts, universality

# Recognizing and using additional structure

The student is able to spot the presence of the following structures: Monoidal structure, Feedback structure (Trace),
Locally posetal/lattice structure , Dagger/involutive structure.

# Functorial structure.

The student is able to recognize functorial structures in a familiar engineering domain.

The student can understand when there is a functorial structure between instances of a problem and solutions of the problem, and use such structure to write programs that use these compositionality structures to achieve either more elegance or efficiency (or both).

# The ladder of abstractions

The student is able to think about scenarios in which one can climb the ladder of abstractions. For example, the morphisms in a category can be considered objects in another category.

# Compact closed structure.

# Co-design

The student knows co-design theory (boolean profunctors + extensions) and how to use it to formalize design problems in their area of expertise.

The student knows how to use the basics of the MCPD language and use it to solve co-design problems.

# Rosetta stone

The student understands explicitly the connection between logic and category theory and can translate concepts back and forth.

The student understands explicitly the constructive nature of the presentation of category theory given so far.

The student is able to understand what is an "equational theory" and how to use it concretely.

The student understands the notion of substructural logics; the notion of polycategories; and linear logic. Mention of *-autonomous categories.

The student can translate the above in an implementation.

# Monadic structure

The student is able to recognize a monadic structure in the problem.

# Operads and operad-like structures.
Lecture notesSlides and notes will be provided.
LiteratureB. Fong, D.I. Spivak, Seven Sketches in Compositionality: An Invitation to Applied Category Theory (Link)

A. Censi, D. I. Spivak, J. Tan, G. Zardini, Mathematical Foundations of Engineering Co-Design (Own manuscript, to be published)
Prerequisites / NoticeAlgebra: 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).

Basics of Python programming.

Performance assessment

Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
ECTS credits4 credits
ExaminersE. Frazzoli, A. Censi, J. Lorand
Typesession examination
Language of examinationEnglish
RepetitionThe performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examinationwritten 90 minutes
Additional information on mode of examinationEvery week the students will be given a problem set to solve. Thanks to the problem sets the students can gain up to 0.25 points for their final grade. The course will have a final exam during the exam session.
Written aidsopen book
This information can be updated until the beginning of the semester; information on the examination timetable is binding.

Learning materials

 
Main linkCourse website
Only public learning materials are listed.

Groups

No information on groups available.

Restrictions

There are no additional restrictions for the registration.

Offered in

ProgrammeSectionType
Civil Engineering MasterRecommended Electives of Master ProgrammeWInformation
Doctoral Department of Mechanical and Process EngineeringDoctoral and Post-Doctoral CoursesWInformation
Mechanical Engineering MasterRobotics, Systems and ControlWInformation
Robotics, Systems and Control MasterCore CoursesWInformation