| 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 |