Training: https://www.coursera.org/course/progfun
Lector (Organization): Martin Odersky (École Polytechnique Fédérale de Lausanne)
Start Date: Fri 22 Mar 2013 10:23 AM CET +0100
Duration: 7 weeks
Over the next seven weeks you will explore functional programming in a sequence of lectures, quizzes, and homework assignments. We will take you from the fundamental concepts of functional programming to practical solutions for challenging programming problems. This is the second iteration of the course; the first one was held in fall 2012. 50'000 students enrolled in that course and almost 10'000 completed it with a certificate. In fact, the course had by far the highest completion rate of any massive open online course.
Some words on the schedule: You will receive a new batch of course materials every week on Monday morning. Most weeks will also contain a new assignment, where we ask you to solve a programming task. The tasks will start easy and become progressively harder. You have almost two weeks to hand in an assignment. The hand-in deadline is on Sunday night on the 13th day after the assignment was posted. Submitted solutions will be tested automatically for correctness and style and you will receive prompt feedback on how you did. You can submit up to 5 times to improve your score. You earn a certificate of course completion if you have received at least 60% of the maximal available points.
All times are Central European times, which is GMT+1, or PST+9. You can set your timezone in your Coursera profile; in that case all times that you see in the Assignments section will be automatically updated to that timezone.
If you have questions or comments, please post to one of the forum threads. The course organizers this time around are Martin Odersky, Heather Miller, Alex Propkopec, and Vojin Jovanovic. We, and a number of community TAs will be on the forums ready to answer your questions.
We hope that you find the class instructive and rewarding!
-
Getting Started
- Example Assignment
- progfun-example
-
Week 1: Functions & Evaluations
- Recursion
- progfun-recfun
-
Week 2: Higher Order Functions
- Functional Sets
- progfun-funsets
-
Week 3: Data and Abstraction
- Object-Oriented Sets
- progfun-objsets
-
Week 4: Types and Pattern Matching
- Huffman Coding
- progfun-patmat
-
Week 5: Lists
- No assignment
-
Week 6: Collections
- Anagrams
- progfun-forcomp
-
Week 7: Lazy Evaluation
- Bloxorz
- progfun-streams