September 16, 2008: Seminar: Tim Hinrichs: "Collaborative Programming"
Seminar Announcement
Collaborative Programming
Tim Hinrichs
University of Chicago
Wednesday, September 24, 2008
2:00 p.m., Room 1000 SEO
Abstract:
The prevalence of networked computer systems has enhanced a myriad of collaborative activities. Of special interest for computer science is the growing desire for large numbers of users to issue computer
instructions in highly dynamic, loosely-coupled environments. In these settings, users might not communicate with each other outside of the instructions they issue, no user knows enough to write an entire instruction set herself, and groups of users often disagree about the proper course of action.
We call such settings Collaborative Programming environments. Languages for these environments cope with issues not addressed in traditional approaches to programming. Because no user knows everything, instruction sets in Collaborative Programming languages can be incomplete, saying only what to do some of the time or forbidding certain actions. Because users sometimes disagree, instruction sets can be conflicting, simultaneously instructing the system to perform some
action and forbidding the system from performing that same action. Technology that supports Collaborative Programming must be able to combine independently authored instruction sets and be tolerant of incompleteness and conflicts.
This talk introduces Collaborative Programming and through the discussion of two practical examples argues that tools from logic and automated reasoning form a good foundation for Collaborative Programming technology. At the same time, those examples provide challenges for researchers in logic and automated reasoning. The first example centers around a logical language for expressing network security policies; the second focuses on a generalization of traditional spreadsheets that
allow users to impose relational constraints (as opposed to functional definitions) on cells in the spreadsheet. The talk concludes by discussing the tradeoffs for the example Collaborative Programming languages and techniques for leveraging those tradeoffs.
Brief Bio:
Hinrichs received a B.S. in Computer Science from the University of Illinois at Urbana-Champaign in 2001 and a Ph.D. in Computer Science from Stanford University in 2007. He is currently a postdoctoral researcher at the University of Chicago focusing on Computational Logic, specifically on language design and compilation.
Host: Professor Venkat Venkatakrishnan