Lecture notes for COMP 150-GIT (Applied Functional Programming)

Table of Contents

5 September 2012: Introduction, File systems


What kind of course is this?

Spectrum of courses:

I set up this course with the goal of creating new knowledge about distributed revision control. I believe the most effective means to this end is by applying functional programming. Creating new knowledge is

Problem: new knowledge builds on existing knowledge

(You have to get to the frontier before you can extend it.)

By and large, the existing knowledge is not published.

And most of you probably need more functional-programming knowledge.

So the plan is something like this:

  1. Learn how to read papers on your own, without a leader.

  2. Read a mix of papers: some advanced functional programming, some in domains related to distributed source control.

  3. Identify an interesting project.

Each of you can pick your own projects; I'm here to help you pick good ones. And you can work in teams of any size. At the end of the term you'll give a juried presentation and about a week later you'll turn in a paper.

What I hope to accomplish today:

  1. Talk about logistics

  2. Explain what our obligations are and how this class is different from other classes you may have taken

  3. Give you a sample of what a group exercise is like


Here's how we'll use our class time:

To grapple with a paper yourself requires more than 75 minutes.
So we have a special exemption from the registrar to run for four hours per week instead of two and half.

How is this class different from other classes? What are our obligations?

What kind of class is this?


I suspect some of this sounds intimidating. Let me assure you it is way more fun than writing problem sets and exams. We've got a huge playground, and you're invited to find whatever you like best on the playground and do something interesting with it.

Final note: within this framework, we can be totally flexible.

Group exercise: Equational reasoning about file systems

17 September 2012: Equational reasoning about mutable data, including file systems

Questions for the class:

Exercise: filesystems

Back to class home page