PROGRAMMING  LANGUAGES  AT  UNIVERSITY  OF  MARYLAND
Department of Computer Science, The University of Maryland, College Park
Faculty
Jeff Foster
Mike Hicks
David Van Horn
Bill Pugh (emeritus)
 
Post-docs
Matthew Hammer
Neil Toronto
 
Students
Jinseong Jeon
Nicholas Labich
Piotr Mardziel
Kristopher Micinski
Phuc Nguyen
James Parker
Luís Pina
Aseem Rastogi
Brianna Ren
Andrew Ruef
Karla Saur
 
Resources
@plumlab on Twitter
GitHub
PL Group Wiki
 
Alumni (PhD)
Nat Ayewah
Mike Furr
Chris Hayden
Dave Hovemeyer
Nick L. Petroni, Jr.
Yit Phang Khoo
Kin-Keung (Martin) Ma
Jeremy Manson
Justin McCann
Iulian Neamtiu
Pavlos Papageorge
Polyvios Pratikakis
Jaime Spacco
Saurabh Srivastava
Nikhil Swamy
 
Alumni (post-doc)
Evan Chang
Avik Chaudhuri
Nataliya Guts
Stephen Magill
Manuel Oriol
Stevie Strickland
 
Alumni (MS)
David An
Brian Corcoran
Mark Daly
Adam Fuchs
D. Greenfieldboyce
Yehuda Katz
Nick Kuilema
Nate Parsons
Elnatan Reisner
Jonathan Turpie
 
Alumni (ugrad)
Benjamin Kirzhner
Rebecca MacKenzie
Jeff Meister
Ted Smith
John Toman
CURRENT PROJECTS
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
Build-it, Break-it, Fix-it Secure coding contest
Adapton Composable, demand-driven incremental computation
Lambda-Auth Core cauclus for verifiable computation
FindBugs A program that finds bugs in Java programs
Expositor Scriptable time-travel debugging
SCORE Agile Research Group Management (how we run PLUM)
 
EVENTS
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
Otter Symbolic execution for C programs
COCO Type coercions for program rewriting
Marmoset Mining software repositories to help students learn to program
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