Curriculum Vitae

John I. Moore, Jr.
October 2020


John Moore  
Professor Emeritus    
Cyber and Computer Sciences   Cell Phone: 843-906-7887
The Citadel   Email:
Charleston, SC  29409    



B.S. Mathematics The Citadel
M.S. Computer Science    Georgia Institute of Technology
Ph.D.    Mathematics University of South Carolina


Professional Societies

Institute for Electrical and Electronics Engineers (IEEE)

Areas of Expertise

  • Object-oriented analysis and design: Unified Modeling Language (UML), design patterns
  • Java and Java-based technologies: JDBC, Servlets, JSP, JavaMail, Tomcat, etc.
  • Mobile Applications: Android
  • Web development: HTML, XHTML, CSS, JavaScript
  • Relational database design/development: SQL, normalization, Oracle, PL/SQL, MySQL, Apache Derby
  • Web Services: REST, JSON
  • Programming languages: Java, Kotlin, JavaScript, C/C++, Visual Basic, Haskell, FORTRAN
  • Unix and Windows platforms: Unix, Linux, Bash, Shell Scripts, Windows 10, command (batch) files
  • Design/implementation of programming language compilers and translators
  • Applied mathematics: statistics, operations research, mathematical modeling, computer simulation


Experience Summary

I have a wide range of experience in both industry and academia, with specific expertise in the areas of object-oriented technology, software engineering, and applied mathematics. For more than three decades I have designed and developed software using relational databases and several high-order languages. In addition, I have developed and taught numerous academic courses and industrial seminars on advanced topics in computer science, training hundreds of software professionals throughout the United States and Canada.


Employment Summary

  • August 2003-May 2020: The Citadel, Charleston, South Carolina.

    Professor Emeritus, Department of Cyber and Computer Sciences, May 2020-present
    Professor, Department of Cyber and Computer Sciences, November 2018-May 2020
    Interim Department Head, Department of Cyber and Computer Science, November 2018-June 2019
    Professor, Department of Mathematics and Computer Science, August 2003-November 2018
    Department Head, Department of Mathematics and Computer Science, August 2003-June 2013

    As Department Head, provided academic and administrative leadership for the department and served as liaison between the department and the college administration. As Professor, taught a variety of courses in both mathematics and computer science including Data Structures and Algorithms, Database Design, Enterprise Java, Developing Mobile Applications (Android), Programming Languages, Compiler Design, Object-Oriented Design Patterns, and Discrete Mathematics.

  • March 1993-present: Founder and Principal Consultant, SoftMoore Consulting, Rockville, Maryland and Charleston, South Carolina.

    Provide a wide range of advanced software consulting, training, and software development services specializing in object-oriented and internet/web technologies. Nationwide customers include Computer Sciences Corporation, First Call (Thomson Financial), The Analytic Sciences Corporation, Denro, SAIC, Autodesk, COMSAT, Manugistics, Bookspan (Bertelsmann), The MageLang Institute/jGuru, SELECT Software Tools, TTC, Bell South, Montgomery Ward, the Software Productivity Consortium, Blue Cross Blue Shield, and GE Information Services.

  • September 1985-May 1996: Lecturer (part time), Whiting School of Engineering, Johns Hopkins University.

    Taught graduate-level courses in object-oriented technology and software engineering as part of a professional master’s degree program in computer science. Introduced several new courses into the computer science curriculum.

  • January 1983-March 1990 and September 1990-March 1993:Vitro Corporation, Silver Spring, Maryland.

    Principal Software Engineer, April 1992-March 1993
    Director, Corporate MIS, September 1990-April 1992
    Principal Software Engineer, June 1984-March 1990
    Mathematician, Section Leader, January 1983-June 1984

    Held various positions of increasing responsibility. Provided planning and technical leadership for the implementation of information systems involving corporate databases, local area networks, and information system architecture. Provided technical support for software business development initiatives including proposal development and technical marketing presentations.

  • March 1990-September 1990: Division Director, Software Engineering and Ada Technology, Advanced Computer Systems, Inc. (now ANSTEC), Fairfax, Virginia.

    Provided technical leadership on software-intensive contracts with NASA and DOD customers.

  • August 1976-December 1982: Department of Mathematics and Computer Science, The Citadel, Charleston, South Carolina.

    Associate Professor (with tenure), August 1980-December 1982
    Director of the Computer Science Laboratory, August 1980-December 1982
    Assistant Professor, August 1976-August 1980

    Taught full range of courses in mathematics and computer science. Provided leadership for the establishment and operation of the Computer Science Laboratory to support academic instruction.


Software Development Experience

  • Developed software in Java and Oracle’s PL/SQL to support statistical analysis of sales data and forecasting of future sales using linear regression techniques.
  • Designed and developed software for several web-based e-commerce and internet/intranet applications using the Java programming language, XML, HTML, JavaScript, Java Server Pages (JSP), Java Servlets, JavaMail, and JDBC with both Oracle and Apache Derby databases. Also developed numerous stored procedures and database triggers in Oracle’s PL/SQL language.
  • Provided object-oriented analysis consulting and project mentoring for a large international project. Developed Java prototype of a rule-based pricing engine for marketing incentives.
  • Provided object-oriented mentoring on a sales automation project for a large US company.
  • Served as a software consultant for object-oriented design and Ada on a project for the US Air Force involving ground data analysis of satellite sensor software.
  • Served as architect and lead developer for a corporate software re-engineering environment based on modern language translation technology and a repository approach to environment integration. Project software was developed in REFINE and C++ in a distributed environment using Sun workstations running Unix.
  • Served as principal designer for a corporate information system based on Novell networks and a client/server architecture using Oracle RDBMS and Paradox clients.
  • Designed and developed the statistical approach and all related Pascal software for the analysis of results in NASA's drug testing program.
  • Served as project leader for the Ada Design Tools Project, with overall responsibility for prototyping and developing tools to assist in the design of Ada software. Developed in Pascal, C, and Ada using an object-oriented approach, these tools supported both graphical and textual representations of software architecture. Designed and implemented a reusable software component in Ada for automatically laying out a directed graph in the x, y-plane.
  • Designed and developed a highly efficient inference engine for processing rule-based expert systems using backward chaining. Originally developed in Pascal, this inference engine was used in several projects including the implementation of a powerful expert system that performs fault diagnosis on a programmable automatic cable tester.
  • Developed several FORTRAN programs to support forestry planning and research, with primary emphasis on statistical analysis software, graphic display of data, and laboratory information systems.
  • Served as an expert witness on mathematical modeling and developed software in FORTRAN for analysis of client’s data.
  • Developed a computer program in BASIC to track the status of software installed onboard Navy ships.
  • Developed software in BASIC to support the Charleston AFB Youth Center activities of registration, record keeping, and scheduling.


Related Employment Experience

  • Served as an expert witness on a software copyright case.
  • Provided leadership and technical support for numerous software business development initiatives including proposal development, “red team” review, preparation of capability summaries, and technical marketing presentations to potential customers and business partners.
  • Developed an Ada implementation plan for the USAF Tactical Air Command.
  • Performed and documented a comparative analysis of programming languages and made corresponding recommendations for developing a NATO AAW system.
  • Provided direction in the development and formulation of software engineering policies, procedures, and methodology as part of a corporate software engineering program.


Publications and Contributed Papers

  1. John I. Moore, Jr., Graphs and Partially Ordered Sets, Ph.D. Thesis, University of South Carolina, 1975. (William T. Trotter, Jr., Advisor)
  2. William T. Trotter, Jr. and John I. Moore, Jr., “The Dimension of a Tree is at Most Three,” presented at the national meeting of the American Mathematical Society in Washington, DC, 1975.
  3. John I. Moore, Jr., “A Characterization of Δ-Representable Sets,” presented at the Southeastern Section Meeting of the Mathematical Association of America in Mobile, Alabama, 1975.
  4. William T. Trotter, Jr. and John I. Moore, Jr., “Some Theorems on Graphs and Posets,” Discrete Mathematics 15 (1976), 79-84.
  5. William T. Trotter, Jr., John I. Moore, Jr., and David P. Sumner, “The Dimension of a Comparability Graph,” Proceedings of the American Mathematical Society 60 (1976), 35-38. Presented at the national meeting of the American Mathematical Society in San Antonio, Texas, 1976.
  6. William T. Trotter, Jr. and John I. Moore, Jr., “Characterization Problems for Graphs, Partially Ordered Sets, Lattices, and Families of Sets,” Discrete Mathematics 16 (1976), 361-381.
  7. William T. Trotter, Jr. and John I. Moore, Jr., “The Dimension of Planar Posets,” Journal of Combinatorial Theory (B) 22 (1977), 54-67.
  8. John I. Moore, Jr., “Interval Hypergraphs and D-Interval Hypergraphs,” Discrete Mathematics 17 (1977), 173-179.
  9. David P. Sumner and John I. Moore, Jr., “Domination Perfect Graphs,” Notices of the American Mathematical Society 26 (1979), A-569.
  10. John I. Moore, Jr. and James W. Urscheler, “An Application of Dynamic Programming to a Problem in Forestry,” presented at the Southeastern Section meeting of the Mathematical Association of America in Birmingham, Alabama, 1981.
  11. John I. Moore, Jr. and Harold E. Wefald, “Efficient Data Structures for Expert Systems,” Vitro Technical Journal 6 (Fall 1987), 62-71. Portions presented as part of a panel discussion on Artificial Intelligence and Ada, Ada Expo, 1988.
  12. Jeffrey White, John I. Moore, Jr., et al., “Final Project Report for the Design Tools Project,” Software Productivity Consortium Technical Report SPC TR 88 018 (105 pages), 1988.
  13. John I. Moore, Jr., “Sorting 100,000 Integers with Turbo Pascal,” TUG Lines 31 (June/July 1989), 10-16.
  14. John I. Moore, Jr., “Server-side Java: Software engineering on Internet time,” InfoWorld (originally appeared in JavaWorld), February 21, 2000. (
  15. John I. Moore, Jr., “Enums in Java – One More Time,” (O’Reilly), April 23, 2003. (
  16. John I. Moore, Jr., “BadInputFilter revisited,” InfoWorld (originally appeared in JavaWorld), November 14, 2013. (
  17. John I. Moore, Jr., “Java programming with lambda expressions,” InfoWorld (originally appeared in JavaWorld), January 29, 2014. (
  18. John I. Moore, Jr., “A case for keeping primitives in Java,” InfoWorld (originally appeared in JavaWorld), May 6, 2014. (
  19. John I. Moore, Jr., “Iterating over collections in Java 8,” InfoWorld (originally appeared in JavaWorld), August 7, 2014. (
  20. Ronald J. Hayne and John I. Moore, Jr., “Evolution of the Instructional Processor,” Computers in Education Journal, ASEE, Vol. 6, No. 4, October–December 2015, pp. 46-53. Presented at the 2015 ASEE Annual Conference and Exposition in Seattle, Washington, June 2015.
  21. John I. Moore, Jr., “GraphLib: An open source Android library for graphs,” InfoWorld (originally appeared in JavaWorld), September 28, 2017. (
  22. Evangelista, M.*, Bornstein, D., Overton, A.*, Li, B., Moore, J., Solce, C., Gaita, D., Sieverdies, J., Objectively assessing sleep patterns of cadets at a senior military college: Results from a pilot study, student research project presented at the Summer Undergraduate Research Symposium, The Citadel, Charleston, SC. 2018.
  23. John I. Moore, Jr., “Why Kotlin? Eight features that could convince Java developers to switch,” InfoWorld (originally appeared in JavaWorld), June 11, 2019. (
  24. John I. Moore, Jr., Introduction to Compiler Design: An Object-Oriented Approach Using Java®, ISBN 978-1734139105, 2019. (see
  25. John I. Moore, Jr., Introduction to Compiler Design: An Object-Oriented Approach Using Java® (Second Edition), ISBN 978-1734139112, 2020. (see
  26. John I. Moore, Jr., Introduction to Compiler Design: An Object-Oriented Approach Using Kotlin™, ISBN 978-1734139150, 2020. (see


Other Professional Activities

  1. Director of a regional conference on Discrete Mathematical Models with principal speaker Dr. Fred S. Roberts, The Citadel, 1978.
  2. Director of a regional conference on Mathematical Models for Energy and Public Policy with Principal Speaker Dr. Robert M. Thrall, The Citadel, 1980.
  3. Developed and presented a 3-day seminar on Operations Research Techniques in Forest Management Planning, Westvaco, 1982.
  4. Invited speaker, “Network Models in Operations Research,” Department of Biometry, Medical University of South Carolina, 1982.
  5. Member of the IEEE Working Group on Ada as a Design Language, 1984 1985.
  6. Chairman of the 1985 Washington Ada Symposium sponsored by ACM.
  7. “Report on the 1985 Washington Ada Symposium,” ACM SIGAda Ada Letters, Volume V, Issue 3-6, November 1985, pp. 16-18.
  8. Member of both Program and Steering Committees of the 1986 Washington Ada Symposium.
  9. Member of Organizing Committee and Moderator of a Panel Discussion on Ada for Artificial Intelligence, AIDA 87, the Third Annual Conference on Ada and Artificial Intelligence, 1987.
  10. Invited speaker, “The Impact of Technological Advances on Software Productivity,” Second National Conference on Software Productivity, sponsored by DPMA, 1988.
  11. Program Chairman, AIDA 88, Conference on Artificial Intelligence and Ada, sponsored by George Mason University and the Software Productivity Consortium, 1988.
  12. Invited speaker, “Making the Future Happen: An Industry Perspective,” SOFTCON '89, sponsored by the US Army/CECOM, 1989.
  13. Developer/instructor for professional development seminar, “Advanced Ada,” sponsored by the Washington, DC Chapter of ACM, 1989.
  14. Developer/instructor for professional development seminar, “Ada Software Development: A Software Engineering Approach,” sponsored by Johns Hopkins University, 1987-1989.
  15. Invited speaker, “Transitioning to Object Technology,” SPC Member Forum, Software Productivity Consortium, 1996.
  16. Developer/instructor for professional development seminar, “Overview of Object-Oriented Analysis and Design,” sponsored by the Washington, DC Chapter of ACM, 1994-1999.
  17. Developer/instructor for professional development seminar, “XML and Java™ Technology,” sponsored by the Washington, DC Chapter of ACM (2000). Portions of this seminar were also presented at a meeting of the Washington Object Analysis and Design User’s Group (2000) and at talks given at the College of Charleston (2002) and The Citadel (2004).
  18. “Paradoxes in Mathematics” presented at a meeting of The Citadel Mathematics Club (2005).
  19. Developer/instructor for SoftMoore Consulting Object-Oriented Training Curriculum.
    • Object-Oriented Programming with C++ 1993-2009.
    • Object-Oriented Analysis and Design, 1993-2013.
    • Enterprise Java, 2006-2015.