When I was a (not so fresh faced) student a lecturer attempted to teach us functional programming in the guise of Haskell. Around the same time our maths lecturer was expousing the joys of Lamba Calculus and the brilliance of it's creator Alonzo Church.
Us hapless students were also getting to grips with Object Orientated programming and programming in general. Looking back now I can see why this was on the curriculum and am thankful to have gleaned some knowledge on the subject.
When I started looking at my first Scala video on coursera, taught by Martin Odersky, there was some tingling when I heard the mention of the substitution model.
Not strictly all functional but some good info and a funny chap to boot.