I don't know if this is going to be covered, but perhaps Don could address the shift in thinking for problem solving from an OO perspective to problem solving from a functional perspective.
eg1 In this lecture, Don did make a comment in passing that with OO fundamentally you look for, develop and end up with a class hierarchy. What would be the FP equivalent? Is it something like functional decomposition? So whatever I am developing, for example,
my top level is something like X is a function of Y. and then Y gets decomposed into subexpressions etc?
eg2 I'm just reading Tomas Petricek's Real World Functional Programming and as he explains Pattern Matching and provides the C# switch equivalent, I immediately think (rightly or wrongly) of the "Replace Conditional With Polymorphism" refactor pattern -
but perhaps this mindset is no longer appropriate in an FP world.