Functional Program Design: Apply FP in a larger context.
Functional Programming and State: What does it mean to have a mutable state, what changes if we add it, how can we simulate it if we want to stay purely functional
Parallel Programming: All the programs we saw were sequential. The parallel programming course teaches how to exploit immutability for parallel execution. Useful for processing distributed collections and big data.