Michael Hicks

E-mail: mwh@cs.umd.edu
Phone: +1-301-405-2710
Fax: +1-301-405-6707
Office: 4131 A.V. Williams Building
Address:

Dept. of Computer Science

University of Maryland

A.V. Williams Building

College Park, MD 20742



Publications Links

I am an assistant professor in the Computer Science Department and UMIACS, and an affiliate assistant professor in the Electrical and Computer Engineering Department, at the University of Maryland, College Park. I am also a member of CHESS.

The overarching goal of my research is to learn how to develop more flexible, reliable, and secure software. My research bridges the areas of "systems" and programming languages, in that I have frequently applied or developed language-based technology to solve systems problems, particularly in networking and distributed systems. My current projects are described below. I am fortunate to be a part of the programming language research group here at Maryland.

Here is my current vita and a list of my publications, organized by year and by category.

I received my Ph.D. in Computer and Information Science from the University of Pennsylvania in August 2001, and I spent one year as a post-doctoral associate affiliated with the Information Assurance Institute of the Computer Science Department at Cornell University

Students

I am the research supervisor for a number of students (students with a * are co-advised with Jeff Foster): Some of my students are graduating this year: Some of my students have graduated:
  • Manuel Oriol (postdoc 2004-2005, now with the Chair of Software Engineering, ETH Zurich)
  • Nick Petroni, co-advised with Bill Arbaugh, graduated January 2008. Now at the Center for Computing Sciences, Bowie, MD.
I have also done work with Mike Furr, James Rose and Jaime Spacco.

Research

I am currently working on a number projects.
Ginseng (students: Iulian Neamtiu, Chris Hayden, Eric Hardisty) - a practical system for dynamically updating running software.
SELinks (students: Nik Swamy and Brian Corcoran) - a programming language that supports custom-defined security policies for web applications.
LockSmith (student: Polyvios Pratikakis) - a static analysis tool for proving the absence of race conditions in C programs, requiring few or no annotations.
Path Projection (student: Khoo Yit Phang) - an approach to presenting the results of static analysis tools that accounts for the user's cognitive process. Path projection is a browser-based UI toolkit for presenting, navigating, and querying paths emitted as static analysis results.
CMod (student: Saurabh Srivastava) - A module system for legacy C programs.
Measurement-aware Data Transport (student: Pavlos Papageorgiou). We are exploring ways in which passive and active measurement schemes can be integrated with transport protocols to reduce overhead and improve performance.

Here are a number of currently-inactive projects, but have some shot at restarting:
Runtime Kernel Integrity Monitoring (student: Nick Petroni) - a technique for automatically monitoring the integrity of kernel code/control-flow behavior in an effort to detect rootkits.
Cyclone (student: Nik Swamy) - a dialect of C for more reliable and secure systems programming. A hallmark of Cyclone is type safety combined with a high degree of control over data layout and memory management.
RX (student: Nik Swamy) - a programming language that supports proving the absence of illicit information flows in programs while allowing policies to evolve over time. We are targeting multi-tier web applications.
Transparent Proxies for Java (students: Polyvios Pratikakis and Jaime Spacco). A static analysis for adding or checking proxy-based functionality in Java programs, e.g., to support asynchronous method invocation in which proxies store futures---the results of computations not yet completed.
FindLocks (students: James Rose and Nik Swamy) - a tool for proving the absence of race conditions in Java programs, which uses dynamic trace data to aid a sound static analysis.
MediaNet is a distribution network for streaming data using distributed, adaptive scheduling to provide Quality-of-Service.

Teaching

Professional Activities

I have served (or am serving) on the program committees for

2009 POPL
2008 CCS, CATARS, COORDINATION
2007 PLAS (general and program chair), OOPSLA, COORDINATION, PLDI
2006 FTfJP, PLAS, SPACE, OOPS (part of SAC 2006)
2005 SCOOL, VEE
2004 IWAN, ICPP, FUSE
2003 IWAN, USE
2002 IWAN, USE
2001 IWAN