Invited by Prof. Zhenjiang Hu and Dr. Wang Di, Prof. Tom Schrijvers (from KU Leuven, Belgium) will give a mini-course at Peking University during July 15 -- July 19. The course will be about Fun with Monoids and Friends: Functional Programming with Abstract Algebra. The course will be held on 15:00 -- 17:00 each day at Room 1126 of Scientific Building No. 1. The course will also be streamed online and the details will be announced after registration.
Tom Schrijvers obtained his master degree in engineering (computer science) in 2001 at KU Leuven, Belgium. As a research assistant of the Flemish Fund for Scientific Research (FWO), his research at the department of computer science of the KU Leuven centered around `Analyses, optimizations and extensions of Constraint Handling Rules’ in the area of (Constraint) Logic Programming. In 2005 he defended his Ph.D. with congratulations of the jury. From 2006 to 2010, he extended his research towards Functional Programming languages and Programming Language Theory, as postdoctoral researcher of the FWO at the KU Leuven. From 2010 to 2014, he was head of the programming languages group at Ghent University. On October 1, 2014, Tom Schrijvers re-joined KU Leuven as Research Professor at the KU Leuven Department of Computer Science. In recent years, his team has also expanded into Programming Education Research.
Registration
Please use the link or scan the QR code before July 8 to register for the course: https://www.wjx.top/vm/YRx6SYG.aspx。
![](/__local/9/0E/C7/1787A6956B4ECB03B2AE878EC79_A779D9C5_9C41.jpeg)
Course Detail
Course Name:
Fun with Monoids and Friends: Functional Programming with Abstract Algebra
Instructor:
Tom Schrijvers
![](/__local/7/12/07/3A77ECF19D46A57D243B0DAACE4_018E3729_19920.png)
Abstract:
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.
Syllabus:
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.
Preparation:
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.).