COMP 150GIT Schedule

Note: This schedule is subject to change without notice at any time. Expect it to change approximately weekly throughout the semester. For pointers to lecture notes, and for more information about what's going on, consult the syllabus.

Wednesday, 9/5
Course introduction; equational reasoning
Monday, 9/10
International Conference on Functional Programming. No class.
Wednesday, 9/12
International Conference on Functional Programming. No class.
Monday, 9/17
Class exercise: Equational reasoning about filesystems
Wednesday, 9/19
John Hughes, Why Functional Programming Matters
Monday, 9/24
Norman Ramsey and Elod Csirmaz, An Algebraic Approach to File Synchronization
Wednesday, 9/26
Philip Wadler and Stephen Blott, How to make ad-hoc Polymorphism less ad hoc (1989)
Monday, 10/1
Tom Mens, A State-of-the-Art Survey on Software Merging (2002)
Wednesday, 10/3
In-class work on the complement-of-arbitrary-arity problem.
Monday, 10/8
Columbus Day. No class.
Tuesday, 10/9
Simon Peyton Jones and Philip Wadler, Imperative functional programming (1993). Applications to DVD packing.
Wednesday, 10/10
Koen Claessen and John Hughes, QuickCheck: a Lightweight Tool for Random Testing of Haskell Programs (2000). In-class testing of operations on predicates of arbitrary arity
Monday, 10/15
Work on DVD packing and applying quickcheck
Wednesday, 10/17
Work on semantics of git without branching or merging
Monday, 10/22
Wrapping up all programming problems
Wednesday, 10/24
Continue work on semantics of git with rebase but without branching or merging
Monday, 10/29
Hurricane Sandy. No class.
Wednesday, 10/31
Friday, 11/2
Friday Nov 2, 3:00PM–5:00PM. Project followup.


Monday, 11/5
IFIP Working Group 2.8 (Functional Programming). No class.
Wednesday, 11/7
IFIP Working Group 2.8 (Functional Programming). No class.
Monday, 11/12
Veterans' Day. No class.
Wednesday, 11/14
A Principled Approach to Version Control by Andres Loeh, Wouter Swierstra, and Daan Leijen
Friday, 11/16
Friday Nov 16, 3:15PM–5:15PM. Analysis of project descriptions, and planning for final classes:
Monday, 11/19
Extending our model with algorithms for diff and merge (class exercise)
Wednesday, 11/21
Thanksgiving. No class.
Monday, 11/26
Bring to this class a list containing one paper we have read that you thought was clear, well organized, and easy to follow, plus one other paper that was not.

The topic of the day is Documenting and Automating Collateral Evolutions in Linux Device Drivers by Yoann Padioleau, Julia Lawall, René Rydhof Hanseon, and Gilles Muller—this paper describes a particular form of semantic patches which can be applied to Linux device drivers.

You might wish to be aware of two related papers from the same group:

Wednesday, 11/28
Structuring technical papers. See exercise.
Monday, 12/3
Giving technical presentatations (guest lecturer Kristina Aikens)
Wednesday, 12/5
Wednesday, Dec 5, JURY PRESENTATIONS WORKSHOP, 1:30PM to 5:00PM

1:30 Norman Ramsey: Introducing the Common Repository Model
2:00 JJ Tan and Xihan Zhang: Merging XML Files
2:30 Sophie Panuthos and Brian Sumner: An Analytic Comparison of Merge and Rebase
3:00 Break
3:30 Max Alexander: Semantic Test Combination for Validation of Merged Functions
4:00 Matt Dunlap: Making Automatic Merges Less Dumb
4:30 JC Montemayor, Hashem Nasarat, and Matt Russell: Nor—A Lightweight and Functional Version-Control System
5:00 Workshop ends

Monday, 12/10
Monoids: Theme and Variations (Functional Pearl) by Brent Yorgey—this paper describes the design of the Haskell diagrams library, a rather nice little combinator library for drawing diagrams.