Past Meetup

Programming as Theory Building

This Meetup is past

27 people went

Location image of event venue


Welcome to the first DC/NoVA Papers We Love meetup!

Papers We Love is an international organization centered around the appreciation of computer science research papers. There's so much we can learn from the landmark research that shaped the field and the current studies that are shaping our future. Our goal is to create a community of tech professionals passionate about learning and sharing knowledge. Come join us!

New to research papers? Watch The Refreshingly Rewarding Realm of Research Papers ( by Sean Cribbs.

Ideas and suggestions are welcome–fill our our interest survey here ( and let us know what motivates you!

// Tentative Schedule

• 7:00-7:30–Food and informal paper discussion

• 7:30-7:35–Introduction and announcements

• 7:35-8:05–Programming as Theory Building ( (presentation + discussion) by Chris Hoffman

• 8:05-8:10–Break

• 8:10-8:40–A Categorical Theory of Patches ( Hunter Madison

• 8:40-9:00–Food and informal paper discussion

// Directions

CustomInk Cafe (3rd Floor)
Mosaic District, 2910 District Ave #300
Fairfax, VA 22031

When you get here you can come in via the patio. Don't be scared by the metal gate and sign. It's accessible via the outside stairs near True Food. There is a parking garage next door for those coming by vehicle. And, there is a walkway to the patio on the 3rd floor of the garage nearest moms organic market.

Metro: The Dunn Loring metro station is about 0.7 miles from our meetup location. It’s very walkable, but if you’d prefer a bus, the 402 Southbound and 1A/1B/1C Westbound leave from Dunn Loring Station about every 5-10 minutes (see a schedule for more detailed timetable).

If you're late, we totally understand–please still come! (via the patio is best) Just be sure to slip in quietly if a speaker is presenting.

// Papers

• Programming as Theory Building by Peter Naur
Presented by Chris Hoffman, Senior Software Engineer at Optoro

pdf | text (mobile-friendly) (

Chris's Remarks: This paper describes agile a decade-and-a-half before the Manifesto on Agile Software Development. It's got everything in there: People over Process, No Single Process, even a preference for knowledge in developer's heads over "knowledge" represented in documentation & manuals.

I'll be recapping the paper briefly and discuss what a "Theory of a Program" is. I'll then move onto talking about the parallels between Naur's Theories and Kuhn's (whom Naur invokes in the paper) notion of Paradigm in traditional science. I'll end by discussing how this paper influenced the Agile movement (Alistair Cockburn in particular) and why it's still massively relevant today.

About Peter Naur: Peter Naur was a Danish computer science pioneer and Turing award winner. His last name is the "N" in the BNF notation (Backus-Naur form), used in the description of the syntax for most programming languages. He contributed to the creation of the ALGOL 60 programming language (from Wikipedia (

• A Categorical Theory of Patches by Samuel Mimram ( and Cinzia Di Giusto (
Presented by Hunter Madison, CustomInk

homepage ( | pdf (

Summary: For most of us, version control is an integral part of our professional workflow. It's difficult to imagine working on large teams or long-term projects without the ability to branch or merge! But how does it actually work?

This paper takes a look "under the hood" of version control–its aim is to provide a formal mathematical definition of patches using category theory. It starts with the basic case of two users who make non-conflicting changes on the same file, goes over increasingly complex examples, and finally explores the general case.

Note: In contrast to the first paper, this paper is heavy on mathematical terminology and notation. The introduction provides a good summary, and I suggest keeping your browser open to look up unfamiliar terms. I like Category Theory for Programmers ( (a set of blog posts by Bartosz Milewski) as an introduction.