PROGRAMMING  LANGUAGES  AT  UNIVERSITY  OF  MARYLAND
Department of Computer Science, The University of Maryland, College Park
Faculty
Jeff Foster (adjunct)
Mike Hicks
David Van Horn
Bill Pugh (emeritus)
 
Post-docs
Leonidas Lampropoulos
Robert Rand
 
Students
Kesha Hietala
Phuc Nguyen
Brianna Ren
Andrew Ruef
Andrew Ruef
Ian Sweet
 
Resources
@plumlab on Twitter
GitHub
PL Group Wiki
 
Alumni (PhD)
Nat Ayewah
David Darais
Mike Furr
Chris Hayden
Dave Hovemeyer
Jinseong Jeon
Nick L. Petroni, Jr.
Yit Phang Khoo
Kin-Keung (Martin) Ma
Jeremy Manson
Piotr Mardziel
Justin McCann
Kristopher Micinski
Andrew Miller
Iulian Neamtiu
Pavlos Papageorge
Luís Pina
Polyvios Pratikakis
Aseem Rastogi
Karla Saur
Jaime Spacco
Saurabh Srivastava
Nikhil Swamy
 
Alumni (post-doc)
Evan Chang
Avik Chaudhuri
Nataliya Guts
Matthew Hammer
Stephen Magill
Manuel Oriol
Stevie Strickland
ThanhVu (Vũ) Nguyen
Neil Toronto
 
Alumni (MS)
David An
Brian Corcoran
Mark Daly
Adam Fuchs
D. Greenfieldboyce
Nick Kuilema
Nicholas Labich
James Parker
Nate Parsons
Elnatan Reisner
Jonathan Turpie
 
Alumni (ugrad)
Kyle Headley
Benjamin Kirzhner
Rebecca MacKenzie
Jeff Meister
Clayton Mentzer
Ted Smith
John Toman
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