FP101x completed

TL;DR

As of last evening I finished the last exercise/homework of the course FP101x Introduction to Functional Programming. I mostly signed up for fun, but did intend all along to go through with it, watch the lectures, do the homework… in short, take the course ;)

Now that it’s done I’m happy I did. It gave about as much as I expected on the programming side, and it gave me some experience with using the edX MOOC. I will suggest the course to colleagues and I’m already looking around for the next course to take myself.

Thoughts about the course

The course was, on the whole, very good. It was well planned; I felt it started from a level suitable for people unfamiliar with FP and then progressed at a reasonable pace. It should be noted though that the lectures probably isn’t enough for someone who’s new to FP; reading the book or researching the subjects on one’s own is required to follow along.

There were a few things in the course that I don’t really see the point of though. The thing that stands out in particular is the 12th lecture that covers proofs by induction of functions that work on lists. I think it would have been worthwhile spending some time on making more “realistic programs.” Furthermore, picking the “Countdown Problem” as the topic of an entire lecture feels very “academic”. Personally I would have liked an example that comes a bit closer to a problem that better reflects that FP can be used to solve problems that occur in a professional developer’s work.

Thoughts about the edX MOOC

The edX site is fairly nice to work with. There are several things that I liked from the beginning:

  1. Several methods of logging in are offered, I opted to use my Google-plus account since I like to avoid creating yet another account if I can.
  2. Interacting with the site is natural and finding my way around was easy from the start.
  3. The page I land on after logging in shows my current courses and it’s easy to from there.
  4. There’s a page showing my progress in the course; that turned out to be the page I go to all the time since I can find the next lecture from there.

There are also a few things I find really irritating:

  1. In many of the exercises the code isn’t plain text but rather images; this makes it impossible to copy the code and paste it into a REPL.
  2. In some cases the layout of the code in the exercises, especially in the answer options, were very badly laid out. For instance in FP101x there are several question where the answer options are code and rather wordy, due to the layout the code becomes unnecessarily difficult to read. (And thanks to the previous issue with the site, it was not an option to copy the code and reformat it to make it easier to read.)
⟸ Regular Haskelling. How? Adding some strictness ⟹

Magnus Therning

After noticing that I can’t get to the survey for FP101x (I don’t know if it’s closed already, or just not working… there’s nothing on the site telling me why) I asked Erik Meijer (@headinthebox) if he knew why that was. Then he read my post and a conversation resulted.

The results, as I see them:

  • The choice to use images for some code was very deliberate, and communicated. (Both of these things I knew.) And the goal was to make students type Haskell. (Personally I’m not quite convinced, but I’m arguing from a point of ignorance, and ErikM is most definitely not, so the chance of me be right is rather small (i.e. infinitesimal).)
  • The CSS of the site is to blame for a lot of my irritation. In particular it’s to blame for the sometimes nearly unreadable layout in exercises. On top of that I must at some point gotten conditioned to code being images in exercises, so I started to assume that all text that lacked the visual cue of being copyable (i.e. the mouse cursor didn’t change to an I-beam) were images and I stopped even trying.
Leave a comment