Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Curriculum Vitae for David Coppit
This is my curriculum vitae. I also have a less detailed resume.
This is the printed version of my CV. For links to papers and software
visit http://www.cs.wm.edu/~coppit/cv.php. For a less detailed resume
visit http://www.cs.wm.edu/~coppit/resume.php.
Department of Computer Science
104A McGlothlin-Street Hall
The College of William and Mary
Williamsburg, VA 23187
757-221-3476
Research Interests
Feature interaction, separation of concerns, software testing,
applied formal methods, component-based software development
Professional Education
Ph.D. Computer Science. The University of Virginia, January 2003.
Graduate school GPA: 3.72. GRE Scores: 780 Quantitative (94%), 650 Verbal
(90%), 720 Analytical (91%), 710 Computer Science (74%).
M.S. Computer Science. The University of Virginia, June 1998.
B.S. Computer Science. The University of Mississippi, June 1995.
Graduated magna cum laude with minors in Economics and Mathematics.
Undergraduate GPA: 3.86 overall, 3.85 in CS, 3.77 in Physics.
B.S. Physics. The University of Mississippi, June 1995.
Positions
November 2007 to present. Research scientist, The Institute for
Computational Genomics (Incogen).
Winter 2003 to present. Assistant Professor of Computer Science, The
College of William and Mary.
Fall 2002 to Winter 2003. Lecturer in Computer Science, The College of
William and Mary.
Summer 1998. Intern at Hewlett-Packard Research Laboratories.
Fall 1996 to Spring 2002. Research Assistant for Kevin J. Sullivan
(graduate student). Department of Computer Science, The University of
Virginia.
Fall 1995 to Spring 1996. Teaching Assistant. Department of Computer
Science, The University of Virginia.
Courses Taught
CSci 780: Advanced Software Engineering, Fall 2003-2004, 2006.
CSci 435/535: Software Engineering. Spring 2003-2007.
CSci 420/520: Software Development with Formal Methods, Fall 2005.
CSci 690: Readings Course: Software Engineering Education, Spring 2004.
CSci 420: CSci 420: Independent Study: Online Journal for the
William and Mary Mason School of Business, Spring 2007.
CSci 420: Independent Study: Reverse-Engineering, Fall 2002.
CSci 420: Independent Study: Motion Capture and 3D Modeling, Spring 2004.
CSci 243: Discrete Structures. Fall 2002.
Research Publications
My name is in bold. Student names are in bold
italics.
Papers in Progress
David Coppit, Meghan
Revelle, Robert Painter and Brian Meckstroth. Managing
Feature Implementation and Interaction Using Software Plans. To be submitted to Transactions on Software Engineering and Methodology.
David Coppit, Kevin J. Sullivan, Joanne Bechta Dugan, and
Yong Ou. A formally-based algorithm for solving dynamic fault
trees.
David Coppit, Robert Painter, and Meghan
Revelle. Spotlight:
A Prototype Tool for Software Plans. In Proceedings of 2007 the
International Conference on Software Engineering, pages 754-757,
Minneapolis, Minnesota, 20-26 May 2007. IEEE. Referreed formal research
demonstration paper.(21% acceptance rate)
David Coppit and Jeixin Lian. yagg: An Easy-To-Use Generator for
Structured Test Inputs. In 20th IEEE/ACM International Conference on
Automated Software Engineering, pages 356-359, Long Beach, California,
7-11 November 2005. (22% acceptance rate)
David Coppit and Jennifer M. Haddox-Schatz. Large team projects in
software engineering courses. In Proceedings of the 36th ACM Technical
Symposium on Computer Science Education, pages 137-141, St. Louis,
Missouri, 23-27 February 2005. (32% acceptance rate)
Kevin Sullivan, Jinlin Yang, David Coppit, Sarfraz Khurshid, and
Daniel Jackson. Software
assurance by bounded exhaustive testing. Proceedings of the
International Symposium on Software Testing and Analysis. Boston,
Massachusetts, 11-14 July 2004. (28% acceptance rate)
David Coppit, Robert R. Painter, and Kevin J.
Sullivan. Shared
semantic domains for computational reliability engineering. In
Proceedings of the International Symposium on Software Reliability
Engineering, pages 168-180, Denver, Colorado, 17-20 November 2003. IEEE.
(21% acceptance rate)
David Coppit and Kevin J. Sullivan. Multiple
mass-market applications as components. In Proceedings of the 22nd
International Conference on Software Engineering, pages 273-82, Limerick,
Ireland, 4-11 June 2000. IEEE. (14% acceptance rate)
David Coppit and Kevin J. Sullivan. Galileo: A
tool built from mass-market applications. In Proceedings of the 22nd
International Conference on Software Engineering, pages 750-3, Limerick,
Ireland, 4-11 June 2000. IEEE. Referreed formal research demonstration
paper.
Joanne Bechta Dugan, Kevin J. Sullivan, and David Coppit.
Developing
a high-quality software tool for fault tree analysis. In Proceedings of
the International Symposium on Software Reliability Engineering, pages
222-31, Boca Raton, Florida, 1-4 November 1999. IEEE.
Kevin J. Sullivan, David Coppit, and Joanne Bechta Dugan.
The Galileo fault tree
analysis tool. In Proceedings of the 29th Annual International Symposium
on Fault-Tolerant Computing, pages 232-5, Madison, Wisconsin, 15-18 June
1999. IEEE.
Ragavan Manian, David Coppit, Kevin Sullivan, and Joanne Bechta
Dugan. Bridging the gap
between systems and dynamic fault tree models. In Annual Reliability and
Maintainability Symposium 1999 Proceedings, pages 105-11, Washington,
D.C., 18-21 January 1999. IEEE.
Kevin J. Sullivan, Jake Cockrell, Shengtong Zhang and David
Coppit, Package-oriented
programming of engineering tools. In Proceedings of 1997 the
International Conference on Software Engineering, pages 616-7, Boston,
Massachusetts, 17-23 May 1997. IEEE. Referreed formal research
demonstration paper.
Robert R. Painter and David Coppit. A Model for Software
Plans. In Proceedings of the First International Workshop on the
Modeling and Analysis of Concerns in Software, pages 14-18, St. Louis,
Missouri, 16 May 2005. (One of three papers selected for extended
presentation.)
David Coppit and Benjamin Cox.
Software
plans for separation of concerns. In Proceedings of the Third AOSD
Workshop on Aspects, Components, and Patterns for Infrastructure Software,
Lancaster, UK, 22 March 2004. IEEE. (55% acceptance rate)
Unrefereed Publications
David Coppit. yagg: Implementation and
Evaluation. Technical Report WM-CS-2005-13, Department of Computer
Science, The College of William and Mary, Williamsburg, Virginia, November
2005.
David Coppit and Kevin J. Sullivan.
Unwrapping. Technical Report
CS-97-17, Department of Computer Science, University of Virginia, July 1997.
Research Presentations
Invited Talks
David Coppit. Using Software Plans to Separate Tangled Features in
Code, University of Delaware, March 15 2006.
David Coppit. Software Plans: A New Approach for Separating
Tangled Concerns. National Institute of Aerospace, May 13 2005.
David Coppit. Practical Techniques for Automated
Specification-Based Testing. Virginia Summit on Secure and Dependable
Computing Systems, April 20-21 2005.
Kevin J. Sullivan, Jake Cockrell, Shengtong Zhang and David
Coppit. "Package-oriented programming of engineering tools," 19th
International Conference on Software Engineering, Boston, Massachusetts, May
1997.
Workshops and Tutorials
Robert R. Painter and David Coppit, "A Model for Software
Plans," In the First International Workshop on the Modeling and Analysis
of Concerns in Software, St. Louis, Missouri, 16 May 2005. (One of three
papers selected for extended presentation.).
David Coppit and Benjamin Cox,
"Software plans for
separation of concerns," Third AOSD Workshop on Aspects, Components, and
Patterns for Infrastructure Software, Lancaster, UK, 22 March 2004.
David Coppit, Joanne Bechta Dugan, and Kevin J. Sullivan, "The
Galileo/ASSAP dynamic fault tree modeling and analysis tool," Dynamic Fault
Tree Workshop, Charlottesville, Virginia, November 2001.
David Coppit, Joanne Bechta Dugan, and Kevin J. Sullivan.
"The Galileo/ASSAP dynamic fault tree
tool," 2nd NASA Probabilistic Risk Assessment Workshop, Charlottesville,
Virginia, June 2001.
David Coppit, Kevin J. Sullivan, and Joanne Bechta Dugan. "The
Galileo/ASSAP dynamic fault tree tool," 1st NASA Probabilistic Risk Assessment
Workshop, Rockville, Maryland, October 2000.
David Coppit and Kevin J. Sullivan.
"Software engineering of
critical software tools". Tutorial presented at the annual Reliability and
Maintainability Symposium, Washington D.C., 18-20 January 1999.
Posters
David Coppit and Jeixin Lian. "yagg: An
Easy-To-Use Generator for Structured Test Inputs". 20th IEEE/ACM
International Conference on Automated Software Engineering, Long Beach,
California, 7-11 November 2005.
External Support
Grants
$328,784, "Software Plans: Multi-Dimensional Separation of Concerns", Air
Force Office of Scientific Research award number FA9550-07-1-0030, 12/1/2007
to 11/30/2009.
Subcontracts
$55,666 University of Virginia, for NASA Grant NAS1-02078. ($37,833
disbursed due to budget shortfalls)
Software Donations
Edison Design Group C/C++ and Java compiler front ends
Carl Scott, Patrick Lowman, and Patrick Maughan. Spring 2007. Independent
study. "Online Journal for the William and Mary Mason School of
Business."
Justin Manweiler. Spring 2004 to Fall 2005. "Unbiased
Random Generation of Structured Test Data."
Michael Weissberger. Spring 2003 to Spring 2004. "Location-based
information dissemination."
Benjamin Cox. Spring 2003 to Spring 2004. Undergraduate honors program.
"Software plans for separation of concerns." Winner of the 1st Annual Park
Undergraduate Research Award.
Aaron Ward. Spring 2004. Independent study. "Motion capture and 3D
modeling."
Dipti Ramnarain. Fall 2002. Independent study. The "CMDB Web Application"
for Capital One of Richmond.
Masters
Brian Meckstroth. Summer 2007 to present. "Supporting Graphical Management of Software Plans in Spotlight."
Jackie Murphy. Summer 2006 to present. "Random generation
of test data for complex input spaces."
Will Thomasson. Spring 2004 to Spring 2005. "An Evaluation of Software
Plans for Software Development."
Meghan Revelle. Spring 2004 to Fall 2005. "Developing Guidelines for
Identifying Concerns".
Jennifer Haddox-Schatz. January 2003 to Spring 2004. "Using Formal
Specifications to Create Effective Assertions."
Ashwin Mundra. Fall 2003 to Spring 2004. "Bounded Exhaustive Verification
With Assertions."
Robert R. Painter. Spring 2002 to Fall 2003. "Toward a Formal General
Intermediate Dependability Modeling Language."
PhD
Meghan Revelle. Fall 2005 to present. "Reverse-Engineering Software Plans
from Legacy Code."
Jiexin Lian. Summer 2004. Helped to develop yagg, software for generation
of structurally complex inputs for testing.
Robert R. Painter. Fall 2003 to Spring 2007. Helped to develop a
code-concerns model for Spotlight, algorithms for merging plans and detecting
merge conflicts, and plan interfaces.
Service
Panels
NSF Panelist 2005
Reviews
Information & Software Technology 2007
Transactions on Reliability 2005
Journal on Educational Resources in Computing 2005
International Journal on Software Tools for Technology Transfer 2005
SIGMETRICS Performance Evaluation Review 2005
Program Committees
The International Conference on Principles and Practices of Programming
In Java, Lisbon, Portugal. June 2007.
Specification and Verification of Component-Based Systems Workshop.
Portland, Oregon. November 2006.
ISSRE 2006 Student Paper Program Committee. Raleigh, North Carolina.
November 2006.
First International Workshop on the Modeling and Analysis of Concerns in
Software. St. Louis, Missouri. May 2005.
PhD Committees
Robert Painter. (Advisor)
Meghan Revelle. (Advisor)
Kenneth Blakely.
Robert Marmorstein.
Radu Siminiceanu. Fall 2003. "Structural Model Checking"
Master's Committees
John Robert Hott. Spring 2007.
Jeff Walter. Spring 2005.
Hongri Jiang. Fall 2003. "Stationary Solution of Large Continuous Time
Markov Chains Using Multilevel Solution Algorithm and Memory-Efficient
Kronecker Operations"
Paul DiPalma. Fall 2003 to Fall 2004.
Departmental Committees
Graduate admissions committee: Fall 2006 to present.
Undergraduate curriculum committee: Fall 2002 to present. Helped to
develop a new required undergraduate course, "Software Development", for the
fall of 2004.
Other Service
Judge for ACM Programming Contest at William and Mary. 2002 and
2003.
Software Written and Maintained
This section reflects my view that software engineering researchers should
actually engineer software. Such software development efforts provide research
insights, as well as case studies for research ideas. Where appropriate, I
have included a summary of the impact of my software.
Spotlight:
An Eclipse-based IDE that implements software plans. A software plan
is a view of a module that pertains to a single relevant concern, abstracting
away irrelevant concerns and simplifying the code. For example, a Java class
can be implemented in terms of multiple plans that either focus on different
features, or integrate features.
Yet another generator generator
(yagg): Given a grammar, generates a program that generates all possible
strings of a user-specified size. This software was developed to support my
research on bounded exhaustive testing.
The Nova dynamic fault tree solver: The first dynamic fault tree solver
which implements a formally-defined dynamic fault tree modeling language. Was
used to help verify the Galileo solver.
grepmail: Searches
mailboxes for messages based on regular expressions and various types of
constraints. Included in the Debian Linux distribution, named application of
the week 11 April 2000 on Linuxcare. Used by the FTC to
scan hundreds of thousands of emails in order to find emails promoting illegal
pyramid scams.
The Galileo dynamic fault tree solver: With Ragavan Manian, helped design
and implement a DFT solver for Galileo. This solver is part of
Galileo/ASSAP, a version of Galileo developed for NASA and now sold by Exelix Corporation.
News Clipper: A file processor
that interprets expressions written in the News Clipper command language,
replacing them with data collected from the Internet. Sold by Binary Research
International in 1999, and Spinnaker Software (a company I founded) from 2000
to 2001. Most significant customer: football.com.
Java Othello: A
web-based Java server and computer player. Helped write the computer player.
Cited in Elements of
Web Design by Darcy DiNucci, Maria Giudice and Lynne Stiles.