Michael Hicks

E-mail:
Phone: +1-301-405-9800 (MC2 main number)
Fax: +1-301-405-6707
Office:

4131 A.V. Williams Building

(Quadrant E3, Building 115 in the linked map)

Address:

Dept. of Computer Science

University of Maryland

A.V. Williams Building

College Park, MD 20742



Publications CMSC 330

I am an associate professor in the Computer Science Department and UMIACS at the University of Maryland, College Park. My primary research interest is to develop and evaluate techniques to improve software reliability and security. I am the Director of the Maryland Cybersecurity Center (MC2), and with Jeff Foster I direct PLUM, the lab for Programming Languages research at the University of Maryland. You may find it interesting to read about how we organize our group.

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. During academic 2008 - 2009, I was on sabbatical in Cambridge, England. From September to November I was at Microsoft Research and from December to August 2009 I was at the University of Cambridge Computer Laboratory. I started as director of MC2 in October 2011. 

How fast can you type? (My best so far is 100 wpm.)

Research

I am currently working on a number of projects.
Dynamic Software Updating - how to safely, efficiently, and flexibly update running code.
Language-based Security - means to enforce security policies through programming languages and analyses. A recent exemplar, though currently inactive, is SELinks. A follow-on project Coco, examines how to add coercions to programs automatically, which can be used to include security-checking code, among many other more general constructions. I have also been looking into quantitative information flow security, as exemplified by this paper.
Diamondback Ruby - static and hybrid static/dynamic typing for the Ruby scripting language.

Previously, I was involved with the development of Otter, a symbolic executor for C programs. I also worked on LockSmith, a static analysis tool for proving the absence of race conditions in C programs, and a novel user interface technique applied to it called Path Projection, which is a browser-based UI toolkit for presenting, navigating, and querying paths emitted as static analysis results. I was also a core developer of Cyclone, a safe dialect of C. I have an interest in systems and networking as well, and for a while I worked on measurement-aware data transport. Links to all past projects may be found on the PLUM home page.

Students

Current Students:
Matthew Hammer (postdoc)
Luis Pina (visiting from IST in Portugal)
Aseem Rastogi
Karla Saur*
Piotr Mardziel
Khoo Yit Phang*
Andrew Ruef (undergrad)
James Parker (undergrad)
Ted Smith (undergrad)*

Graduated students:
Chris Hayden* Clear, Correct, and Efficient Dynamic Software Updates
at Washington Post Labs, since June 2012
Justin McCann Automating Performance Diagnosis in Networked Systems
Martin Ma* Improving Program Testing and Understanding via Symbolic Execution
Software Engineer, Amazon, since January 2012
Saurabh Srivastava*Satisfiability-based Program Reasoning and Program Synthesis
Assistant Research Engineer (previously a post-doc), Berkeley, since July 2010
Pavlos Papageorgiou The Measurement Manager: Modular and Efficient End-to-end Measurement Services
Software Engineer, Google, since December 2008
Iulian Neamtiu Practical Dynamic Software Updating
Asst. Prof, UC Riverside, since Fall 2008
Polyvios Pratikakis* Sound, precise, and efficient static race detection for multithreaded programs
Researcher, Institute of Computer Science, FORTH (Crete, Greece), since Spring 2010 (previously a post-doc at CNRS/VERIMAG)
Nikhil SwamyLanguage-based Enforcement of User-defined Security Policies as Applied to Multi-tier Web Applications
Researcher, Microsoft Research, Redmond, since Fall 2008
Nick Petroni** Property-based Integrity Monitoring of Operating System Kernels
Research scientist, IDA/CCS since Spring 2008
Nataliya Guts (postdoc)
Stephen Magill (postdoc) Research scientist, IDA/CCS since August 2011
Manuel Oriol (postdoc) Principal Scientist at ABB Switzerland Ltd. since Fall 2011
Senior Lecturer, University of York (UK), since Fall 2008

* co-advised with Jeff Foster ** co-advised with Bill Arbaugh

I have also worked with Mike Furr, David An, and Elnatan Reisner (advised by Jeff Foster), Adam Bender (advised by Bobby Bhattacharjee), Jaime Spacco (advised by Bill Pugh), and Suriya Subramanian (advised by Kathryn McKinley at UT Austin). I have previously advised Jonathan Turpie (now at Amazon), Brian Corcoran (now at Palantir), Eric Hardisty, and James Rose. I've also worked with post-grad Patrick Jenkins, undergrad Jeff Meister, and high school students, Ted Smith (Walt Whitman High), and Matt McCutchen and Cody Burton (both at Montgomery Blair). Both Ted and Matt are/were undergraduate students in our Department.

Teaching

Professional Activities

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

2013 POPL (ERC), PLDI
2012 POPL (program chair), HotSWUp
2011 TLDI, HotSWUp (co-organizer), OOPSLA
2010 ESOP, PLDI (ERC and tutorials chair), ICFP (PC and local arrangements), PASTE
2009 POPL, IEEE S&P, PLDI SRC
2008 CCS, CATARS, COORDINATION, ISMM (ERC)
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
ATYlogo Support Wikipedia