Advisors: Daniel Jackson and Jeannette Wing
Thesis: Selective Enumeration
September 1976 - May 1979Majors: Physics and Philosophy
Assistant Professor, Fall 2006-present
Assistant Professor, Fall 2000-Spring 2006
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
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
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
Teaching Fellow, E-225, Introduction to C++, Spring 1990
Instructor: Charles Sawyer
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
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
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
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 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)
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.
"Implementation Aspects", Object-Oriented Database Workshop, OOPSLA 1987, October 1987, Orlando, Fla.
Instructor: Charles Sawyer
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.
Consultant, January 1993 - August 1995
Assisted with various projects involving compilers or object databases.
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
Founder, President, Chief Technical Officer, November 1988 - December 1989
Designed and implemented Persist, a second generation object oriented database.
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.
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.
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 1982Developed and enhanced geo-marketing programs.
Application Programmer, August 1979 - March 1981
Developed and maintained engineering and MIS programs.