Since the inception of programming, composition of algorithms has served as the driving force behind software composition. The models and techniques that have emerged out of this focus do not... Show moreSince the inception of programming, composition of algorithms has served as the driving force behind software composition. The models and techniques that have emerged out of this focus do not adequately meet our modern requirements, such as third-party composition of black-box components, or dynamic composition of the behavior of independent distributed subsystems and services. Decades of theoretical and practical work in the field of concurrency has culminated in substantial experience with various aspects of interaction and protocols. Curiously, however, interaction has not been considered as a first-class concept in a constructive model of computation. I believe the inadequacy of our contemporary composition techniques and our neglect to treat interaction as a first-class concept are intertwined. In this lecture, I describe some of my work and ideas on a compositional model for construction of complex systems out of simpler parts, using interaction as the only first-class concept. Show less