Throughout my undergraduate study, I only heard about Functional Programming but had never been deep inside it. Then, I had the chance to dive into it for one semester at RWTH Aachen: http://verify.rwth-aachen.de/fp09/. In short, the course was totally fun to get to know Functional Programming! Moreover, it improved my mathematical proficiency as well :-)