CS Distinguished Colloquium Speaker

Daniel Jackson, CSAIL, Massachusetts Institute of Technology

Monday, March 2 - 12:30pm

Computer Science - Room 105

Host: Jennifer Rexford

https://www.cs.princeton.edu/events/25913

 

Title: A New Abstraction for Software Design

 

The internal design of software—how the code is structured—is powered by familiar abstractions (such as abstract types, classes and modules). But the external design—how the software actually behaves—is usually viewed informally, without the guidance of robust abstractions.

 

For the last few years, I have been exploring a new abstraction that can shape how we think about software applications and systems, and that provides a way to organize behaviors, encapsulate reusable ideas, and evaluate designs.

 

In this talk, I’ll define this abstraction and show how it can be used to explain a variety of flaws in familiar applications. I’ll also present some general principles that attempt to capture some key aspects of good software design.

 

 

Bio: Daniel Jackson is a professor of computer science and MacVicar teaching fellow at MIT, and associate director of the Computer Science and Artificial Intelligence Laboratory. His research has focused primarily on software modeling and design, most notably the Alloy modeling language. He is also a photographer whose most recent project brings to light the experiences of those with depression and other mental health issues (http://portraitsofresilience.com).