Craig A. Damon


Home          Schedule      Teaching      Professional      Research      CV          Personal


Download as pdf.

Education

Ph.D., Carnegie Mellon University, Pittsburgh, PA

    August 1994 - August, 2000, School of Computer Science
Advisors: Daniel Jackson and Jeannette Wing
Thesis: Selective Enumeration

Bachelor of Arts, Bowdoin College, Brunswick, ME

September 1976 - May 1979
Majors: Physics and Philosophy

Academic Positions

CIS Department, Vermont Technical College, Williston, VT

Assistant Professor, Fall 2006-present

Department of Computer Science, University of Vermont, Burlington, VT

Assistant Professor, Fall 2000-Spring 2006

Teaching Experience

Vermont Technical College

CIS 4040, Computer Security, Spring 2007,2008,2009,2010,2012
CIS 2010, Computer Organization, Spring 2007,2008,2009,2010,2011,2012
CIS 4712, Senior Project II, Spring 2010,2011,2012
CIS 2720, Software Engineering Project, Spring 2008,2011,2012
CIS 4150, Software Engineering, Fall 2007,2008,2009,2010, 2011
CIS 1120, Intro IST, Fall 2007,2008,2009,2010, 2011
CIS 4140, Human Computer Interfaces, Fall 2009,2010, 2011
CIS 4711, Senior Project I, Fall 2009,2010, 2011
CIS 4210, Computer Graphics, Fall 2010, 2011
INT 1000, Freshman Orientation, Fall 2006,2007,2008,2009,2010
CIS 2320, Software QA and Testing, Fall 2007,2008
CIS 1152, Advanced Web Development, Spring 2008
CIS 2271, Java Programming, Fall 2006,2007
CIS 3080, Computing and Society, Fall 2006
CIS 4050, Compiler Construction, Spring 2007,2008,2009,2010
HIS 1260, History IT, Fall 2006

Department of Computer Science, University of Vermont, Burlington, VT

CS 209, Software Implementation&Verification, Spring 2004,2006
CS 208, Software Requirements&Design, Fall 2003,2005
CS 295/395, Human-Computer Interaction, Spring 2003, 2005 (new course)
CS 100, Object-Oriented Design, Spring 2003, Fall 2005
CS 222, Computer Architecture, Spring 2001, 2002
CS 202, Compiler Construction, Spring 2001, Spring 2002
CS 381, Graduate Research Seminar, Fall 2002
Math 382, (Computer Science) Graduate Research Seminar, Spring 2002 (new course)

CS 205, Software Engineering, Fall 2000, Fall 2001, 2002, 2004 (new course)

CS292, Senior Seminar, Spring 2001

School of Computer Science, Carnegie Mellon University, Pittsburgh, PA

Teaching Assistant, 15-211, Introduction to Computer Science I, Fall 1997
    Instructors: Avrim Blum and Seth Goldstein
Teaching Assistant, 17-654, Analysis of Software Artifacts, Spring 1996
    Instructors: William Scherlis and Jeannette Wing

Harvard University Extension School, Cambridge, MA

Teaching Fellow, E-225, Introduction to C++, Spring 1990
    Instructor: Charles Sawyer

Academic Service

Vermont Technical Collge

 VTC Academic Affairs Committee , 2010-
 Strategic Planning Committee (Vision 2020), 2010
 Scanning Electronic Environment (educational technology planning and review), 2010
 Department Chair, Fall 2006-Summer 2009
Founded new department
Developed two new programs : Software Engineering, Information Technology
 VSC Technology Futures Committee, 2008

Department of Computer Science, University of Vermont, Burlington, VT

 Graduate Program Coordinator, Fall 2001-present
Member, Budget and Policies Committee, Fall 2001-present
Organizer and Founder, Discrete Search Seminar, Spring 2001-present
Member, Search Committee for tenure track CS faculty, Spring 2002
Member, Search Committee for tenure track computational biology faculty, Spring 2002

Member, Search Committee for tenure track CS faculty, Spring 2001

School of Computer Science, Carnegie Mellon University, Pittsburgh, PA

Organizer, Discussion Group on Issues in Computer Science Education, Spring 1997
Student Member, Ph.D. Program Ad Hoc Committee, Summer-Fall 1998

Student Member, Doctoral Review Committee, Fall 1996-Summer 1999

Publications

Refereed Publications

Juergen Dingel, David Garlan, and Craig A. Damon, "Bridging the HLA: A Case Study in Composing Publish-Subscribe Systems", 2002 International Workshop on Distributed Event Based Systems .

 
Daniel Jackson, Somesh Jha, and Craig A. Damon. "Isomorph-free Model Enumeration", ACM Transactions on Programming Languages and Systems, Volume 20, No. 2, March 1998, pp. 302-343.
Craig A. Damon, Somesh Jha, and Daniel Jackson. "Checking Relational Specifications With Binary Decision Diagrams", Proceedings 4th ACM SIGSOFT Conference on Foundations of Software Engineering '96, San Francisco, CA, October 1996, pp. 70-81.

Daniel Jackson and Craig A. Damon. "Elements of Style: Analyzing a Software Design Feature with a Counterexample Detector", IEEE Transactions on Software Engineering, July 1996 Vol. 22, No. 7, pp. 484-495. (selected as a best paper from International Symposium on Software Testing and Analysis, 1996.)

Craig A. Damon and Daniel Jackson. "Efficient Search as a Means of Executing Specifications", Proceedings Second International Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS `96) , Passau, Germany, Lecture Notes in Computer Science, Vol. 1055, Springer Verlag, March 1996, pp. 70-86.

Daniel Jackson, Somesh Jha, and Craig A. Damon. "Faster Checking of Software Specifications by Eliminating Isomorphs", Proceedings of ACM Symposium on Principles of Programming Languages (POPL `96), St. Petersburg Beach, FL, January 1996, pp. 79-90.

Craig Damon. "C++ and COP, A Brief Comparison", Object Oriented Databases and Applications , ed. Rajiv Gupta and Ellis Horowitz, Prentice Hall, 1991.

Craig Damon and Gordon Landis. "Abstract State and Representation in Vbase", Object Oriented Databases and Applications , ed. Rajiv Gupta and Ellis Horowitz, Prentice Hall, 1991.

Joshua Duhl and Craig Damon. "A Performance Comparison of Object and Relational Databases Using the Sun Benchmark", Proceedings, OOPSLA '88 , San Diego, CA, October 1988, Sigplan Notices , Vol. 23, No. 11, pp. 153-163. (reprinted in IEEE Readings in Object Databases, Ed. Ez Nahourii and Fred Petry)

Craig Damon and Gordon Landis. "Storage Types in Vbase", Digest of papers, compcon spring '88 , San Francisco, CA, March 1988, pp. 172-176. (Invited talk) (reprinted in IEEE Readings in Object Databases, ed. Ez Nahourii and Fred Petry)

Technical Reports

Juergen Dingel, David Garlan, and Craig A. Damon. A feasibility study of the HLA bridge. Technical Report CMU-CS-01-103, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, January 2001.
Craig A. Damon. Selective Enumeration (Dissertation), Technical Report CMU-CS-00-151, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, July 2000.

Craig A. Damon, Ralph Melton, Robert J. Allen, Elizabeth Bigelow, James M. Ivers, and David Garlan. Formalizing a Specification for Analysis: The HLA Ownership Properties . Technical Report CMU-CS-99-126, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, January 1998.

Craig A. Damon. Selective Enumeration, A Formal Definition . Technical Report CMU-CS-98-104, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, January 1998.

Daniel Jackson and Craig A. Damon. Nitpick: A Checker for Software Specifications (Reference Manual). Technical Report CMU-CS-96-109, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, January 1996.

Daniel Jackson and Craig A. Damon. Semi-Executable Specifications . Technical Report CMU-CS-95-216, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, November 1995.

Additional Presentations

Panelist

"Experiences with Object-Oriented Programming", OOPSLA 1991, October 1991, Vancouver, BC.
"Architecture of an OODBMS", Object-Oriented Database Workshop, OOPSLA 1988, October 1988, San Diego, CA.

"Implementation Aspects", Object-Oriented Database Workshop, OOPSLA 1987, October 1987, Orlando, Fla.

Research Demonstrations

"Nitpick: A Tool For Interactive Design Analysis". ICSE 97, Boston, MA, May 1997.

Invited Talks

"Selective Enumeration", National Institutes of Standards and Technology (NIST), Gaithersburg, MD, July 1998.
"Selective Enumeration", North Carolina State University, Raleigh, NC, November 1997.

Guest Lecturer

School of Computer Science, Carnegie Mellon University, Pittsburgh, PA
17-652, Methods of Software Development, Fall 1998, Fall 1999
Instructor: Somesh Jha
15-211, Introduction to Computer Science I, Fall 1998
Instructor: Seth Goldstein
Harvard University Extension School, Cambridge, MA
E-225, Introduction to C++, Spring 1991, 1992

Instructor: Charles Sawyer

Industrial Experience

PIEMatrix, Burlington, VT

Chief Technology Officer, October 2006-present
Led design, development and deployment of a Software As A Service project execution tool.
Consultant, Februrary 2006-October 2006
Developed core back end technologies for Software As A Service project execution tool.

Palace Cove Software Services, Chelmsford, MA, Pittsburgh, PA

Consultant, January 1993 - August 1995
Assisted with various projects involving compilers or object databases.

Advanced Technology Group, Progress Software, Nashua, NH

Manager, January 1990 - November 1992
Led R&D investigations. Projects included:
Alternative models of distribution
Direct manipulation development systems
Simplified OO programming support
AI support for programming
Multi-media authoring systems
Multi-language programming environments
End user development environments

Juniper Software, Chelmsford, MA

Founder, President, Chief Technical Officer, November 1988 - December 1989
Designed and implemented Persist, a second generation object oriented database.

Ontologic (now called Ontos), Billerica, MA

Co-founder, Consulting Engineer, September 1985 - November 1988
Co-designed and helped implement Vbase, the first commercial OODBMS.
Areas of responsibility included languages (design and implementation of an OO-extended C), performance, modeling and abstraction mechanisms.

Mosaic Technologies, Billerica, MA

Member of Technical Staff, Languages, November 1983 - August 1985
Designed and implemented an assembler, a Pascal compiler, and an optimizing code generator for the NS32032 chip.

Urban Data Processing, Burlington, MA

 Director of Software Engineering, January 1982 - November 1983
Led development and introduction of two new products. Urban Data was a small software house/service bureau specializing in marketing databases for large financial institutions.
Programmer/Analyst, July 1981 - January 1982
Developed and enhanced geo-marketing programs.

Wright-Pierce Architects and Engineers, Topsham, ME

Application Programmer, August 1979 - March 1981
Developed and maintained engineering and MIS programs.

Selected Tools Developed

PIEmatrix

PIEmatrix Corporation, 2006-present
A SaaS project execution tool, designed to incorporate an entire organization from line workers to executives into the environment.

Ladybug

Carnegie Mellon University, 1998-1999
An automated tool for checking software designs, the successor to Nitpick.

Nitpick

Carnegie Mellon University, 1995-1998
A tool for analyzing formal specifications written in NP, roughly a first-order subset of Z.

Project FutureShock

Progress Software, 1990-1992
An experimental development environment for distributed, graphical, end-user-modifiable applications.

Persist

Juniper Software, 1988-1989
A second-generation object-oriented database.

COP

Ontologic, 1985-1988
An optimizing compiler for an object-extended dialect of C.

Memberships

Association for Computing Machinery
IEEE Computer Society