Evolutionary computation is a rapidly expanding field of research with a long history. Much of that history remains unknown to most practitioners and researchers. This paper offers a review of selected foundational efforts in evolutionary computation. A brief initial overview of the essential components of evolutionary algorithms is presented, followed by a review of early research in artificial life, evolving programs, and evolvable hardware. Comments on theoretical developments and future developments conclude the review.