PROGRAMMING  LANGUAGES  AT  UNIVERSITY  OF  MARYLAND
Department of Computer Science, The University of Maryland, College Park
Faculty
Jeff Foster
Mike Hicks
Bill Pugh
 
Post-docs
Nataliya Guts
 
Students
Chris Hayden
Jinseong Jeon
Yit Phang Khoo
Piotr Mardziel
Kristopher Micinski
Jane Ren
Karla Saur
Ted Smith (ugrad)
 
Resources
PL Group Wiki
 
Alumni
Kin Keung Ma
Stephen Magill (post-doc)
Jonathan Turpie
Elnatan Reisner (M.S.)
David An (M.S.)
Nat Ayewah
Evan Chang (post-doc)
Avik Chaudhuri (post-doc)
Brian Corcoran (M.S.)
Mark Daly
Adam Fuchs
Mike Furr
D. Greenfieldboyce (M.S.)
Dave Hovemeyer
Benjamin Kirzhner (ugrad)
Nick Kuilema (M.S.)
Jeremy Manson
Jeff Meister (ugrad)
Iulian Neamtiu
Manuel Oriol (post-doc)
Pavlos Papageorge
Nick L. Petroni, Jr.
Polyvios Pratikakis
James Rose (M.S.)
Jaime Spacco
Saurabh Srivastava
Nikhil Swamy
space space space
CURRENT PROJECTS
Otter   Symbolic execution for C programs
COCO   Type coercions for program rewriting
DRuby   A tool that blends static and dynamic analysis for Ruby
FindBugs   A program that finds bugs in Java programs
Ginseng   Safe on-line software updating for C programs
Marmoset   Mining software repositories to help students learn to program
Path Projection Visualizing program paths for user-centered static analysis
SCORE   Agile Research Group Management (how we run PLUM)
 
PAST PROJECTS
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
 
COURSES
CMSC 631   Program Analysis and Understanding (Fall 2011, Fall 2010, Fall 2009, Spring 2009, Fall 2007, Fall 2006, Spring 2006, Fall 2004, Fall 2003)
CMSC 838G   Software Security (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)
 
EVENTS
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
 
TALKS
  Improving Software Quality with Static Analysis
  Static Analysis to Improve Software Quality