In few days, tomorrow if I'm not mistaken, you will be able to attend the new Erik Meijer's introduction to Functional Programming on edX. If you have any interest in mathematics or programming, I am sure that this is something that you have to watch.
I am saying new because a similar course was held in 2010 by the same person, you can still watch it here: Erik Meijer's MSDN Channel 9 lecture series on functional programming
The main reason I'm writing this post (more than just advertising the course above) is that there is a second part, by Dr. Ralf Lämmel, that I was not aware of.
I cite from the course page:
The idea here is to take the next step from Erik Meijer's fantastic introductory series on functional programming. Accordingly, Ralf's series will dive into more advanced areas of functional programming, again focusing on the Haskell language (the functional concepts here span beyond any one functional language, however).
I've struggled a bit to find all the lectures, so I've decided to link them here for reference: 1. The Expression Problem 2. Type Classes 3. Evolution of an Interpreter 4. The Quick Essence of Functional Programming 5. Going Bananas
Given that we are here. Channel 9 provides other nice set of lectures, in particular Yuri Gurevich - Introduction to Algorithms and Computational Complexity, Greg Meredith - Monadic Design Patterns for the Web and the very recent Thinking for Programmers by Leslie Lamport (he is really a big guy in computer sicence, and among the other things he is one of LaTeX developers).
UPDATE: updated link to edx course (. Also, recently there was another mooc on functional programming that I've found extremely good: Introduction to Functional Programming in OCaml. Sadly registrations are closed now, but it's really worth to add it to your todo list in case they reopen them.