This is the old site; here's the New site |
CURRENT PROJECTS |
Probabilistic Programming for Quantifying Information Flow
|
|
Static analysis for preventing information leaks |
Types for Oblivious Computation
|
|
Using type systems to ensure the security of cryptographic code |
Random/Fuzz Testing
|
|
Developing and evaluating methods for uncovering bugs through automated testing |
RDL
|
|
Types, type checking, and contracts for Ruby |
Soft Contracts
|
|
Static verification for behavioral software contracts |
Build-it, Break-it, Fix-it
|
|
Studying secure programming through contests and user studies |
SCORE
|
|
Agile Research Group Management (how we run PLUM) |
|
EVENTS |
TFP 2016 |
|
The 17th Symposium on Trends in Functional Programming, June 2016 |
MAPLS 2013 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, April 2013 |
POPL 2010 PC Workshop |
|
POPL 2010 Program Committee Workshop, October 2010 |
MAPLS 2007 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, November 2007 |
MAPLS 2005 |
|
Mid-Atlantic Programming Languages Seminar, colocated with NJPLS, November 2005 |
|
COURSES |
CMSC 631 |
|
Program Analysis and Understanding
(Spring 2014,
Spring 2013,
Fall 2011,
Fall 2010,
Fall 2009,
Spring 2009,
Fall 2007,
Fall 2006,
Spring 2006,
Fall 2004,
Fall 2003)
|
CMSC 838G |
|
Software Security
(Spring 2014,
Spring 2011) |
CMSC 838F |
|
Language-Based Techniques for Concurrent and Distributed Software (Spring 2007) |
CMSC 838F |
|
Language-Based Security (Spring 2008) |
CMSC 838F |
|
Language-Based Techniques for Concurrent and Distributed Software (Spring 2007) |
CMSC 838Z |
|
Language-Based Security (Spring 2005) |
CMSC 838Z |
|
Tools and Techniques for Software Dependability (Spring 2004) |
CMSC 838P |
|
Enterprise Applications (Fall 2003) |
CMSC 838Y |
|
Agile and Adaptive Programming Systems (Spring 2003) |
|
PAST PROJECTS |
Wys*
|
|
A Verified Language Extension for Secure Multi-party Computations |
Wysteria
|
|
A Programming Language for Generic, Mixed-Mode Multiparty Computations |
RTC
|
|
The Ruby Type Checker |
Redexer
|
|
Binary rewriting for Android security |
Kitsune
|
|
Dynamic Software Updating for C programs |
Rubah
|
|
Dynamic Software Updating for Java |
Adapton
|
|
Composable, demand-driven incremental computation |
Lambda-Auth
|
|
Core cauclus for verifiable computation |
Otter
|
|
Symbolic execution for C programs |
COCO
|
|
Type coercions for program rewriting |
FindBugs
|
|
A program that finds bugs in Java programs |
Marmoset
|
|
Mining software repositories to help students learn to program |
Expositor
|
|
Scriptable time-travel debugging |
Path Projection
|
|
Visualizing program paths for user-centered static analysis |
DRuby
|
|
A tool that blends static and dynamic analysis for Ruby |
Ginseng
|
|
Safe on-line software updating for C programs |
Arrowlets
|
|
Directing JavaScript with arrows |
BEEP
|
|
Browser-enforced Embedded Policies to defeat script injection attacks |
CMod
|
|
A tool for enforcing modular programming in C |
SAUS
|
|
User studies exploring Industrial Experiences Using Static Analysis Tools |
VS3
|
|
Verification and Synthesis using SMT Solvers |
CQual
|
|
A framework for adding type qualifiers to C |
Cyclone
|
|
A type safe dialect of C that features advanced manual memory management |
FindLocks
|
|
A combination of static and dynamic techniques for inferring lock types in Java programs |
Java Memory Model
|
|
Defining the interaction through memory of Java threads |
JQual
|
|
Type qualifier inference for Java programs |
Locksmith
|
|
Static analysis for race detection in C programs |
MultithreadedTC
|
|
A framework for testing concurrent Java applications |
Omega Project
|
|
Analysis and transformations of scientific programs |
Pistachio
|
|
A rule-based static analysis tool for network protocol implementations |
Proxyc
|
|
A tool for programming with proxies in Java |
RX
|
|
Languages that support dynamically updating security policies. |
Saffire
|
|
Static Analysis of Foreign Function InteRfacEs |
SELinks
|
|
End-to-end security for web applications |
Uno
|
|
Inferring aliasing and encapsulation for Java |