Publications
João Paulo Oliveira Marum, H. Conrad Cunningham, J. Adam Jones, and Yi Liu. Writing the Dynamically Coalescing Reactive Chains design pattern. Paper in work.
Hazim Shatnawi and H. Conrad Cunningham. Comparing database representations of feature models (tentative). Paper planned.
H. Conrad Cunningham and TBD. Toward a function generalization pattern language (tentative), Paper planned.
Yi Liu and TBD. Paper on secure design pattern methodology. Paper planned.
H. Conrad Cunningham. Exploring Languages with Interpreters and Functional Programming. 470-page draft textbook in work 2016–present.
I used drafts as the textbooks for the Fall 2017 and 2018 offerings of Organization of Programming Languages (CSci 450). It can also be used for Functional Programming (CSci 555) or similar courses.
H. Conrad Cunningham. Nothing Bad Happens: Safe and Secure Programming with Typed Python, 150-page draft textbook (with the older title “Multiparadigm Programming with Python 3”) in work 2018–present.
I used the 2018 partial draft to support a Python-based offering of Multiparadigm Programming (CSci 556), but I intend the full textbook to support a future Safe and Secure Programming course.
H. Conrad Cunningham. Multiparadigm Programming using Scala, possible textbook based on course notes from Scala-based courses on functional and multiparadigm programming during 2008-10 period, planned for 2021 or later.
Hazim Shatnawi and H. Conrad Cunningham. Encoding feature models using mainstream JSON technologies. In Proceedings of ACMSE 2021, Virtual Event, USA, 8 pages, ACM, April 2021.
João Paulo Oliveira Marum, H. Conrad Cunningham, and J. Adam
Jones Unified
library for dependency-graph reactivity on Web and desktop user
interfaces. In Proceedings of ACMSE 2020, Tampa, Florida,
USA (Virtual Event because of COVID-19 pandemic), 8 pages, ACM, April
2020.
— ADDENDUM
Hazim Shatnawi and H. Conrad Cunningham. Automated analysis and construction of feature models in a relational database using Web forms. In Proceedings of ACMSE 2020, Tampa, Florida, USA (Virtual Event because of COVID-19 pandemic), 6 pages, ACM, April 2020.
João Paulo Oliveira Marum, J. Adam Jones, and H. Conrad Cunningham. Dependency graph-based reactivity for virtual environments. In Proceedings of the IEEE VR 2020 Workshop on Software Engineering and Architectures for Interactive Systems (SEARIS), Atlanta, Georgia, USA (Virtual Event because of COVID-19 pandemic), 8 pages, IEEE, March 2020.
João Paulo Oliveira Marum, J. Adam Jones, and H. Conrad Cunningham. Towards a reactive game engine. In Proceedings of the IEEE SoutheastCon 2019, Huntsville, Alabama, USA, 8 pages, IEEE, April 2019.
Hazim Shatnawi and H. Conrad Cunningham. Mapping SPL feature models to a relational database. In Proceedings of ACMSE 2017, Kennesaw, Georgia, USA, 8 pages, ACM, April 2017.
João Paulo Oliveira Marum, J. Adam Jones, and H. Conrad Cunningham. Functional reactive Augmented Reality: Proof of concept using an extended augmented desktop with swipe interaction. In Proceedings of ICAT-EGVE 2016, Little Rock, Arkansas, USA, 2 pages, Eurographics Association, December 2016.
H. Conrad Cunningham, Yi Liu, and Jingyi Wang. Designing a flexible framework for a table abstraction. Chapter 13 in Y. Chan, J. Talburt, and T. Talley, editors, Data Engineering: Mining, Information, and Intelligence, pp. 279-314, Springer, 2010.
H. Conrad Cunningham and James C. Church. Multiparadigm programming in Scala. In Journal of Computing Sciences in Colleges, Vol. 24, No. 5, pp. 99-100, CCSC, May 2009. — PRESENTATION
Pallavi Tadepalli and H. Conrad Cunningham. Incrementally distributed B+ Trees: Approaches and Challenges. In Proceedings of the ACMSE 2009, Clemson, South Carolina, USA, 6 pages, ACM, March 2009.
H. Conrad Cunningham and Yi Liu. Hot spots, patterns, and contracts: An exploration of software framework design. Journal of Computing Sciences in Colleges, Vol. 23, No. 4, pp. 105-7, CCSC, April 2008.
H. Conrad Cunningham. A little language for surveys: Constructing an internal DSL in Ruby. In Proceedings of ACMSE 2008, Auburn, Alabama, USA, 6 pages, ACM, March 2008. — PRESENTATION
V. Amaral, L. Veiga, L. Marcelino, and H. C. Cunningham, editors. Proceedings of the 5th International Conference on the Principles and Practice of Programming in Java (PPPJ 2007), Lisbon, Portugal, 257 pages, ACM, September 2007.
H. Conrad Cunningham. Reflexive metaprogramming in Ruby. Journal of Computing Sciences in Colleges, Vol. 22, No. 5, pp. 145-146, CCSC, May 2007. — PRESENTATION
Yi Liu and H. Conrad Cunningham. Java in the box: Implementing the BoxScript component language. In Proceedings of ACMSE 2007, Winston-Salem, North Carolina, USA, pp. 47-52, ACM, March 2007. — PRESENTATION
H. Conrad Cunningham, Yi Liu, and Cuihua Zhang. Teaching framework design using classic problems. Journal of Computing Sciences in Colleges, Vol. 21, No. 5, pp. 10-12, CCSC, May 2006. — PRESENTATION
H. Conrad Cunningham, Yi Liu, and Pallavi Tadepalli. Framework design using function generalization: A binary tree traversal case study. In Proceedings of the ACMSE 2006, Melbourne, Florida, USA, pp. 312-318, ACM, March 2006. — PRESENTATION
H. Conrad Cunningham, Yi Liu, and Cuihua Zhang Using classic problems to teach Java framework design. Science of Computer Programming, Special Issue on Principles and Practice of Programming in Java (PPPJ 2004), Vol. 59, No. 1-2, pp. 147-169, Elsevier, January 2006. doi: 10.10.16/j.scico.2005.07.009.
H. Conrad Cunningham and Pallavi Tadepalli. Using function generalization to design a cosequential processing framework. In Proceedings of the 39th Hawaii International Conference on System Sciences, Kawai, Hawaii, USA, 10 pages, IEEE, January 2006. — PRESENTATION
H. Conrad Cunningham, Pallavi Tadepalli, and Pamela Lawhead. Introduction to computer science. Chapter 3 in Marni R. Kendricks and Maxine U. Woolsey, editors, Introduction to Engineering: A Project-Based Text, University of Mississippi, School of Engineering, 2005.
H. Conrad Cunningham, Pallavi Tadepalli, and Yi Liu. Secrets, hot spots, and generalization: Preparing students to design software families. Journal of Computing Sciences in Colleges, Vol. 20, No. 6, pp. 118-124, CCSC, June 2005.
Yi Liu and H. Conrad Cunningham. BoxScript: A component-oriented language for teaching. In Proceedings of ACMSE 2005, Kennesaw, Georgia, USA, Vol. 1, pp. 349-354, ACM, March 2005.
Yi Liu and H. Conrad Cunningham. Java components in BoxScript. In Proceedings of the ALAR Conference on Applied Research in Information Technology, Acxiom Laboratory for Applied Research, University of Arkansas at Little Rock, pp. 87-94, February 2005.
Pallavi Tadepalli and H. Conrad Cunningham. Using function generalization with Java to design a cosequential framework. In Proceedings of the ALAR Conference on Applied Research in Information Technology, Acxiom Laboratory for Applied Research, University of Arkansas at Little Rock, pp. 95-101, February 2005.
H. Conrad Cunningham, Yi Liu, and Pallavi Tadepalli. Toward specification and composition of BoxScript components. In Proceedings of the Workshop on Specification and Verification of Component-Based Systems (SAVCBS), Newport Beach, California, USA, pp. 114-117, November 2004. — POSTER
H. Conrad Cunningham, Yi Liu, and Cuihua Zhang. Using the divide and conquer strategy to teach Java framework design. In Proceedings of the 3rd International Conference on Principles and Practice of Programming in Java (PPPJ), Las Vegas, Nevada, USA, pp. 40-45, ACM, June 2004. — [PRESENTATION]](<papers/DivConq_Presentation_Final.ppt>)
H. Conrad Cunningham, Cuihua Zhang, and Yi Liu. Keeping secrets within a family: Rediscovering Parnas. In Proceedings of the Conference on Software Engineering Research and Practice (SERP), Las Vegas, Nevada, USA, pp. 712-718, CSREA Press, June 2004. — PRESENTATION
H. Conrad Cunningham, Yi Liu, and Hui Xiong. Lazy functional programming in Haskell. In Proceedings of the Mid-South College Computing Conference, Little Rock, Arkansas, USA, pp. 78-80, CCSC, April 2004. — PRESENTATION.
Yi Liu, H. Conrad Cunningham, and Hui Xiong. The architectural design of FRUIT: A Family of Retargetable User Interface Tools. In Proceedings of the International Conference on Software Engineering Research and Practice (SERP), Las Vegas, Nevada, USA, pp. 641-647, CSREA Press, June 2004. — PRESENTATION
Yi Liu and H. Conrad Cunningham. Mapping component specifications to Enterprise JavaBeans implementations. In Proceedings of ACMSE 2004, Huntsville, Alabama, USA, pp. 177-182, ACM, April 2004. — PRESENTATION
Pallavi Tadepalli and H. Conrad Cunningham. JavaCHIME: Java Class Hierarchy Inspector and Method Executer. In Proceedings of ACMSE 2004, Huntsville, Alabama, USA, pp. 152-157, ACM, April 2004. — PRESENTATION
H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu. Component software: A new software engineering course. Journal of Computing Sciences in Colleges, Vol. 18, No. 6, pp. 10-21, CCSC, June 2003. — PRESENTATION
Tao Zhang, H. Conrad Cunningham, and Jian Li. FAR: An editing tool for standard information generation. In Proceedings of the International Conference on Software Engineering Research and Practice (SERP’03), Las Vegas, Nevada, USA, pp. 529-532, CSREA Press, June 2003.
Yi Liu and H. Conrad Cunningham. Software component specification using design by contract. In Proceedings of the SouthEast Software Engineering Conference, Tennessee Valley Chapter, National Defense Industry Association, Huntsville, Alabama, USA, 8 pages, April 2002. — PRESENTATION
H. Conrad Cunningham and Jingyi Wang. Applying Software Patterns in the Design of a Table Framework. In Proceedings of the Conference on Applied Research in Data Engineering, Acxiom Data Engineering Laboratory, University of Arkansas at Little Rock, 7 pages, November 2001. — PRESENTATION
H. Conrad Cunningham and Jingyi Wang. Building a layered framework for the table abstraction. In Proceedings of the ACM Symposium on Applied Computing, Las Vegas, Nevada, USA, pp. 668-674, ACM, March 2001. — PRESENTATION
Sudharshan Vazhkudai and H. Conrad Cunningham. A reusable framework for distributed decision-making protocols. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’2000), Las Vegas, Nevada, USA, pp. 867-873, CSREA Press, June 2000.
H. Conrad Cunningham, Gruia-Catalin Roman, and Jerome Y. Plun. Assertional reasoning about dynamic systems. In Parallel Computations: Paradigms and Applications, A. Zomaya, editor, International Thomson Computer Press, 1996.
Pamela B. Lawhead and H. Conrad Cunningham. Qualitative decision making in software design. In Proceedings of the Quality Conference ’95, American Society of Quality Control, San Jose, California, USA, April 1995.
H. Conrad Cunningham, Viren R. Shah, and Shu Shen. Devising a Formal Specification for an Elevator Controller. Technical Report UMCIS-1994-10, Department of Computer and Information Science, University of Mississippi, Oxford, Mississippi, USA, 14 pages, September 1994.
H. Conrad Cunningham. Formal methods in functional programming. In Proceedings of the Formal Methods Workshop, Hamilton College, Clinton, New York, USA, National Science Foundation, August 1994.
Rose F. Gamble, Gruia-Catalin Roman, William E. Ball, and H. Conrad Cunningham. Applying formal verification methods to pure rule-based programs. International Journal of Expert Systems, Vol. 7, No. 3, pp. 203-237, Elsevier, 1994.
H. Conrad Cunningham and Yinxiu Cai. Specification and refinement of a message router. In Proceedings of the Seventh International Workshop on Software Specification and Design, Redondo Beach, California, USA, pp. 20-29, IEEE, December 1993.
Gruia-Catalin Roman and H. Conrad Cunningham. Reasoning about synchronic groups In Research Directions in High-level Parallel Programming Languages, LNCS #574, pp. 21-38, Springer, 1992.
H. Conrad Cunningham and Jan Tijmen Udding. “Succeedings” of the Sixth International Workshop on Software Specifications and Design: Concurrency and Distribution. ACM SIGSOFT Software Engineering Notes, Vol. 17, No. 1, pp. 46-7, ACM, January 1992.
H. Conrad Cunningham. Swarming over the software barrier. In Proceedings of the Sixth International Workshop on Software Specification and Design, Como, Italy, pp. 233- 6, IEEE, October 1991.
Gruia-Catalin Roman and H. Conrad Cunningham. Mixed programming metaphors in a shared dataspace model of concurrency. IEEE Transactions on Software Engineering, Vol. 16, No. 12, pp. 1361-73, IEEE, December 1990.
H. Conrad Cunningham and Gruia-Catalin Roman. A UNITY-style programming logic for shared dataspace programs. IEEE Transactions on Parallel and Distributed Systems, Vol. 1, No. 3, pp. 365-76, IEEE, July 1990.
Gruia-Catalin Roman and H. Conrad Cunningham. The synchronic group: A concurrent programming concept and it’s proof logic. In Proceedings of the 10th International Conference on Distributed Computing Systems, Paris, France, pp. 142- 9, IEEE, May 1990.
H. Conrad Cunningham. The Shared Dataspace Approach to Concurrent Computation: The Swarm Programming Model, Notation, and Logic. Doctor of Science Dissertation, Washington University, Department of Computer Science, St. Louis, Missouri, August 1989.
Gruia-Catalin Roman and H. Conrad Cunningham. A shared dataspace model of concurrency–Language and programming implications. In Proceedings of the 9th International Conference on Distributed Computing Systems, Newport Beach, California, USA, pp. 270-9, IEEE, June 1989.
H. Conrad Cunningham. Concurrent programming in the shared dataspace paradigm. In Proceedings of the 1989 Computer Science Conference, Louisville, Kentucky, USA, p. 419, ACM, February 1989.
Gruia-Catalin Roman, H. Conrad Cunningham, and Michael E. Ehlers. A shared dataspace language supporting large-scale concurrency. In Proceedings of the 8th International Conference on Distributed Computing Systems, San Jose, California, USA, pp. 265-72, IEEE, June 1988.
Gruia-Catalin Roman, Michael E. Ehlers, H. Conrad Cunningham, and R. Howard Lykins. Toward comprehensive specification of distributed systems. In Proceeding of the 7th International Conference on Distributed Computing Systems, Berlin, Germany, pp. 282-9, IEEE, September 1987.
Gruia-Catalin Roman, R. Howard Lykins, Robert K. Israel, H. Conrad Cunningham, and Michael E. Ehlers. Long-Range Technological Impact on Computer-Aided Product Development at DMA. RADC-TR-86-49, Rome Air Development Center, Griffiss AFB, New York, 1986.
H. Conrad Cunningham. Sandwich DSL Case Study (Scala) (developed 2013–19), May 2019.
Sandwich DSL Case Study (Haskell) (developed 2013–18), March 2018.
H. Conrad Cunningham. Modular Design (developed 2015–19), March 2019.
H. Conrad Cunningham. Notes on Data Abstraction (developed 1996-2019), February 2019.
Data Abstraction: Java Supplement (developed 1996–2018), September 2018.
H. Conrad Cunningham. Notes on Scala for Java Programmers (developed 2016–2019), February 2019.
H. Conrad Cunningham. Object-Oriented Software Development (developed 1996–2019), February 2019.
H. Conrad Cunningham. Type Systems Concepts (developed 2018–19), February 2019.
H. Conrad Cunningham. Exam DSL Project, November 2018.
H. Conrad Cunningham. Wally World POP Project, October 2018.
H. Conrad Cunningham. Domain-Specific Languages (developed 2014–18), April 2018.
H. Conrad Cunningham. Introduction to Patterns (developed 1998–2018), February 2018.
H. Conrad Cunningham. Pipes and Filters Architectural Pattern (developed 1998–2018), February 2018.
H. Conrad Cunningham. Concurrent Programming Introduction (developed 1997–2016), August 2016.
H. Conrad Cunningham. Notes on Functional Programming with Haskell, partial update of Technical Report UMCIS–1995–01, December 2014.
The original version used the Gofer interpreter, which supported a dialect of Haskell. I later modified the document to be more fully compatible with the Haskell 1998 and 2010 definitions.
In 2016-18, I updated and incorporated these notes into the online draft textbook Exploring Languages with Interpreters and Functional Programming.
H. Conrad Cunningham. Domain-specific language for simple surveys: A case study (documented Ruby code), March 2008, 22 pages.
H. Conrad Cunningham. Notes on Program Semantics and Derivation (developed 1990-2006), August 2006, 104 pages.
I developed this set of notes to accompany the course Program Semantics and Derivation, CSci 550.
H. Conrad Cunningham and the ALSACE team. Final Report ALSACE Phase Two: The Acxiom Laboratory for Software Architecture and Component Engineering, August 2004.
H. Conrad Cunningham. Feijen’s Table of Cubes Problem. Technical Report UMCIS-1994-05, March 1994, revised August 1996, 10 pages.
H. Conrad Cunningham. The Dining Philosophers’ Problem: A Monitor-Based Solution in PCN. Technical Report UMCIS-1996-01, March 1996, 5 pages.
H. Conrad Cunningham. PCN Solutions to the Racetrack Problem. Technical Report UMCIS-1996-02, March 1996, 10 pages.
H. Conrad Cunningham. Notes on Concurrent Programming with PCN. Technical Report UMCIS-1993-04, June 1993, revised January 1996, 85 pages.
H. Conrad Cunningham. A Programmer’s Introduction to Predicate Logic. Technical Report UMCIS–1994–02, February 1994, revised January 1996, 45 pages.
H. Conrad Cunningham, Viren R. Shah, and Shu Shen. Devising a Formal Specification for an Elevator Controller. Technical Report UMCIS-1994-10, September 1994, 14 pages.
H. Conrad Cunningham. File Systems Using Turbo Pascal: Introductory Notes. Technical Report UMCIS-1993-11, August 1993, Revised August 1994, 25 pages.
H. Conrad Cunningham and Gruia-Catalin Roman. Toward Formal Verification of Rule-Based Systems: A Shared Dataspace Perspective. Technical Report UMCIS-1989-11, June 1989, 10 pages.
The Swarm model, notation, and logic. Department of Computer Science and Engineering, Auburn University, April 1990.
Specification and refinement of a message router. Department of Computer Science, Mississippi State University, April 1993.
Teaching formal methods at Ole Miss. Symposium on Teaching Formal Methods and Program Derivation to Undergraduates, Southwestern University, Georgetown, Texas, NSF, June 1993.
Specification and refinement of a message router. Department of Computer Science, Washington University, St. Louis, October 1993.
Recap of the concurrency and distribution track of the 6th IWSSD. Concurrency and Distribution track, 7th International Workshop on Software Specification and Design (IWSSD), Redondo Beach, California, December 1993.
The UNITY approach to the design of concurrent systems. Concurrency and Distribution track, 7th International Workshop on Software Specification and Design (IWSSD), Redondo Beach, California, December 1993.
Formal methods in the undergraduate computer science curriculum. Panel abstract in the Proceedings of the Twenty-Sixth Technical Symposium on Computer Science Education, pp. 398--9, Nashville, March 1995. Facilitator Henry Walker, Grinnell College. Other panel members were Ruth Davis, University of Santa Clara, and Douglas Troeger, City College of New York.
Building a layered framework for the table abstraction.
Department of Computer Science, University of Central Arkansas, February
2001.
— PRESENTATION
Building a layered framework for the table abstraction. Donaghey
College of Information Science and Systems Engineering, University of
Arkansas at Little Rock, March 2001.
— PRESENTATION
Specifying software component frameworks using UML and OCL, with
Yi Liu. Invited presentation at the UALR/Acxiom Conference on Applied
Research in Data Engineering, Little Rock, November 2001.
— PRESENTATION
Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE. Department of Computer and Information Science, University of Mississippi, February 2002.
Derivation of a Program for Feijen’s Table of Cubes Problem. Department of Computer and Information Science, University of Mississippi, November 2005.
Framework Design by Function Generalization. Department of Computer and Information Science, University of Mississippi, October 2006. — PRESENTATION
I list my graduate and other research students in a separate document.