Here are some presentations I have given, informative or otherwise.

Modular Typestate Checking for Concurrent Java Programs My entry to the 2009 OOPSLA Student Research Competition. In this competition, undergraduate and graduate student in computer science give a presentation of their research which includes a written submission, a poster, and finally a short oral presentation. I was lucky enough to be selected the third place winner, and for that I am quite excited. I have included my presentation and my poster here.

Case Studies in Concurrent Object Protocols An SSSG presentation about my experiences using my tools, NIMBY and Sync or Swim, to specify and verify open-source Java programs.

Reducing STM Overhead with Access Permissions A presentation given at IWACO 2009 on the paper of the same name.

jStar Presentation from Separation Logic In the course, "Current Research in Separation Logic," taught by John Reynolds, I presented a paper by Dino Distefano and Matthew Parkinson on jStar, an automated separation logic prover for Java programs. Here are the slides from that presentation.

Arkan∞id: Breaking Out of a Finite Space. This talk was a presentation of my work given at SIGBOVIK 2009. I presented on a paper of the same name. It describes an infinite brick-breaking game that you should download from my software page.

Verifying the Correct Usage of Atomic Blocks and Typestate This talk was a presentation of my work given at OOPSLA 2008. It was the presentation of our paper of the same name, which can be found on my publications page. It describes how we use access permissions, an alias control technology similar to ownership or separation logic, to verify the correct usage of object protocols in concurrent OO programs.

Relentless Parallelism The talk given to present my work on Relentless Parallelism at SIGBOVIK 2008, which took place on April 6th, 2008.

Formal Methods in the Real World Guest lecture in Formal Models of Software Systems, given on November 15, 2007.

A Programming Model For Failure-Prone, Collaborative Robots A presentation given at the workshop on Software Development in Robotics (SDIR) 2007.

The GUnit Testing Harness: Achieving Source Code Street Cred Presentation given at most distinguished conference, SIGBOVIK '07 on April 1st, 2007.

Unit Testing: Philosophy and Tools This presentation was given on February 1st, 2007 as a lecture in a course at CMU entitled, Analysis of Software Systems taught by Jonathan Aldrich. It discusses unit testing, when and why to use it, the JUnit framework and EasyMock, a mock objects framework.

Failure Handling in a Modal Language A presentation given on the current state of my research, as of October 30, 2006. I am attempting to add some failure-handling capabilities to Tom Murphy's ML5 language, a language with a modal type system. This talk is approximately 45 minutes long.

A Survey of Race Detection Techniques In the course Analysis of Software Artifacts which I took in the spring of 2006, my final project was a litterature survery which compared different analysis techniques, static and dynamic, on their abilities to find one particular defect: data races. This is the presentation of that work. This was a talk of approximately 50 minutes, used to lecutre to a group of masters and PhD students. The full paper text can be located here.

The Claytronics Project and DSLs These are the slides from my second SSSG talk, and I'm starting to understand how these things work. They cover background on the Claytronics project. They also go into some detail on my experiences programing catoms for the Claytronics project using C++ and some things that we might like to improve about the entire experience.

Component Markets and COTS-Based Development These slides come from my lecture on COTS-based software development in the software engineering course entitled "Methods: What to Design and Why". It was given as part of the "Business" unit of the course, and includes my own notes on the lecture and on the research that I performed for this topic.

A Little Bit of Real-Time Java Here are the slides from my first SSSG talk. This talk covered some of the basics of the RTSJ (Real-Time Specification for Java) and went into some detail about the new memory model and some of the pros and cons that come along with it.

Baker's Incremental Copying Collector Here is an animated explanation of Baker's Incremental Copying Collector, a garbage collector algorithm for real-time systems.