- Style Guide: notes
- Cheat Sheet: link notes
- Scala Check: user-guide api
- Scala Standard Library(2.13.6): api
- Reactive Cheat Sheet: link notes
- RxScala: api
- Akka: documentation api
- Scala with Cats - Noel Welsh and Dave Gurnell: book
- Recap - Functions and Pattern Matching: slides notes
- Recap - Collections: slides
- Lecture 1.1 - Queries with For: slides notes
- Lecture 1.2 - Translation of For: slides notes
- Lecture 1.3 - Functional Random Generators: slides code
- Lecture 1.4 - Monads: slides notes
- Programming Assignment - Quickcheck: code
- Lecture 2.1 - Structural Induction on Trees: slides notes
- Lecture 2.2 - Streams: slides notes
- Lecture 2.3 - Lazy Evaluation: slides notes
- Lecture 2.4 - Computing with Infinite Sequences: slides notes
- Lecture 2.5 - Case Study: the Water Pouring Problem: slides code
- Programming Assignment - Bloxorz: code
- Lecture 3.1 - Motivating Example: notes
- Lecture 3.2 - Type-Directed Programming: notes quiz
- Lecture 3.3 - Type Classes: notes
- Lecture 3.4 - Conditional Implicit Definitions: notes quiz
- Lecture 3.5 - Implicit Conversions: notes quiz
- Programming Assignment - JSON Codecs: code
- Lecture 4.1 - Functions and State: slides notes
- Lecture 4.2 - Identity and Change: slides notes
- Lecture 4.3 - Loops: slides notes
- Lecture 4.4 - Extended Example: Discrete Event Simulation: slides
- Lecture 4.5 - Discrete Event Simulation: API and Usage: slides
- Lecture 4.6 - Discrete Event Simulation: Implementation and Test: slides notes code