- Introduction: problems with existing languages and benefits of FP (20 mins)
- Quick introduction to FP with Scala - Scala crash course (10)
- Hands on with Scala - Scastie and sbt (25)
- Running example - gradient-based opt of a logreg likelihood (10)
- Example in Scala then Run example in Scala (15)
- Scala parallel programming (10)
- (EVENING BREAK?)
- Quick intro to Haskell (10)
- Example in Haskell then Hands-on with Haskell (15)
- JAX for Python (10)
- Example in JAX then JAX hands-on (15)
- (BREAK?)
- Introduction to Dex (10)
- Example in Dex then Dex hands-on (15)
- Functional and parallel random numbers (10)
- Hands-on with splittable random numbers (choice of language) (15)
- Wrap-up and next steps (logreg repo and learning resources) (5)
- (195 minutes, excluding Breaks)