Brent Yorgey's (UPenn) CIS 194: Introduction to Haskell course