** Postponed until further notice, see #37 **
Pittsburgh Functional Programming Book Club featuring Category Theory for Programmers by Bartosz Milewski. The content for the book can be found on github. Additionally, print copies can be purchased from blurb. This repository is going to serve a few purposes:
- Describe the Motivations behind hosting this book club
- Describe the Format of our book club
- Contain code from exercises submitted by various folks in our group
- Show the Schedule and Guidelines for Participation
In no particular order,
- Understand practical applications of category theory, e.g. databases
- Understand "categorical semantics" sections of literature
- Fully realizing the various typeclasses
- Explore foundational aspects of computer science
- Whether or not this can be used as a modern educational tool
- Understand design decisions of programming languages
- Discover relationships in the semantics of programming language
The book club will meet once per month on the third Monday of the month starting on October 21st 2019. We will be broadcasting our conversations live on my twitch channel. We will be using zoom to do our video conferencing.
Each week we will discuss chapters or topics from the book (see Schedule). We will work our way through discussing the content as well as what is requested via Zoom or Twitch chat. If we encounter exercises, we will compare and contrast solutions.
Regarding exercises, attendees will submit code in the exercises/
directory
via a PR to exercises/{user}/chapter{N}
where {user}
is your Github
username and {N}
is the chapter we are working on. An example PR is available
here. Please provide some details in a top-level README.md
about how
to run your examples.
Regarding past content, discussion and comments on past material is encouraged however jumping forward in the book will be discouraged. We want folks to be able to catch up and not leave them behind.
All streams will start at 7:30 PM EST
- 10/21/19: Explanation of book club and Chapter 1
- 11/18/19: Chapter 2
- 12/16/19: Chapter 3
- 01/20/20: Chapter 4
- 02/17/20: See https://github.com/barrymoo/ctfp-book-club#february-17th and #19
- 03/16/20: See https://github.com/barrymoo/ctfp-book-club#march-16th and #21
- 04/27/20 (postponed from 04/20/20): See https://github.com/barrymoo/ctfp-book-club#april-20th and #28
- 05/18/20: See https://github.com/barrymoo/ctfp-book-club#march-18th and #31
- 07/20/20 (postponed from 06/22/20): See https://github.com/barrymoo/ctfp-book-club#july-20th and #32
- 08/17/20: See https://github.com/barrymoo/ctfp-book-club#august-17th and #36
We realized that at the rate we are going it will take ~3 years to complete the
book. This didn't sit well with some of us. We had 2 options; increase the
frequency of meetings, or increase the volume of reading per meeting. Meeting
more frequently is more onerous on everyone's already busy schedules, however
going over more material while meeting with the same cadence constrains the
depth conversation. Our solution is to add more volume, but use issues (e.g. #19)
to narrow down to the important discussion points. Anyways, here is the proposed
curriculum moving forward. The idea is that we will complete up to Section 3
by July, and re-evaluate interest in continuing forward!
- Reading:
Chapter 5 - Products and Coproducts
Chapter 6 - Simple Algebraic Data Types
- Additional Materials for the Interested Participant:
- Reading:
Chapter 7 - Functors
Chapter 8 - Functoriality
- Additional Materials for the Interested Participant:
- Reading
Chapter 9 - Function Types
- Additional Materials for the Interested Participant:
- Reading:
Chapter 10 - Natural Transformations
- Additional Materials for the Interested Participant:
- Reading
Chapter 11 - Declarative Programming
Chapter 12 - Limits and Colimits
Chapter 13 - Free Monoids
- Additional Materials for the Interested Participant:
- Declarative Vs Imperative (note: this is philosophically interesting, but not actually that relevant)
- Bartosz on Limits
- Bartosz on Higher Order Functors
- Bartosz on Naturality Conditions
- Bartosz on Examples of Limits and Colimits
- Bartosz on Free Monoids
- Catsters on Limits and Colimits
- Cat. Theory for Beginners: Limits
- Pullbacks and Pushouts
Note: This week will be really hard, Rep. Functors and Yoneda are heavily related but both very difficult
- Reading
Chapter 14 - Representable Functors
Chapter 15 - The Yoneda Lemma
- Materials for the Interested Participant:
- Reading
Chapter 16 - Yoneda Embedding
- Materials for the Interested Participant:
We are encouraging active participation in the book club from anyone interested. To be involved you should tune into the stream during the scheduled times where a link to the Zoom conference as well as a password will be provided to. In Zoom we will use the raise hand feature to determine who can talk. You will only be warned once for not following the rules. If you break the rules I will remove you from the call. If you are discussing anything inappropriate I will remove you immediately.
Pull requests to this repository will be accepted if they follow the guidelines from the Format section. They will not be checked for correctness.