Education
PhD 1999, Carnegie Mellon University.
Dissertation with advisor Mary Shaw: Resolving packaging mismatch. Thesis committee: Mary Shaw (chair), David Garlan, Daniel Jackson, Gregor Kiczales (Xerox PARC).
MS, BS with high honors 1993, University of Virginia.
Master's thesis with advisor Randy Pausch: Alice: A rapid prototyping system for three-dimensional, interactive, graphical environments.
Professional Experience
Research
Microsoft Research, Redmond, Washington.
Senior Researcher and manager of the Human Interactions in Programming group. 2006-present. The group's mission combines the disciplines of Human-Computer Interaction and Software Engineering: we study the work practices of software development teams and invent new tools to improve team productivity. My research projects centered on social networking for developers (Codebook); developers' information seeking and knowledge sharing (JotNet); spatial representations of team artifacts (Code Canvas, Code Thumbnails, Software Terrain Maps); and recommendations systems for learning unfamiliar code (Team Tracks).
Researcher in the Software Improvement Group under Jim Larus. Conducted research in program verification: checking preconditions, postconditions and object invariants in C# (Spec#); typestate checking for .NET languages (Fugue); and integrating interface protocol checking with type checking in a safe C language (Vault).
Carnegie Mellon University, Pittsburgh, Pennsylvania.
PhD candidate with advisor Mary Shaw. Classified current techniques for resolving a class of system integration problems, called packaging mismatch, and created a new technique to separate software components' computational and interaction concerns (dissertation research). Created a direct-manipulation-style graphical editor for the UniCon architecture description language. 1993-1999.
Xerox Palo Alto Research Center, Palo Alto, California.
Intern with host Gregor Kiczales. Designed a half-day tutorial on a technique for designing systems that allow their clients principled control over chosen aspects of implementation. Summer 1995.
Digital Equipment System Research Center, Palo Alto, California.
Intern with host Hania Gajewska. Created an email-based answering machine service for the Argo video teleconferencing system. Summer 1994.
Xerox Palo Alto Research Center, Palo Alto, California.
Intern with host Jock Mackinlay. Created two calendar-based, three-dimensional visualizations for the Information Visualizer system. Summer 1993.
University of Virginia, Charlottesville, Virginia.
MS candidate with advisor Randy Pausch. Created the first version of the Alice rapid prototyping system for interactive, three-dimensional graphics, 1992-1993. As an undergraduate, designed and implemented the Simple User Interface Toolkit (SUIT) for creating traditional windows-based user interfaces, 1990-1992, and implemented the Simple Raster Graphics Package (SRGP) for MS-DOS published with the textbook Computer Graphics: Principles and Practice by Foley, van Dam, Feiner, and Hughes, 1990.
Teaching
University of Washington, Computer Science and Engineering Department.
Affiliate professor. Redesigned and taught CSE 503, a graduate course in Software Engineering, with an emphasis on formal methods and software design. The course is one of the qualifying courses for the department's M.S. and PhD. programs. Spring quarter, 2004.
Carnegie Mellon University, Eberly Center for Teaching Excellence.
Eberly Center Teaching Fellow: The Center's Teaching Fellow program has selected eleven accomplished graduate student instructors to advise graduate and undergraduate student instructors on their teaching. Evaluated and provided feedback to student instructors through classroom observation, videotape review sessions, and microteaching workshops. 1998-1999.
Carnegie Mellon University, School of Computer Science.
Computer Science Department Teaching Fellow: The Department's Teaching Fellow program encourages exemplary CS PhD students to pursue significant teaching accomplishments. Designed and taught a graduate course, with Professor Mary Shaw and Shawn Butler, on engineering software for critical system properties like safety, security, and reliability. 1998-1999.
Carnegie Mellon University, School of Computer Science.
Teaching assistant for courses on introductory programming with Professors Robert Harper and Daniel Jackson (Spring 1996) and on software engineering with Professor Daniel Jackson (Spring 1995). Founded and lead a reading group in software engineering (http://www.cs.cmu.edu/Groups/software-eng/serg), 1996-1997.
University of Virginia, Department of Computer Science.
Undergraduate representative to the Computer Science Curriculum Committee. 1992-1993.
Publications
James R. Larus, Thomas Ball, Manuvir Das, Robert DeLine, Manuel Fähndrich, Jon Pincus, Sriram K. Rajamani, and Ramanathan Venkatapathy, Righting Software, in IEEE Software, vol. 21, no. 3, pp. 92–100, Institute of Electrical and Electronics Engineers, Inc., May 2004
Andrew Begel and Robert DeLine, Codebook: Social Networking over Code, in Proceedings of ICSE 09 (New Ideas and Emerging Results), Association for Computing Machinery, Inc., June 2009
Paula M. Bach, Robert DeLine, and John M. Carroll, Designers wanted: participation and the user experience in open source software development, in Proceedings of CHI 09, Association for Computing Machinery, Inc., 2009
Mauro Cherubini, Gina Venolia, and Rob DeLine, Building an Ecologically-valid, Large-scale Diagram to Help Developers Stay Oriented in Their Code, in VLHCC '07: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, IEEE Computer Society, Washington, DC, USA, September 2007
Mauro Cherubini, Gina Venolia, Rob DeLine, and Andrew J. Ko, Let's go to the whiteboard: how and why software developers use drawings, in CHI '07: Proceedings of the SIGCHI conference on Human factors in computing systems, ACM, New York, NY, USA, May 2007
Andrew J. Ko, Robert DeLine, and Gina Venolia, Information Needs in Collocated Software Development Teams, in ICSE '07: Proceedings of the 29th international conference on Software Engineering, IEEE Computer Society, Washington, DC, USA, May 2007
Robert DeLine, Mary Czerwinski, Brian Meyers, Gina Venolia, Steven Drucker, and George Robertson, Code Thumbnails: Using Spatial Memory to Navigate Source Code, in VLHCC '06: Proceedings of the Visual Languages and Human-Centric Computing, IEEE Computer Society, Washington, DC, USA, September 2006
Thomas D. LaToza, Gina Venolia, and Robert DeLine, Maintaining mental models: a study of developer work habits, in ICSE '06: Proceedings of the 28th international conference on Software engineering, ACM, New York, NY, USA, May 2006
Robert DeLine, Mary Czerwinski, and George Robertson, Easing program comprehension by sharing navigation data, in Proceedings of the IEEE Symposium on Visual Languages and Human-Centered Computing, September 2005
Robert DeLine, Amir Khella, Mary Czerwinski, and George Robertson, Towards understanding programs through wear-based filtering, in Proceedings of the ACM Symposium on Software Visualization, May 2005
Robert DeLine, Staying Oriented with Software Terrain Maps, in Workshop on Visual Languages and Computation , 2005
Mike Barnett, Bor-Yuh Evan Chang, Robert DeLine, Bart Jacobs, and K. Rustan M. Leino, Boogie: A Modular Reusable Verifier for Object-Oriented Programs, in FMCO 2005, 2005
Robert DeLine and Manuel Fähndrich, Typestates for objects, in ECOOP 2004 — Object-Oriented Programming, 18th European Conference, Springer Verlag, June 2004
Mike Barnett, Rob DeLine, Manuel Fähndrich, K. Rustan M. Leino, and Wolfram Schulte, Verification of Object-Oriented Programs With Invariants, in Formal Techniques for Java-like Programs (FTfJP), July 2003
Manuel Fähndrich and Robert DeLine, Adoption and Focus: Practical Linear Types for Imperative Programming, in Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM, May 2002
Manuel Fahndrich and Robert DeLine, Adaption and Focus: Practical Linear Types for Imperative Programming, in Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation , Association for Computing Machinery, Inc., November 2001
Robert DeLine and Manuel Fähndrich, Enforcing high-level protocols in low-level software, in Proceedings of the 2001 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM, May 2001
Robert DeLine, Resolving Packaging Mismatch, January 1999
Student Supervision
Miryung Kim, dissertation committee, University of Washington, 2008.
Paula Bach, intern, Penn State University, 2008, 2007.
Medha Umarji, intern, University of Maryland Baltimore County, 2008.
Sushil Bajracharya, intern, University of California Irvine, 2007.
Andrew J. Ko, intern, Carnegie Mellon University, 2006.
Thomas LaToza, intern, Carnegie Mellon University, 2005.
Amir Khella, intern, University of Maryland, 2004.
Donna Malayeri, intern, Carnegie Mellon University, 2003.
Dan Grossman, intern, Cornell University, 2001.
Professional Activities
Organizing Committees
Microsoft Research/University of Washington Summer Institute on the Human Aspects of Software Development, Skamania, Washington, August 2007. Organized with David Notkin (UW), David Hendry (UW), Gina Venolia (MSR), and Andrew Begel (MSR).
Computer-supported Collaborative Work (CSCW) Workshop on Supporting the Social Side of Large-Scale Software Development, Banff, Alberta, Canada, November 2006. Organized with Li-Te Cheng (IBM Research), Anthony Cox (Dalhousie University), Cleidson de Souza (Universidade Federal do Para), Kevin Schneider (University of Saskatchewan), Janice Singer (National Research Council of Canada), Margaret-Anne Storey (University of Victoria), and Gina Venolia (Microsoft Research).
Program Committees
Conferences
International Conference on Software Engineering (ICSE), research track, 2009.
ACM Foundations of Software Engineering (SIGSOFT/FSE), 2008.
IEEE Symposium on Visual Languages / Human-Centered Computing (VL/HCC), 2008.
ACM Computer-Human Interaction (CHI), associate chair, 2008.
Empirical Software Engineering and Measurement (ESEM), short papers, 2007.
Workshops
Workshop on Cooperative and Human Aspects of Software Engineering (CHASE) 2009.
Workshop on Collaboration and Knowledge Sharing in Software Development Teams (SofTEAM) 2009.
Invited Participation
Workshops
Bellairs Workshop on Software Analysis for Recommendation Systems, 2008.
Dagstuhl Seminar on Mining Programs and Processes, 2007.
Bellairs Workshop on Software Navigation Analysis, 2006.
Doctoral Consortium, International Conference on Software Engineering, 1997.
International Software Architecture Workshop, San Francisco, California, 1996.
Component-Based Software Development Workshop, Redmond, Washington, 1996.
Open Implementation Workshop, Gleneden Beach, Oregon, 1994.
Public Technology Demonstrations
DARPA Demo Days, Baltimore, Maryland, 1998.
DARPA Demo Days, Seattle, Washington, 1997.
Awards
Best paper award, IEEE Symposium on Visual Languages and Human-Centered Computing, 2005.
Best paper award, ACM Conference on Programming Language Design and Implementation, 2001.
Carnegie Mellon University, Eberly Center for Teaching Excellence, Teaching Fellow, 1998.
University of Virginia. Louis T. Rader Award for Computer Science, 1991.
Tau Beta Pi, 1990.
University of Virginia. Rodman Scholar, 1988.
National Merit Scholar, 1988.



