Speaker: Tom Schrijvers
Abstract: algebra provides powerful design patterns for structuring algorithms and data structures. In particular, once you start looking for the humble monoid structure in programs, you will start seeing it everywhere in one of its many forms. In this course, we cover basic concepts and constructs from abstract algebra with some of their theoretical properties and practical applications in a programming context. We use the functional programming language Haskell in our explanations and illustrations as it is an excellent fit for programming with algebra.
Outline:
1. Basic Algebraic Structures, Monoid Constructions.
2. Automatic Differentiation.
3. Probabilistic Logic Programming, Graded Monoids and Categories.
4. Category Theory Refresher, Monads as Generalised Monoids.
5. Algebraic Effects.
Note: Students who have no or very limited knowledge of Haskell or functional programming, might want to catch up on that first. One possible way is via the book “Soar with Haskell”
(https://www.packtpub.com/product/soar-with-haskell/9781805128458) written by Tom Schrijvers, especially the first 8 chapters (algebraic datatypes, higher-order functions, type classes, etc.).
Register:
DDL: July 8, 2024
Scan the QR code for registration:
Source: School of Computer Science, PKU