This project involves research in the area of computability theory, both classical computability theory on the set of integers, and applications to other fields of mathematics, in particular algebra and logic. The focus is on questions of decidability of the first-order theory of structures; the characterization of finite substructures; the existence of nontrivial automorphisms versus definable properties; and the classification of undecidable problems in algebra. Computability theory predates the existence of modern computers, starting with the ground-breaking work of Goedel in the 1930's. It investigates the theoretical bounds of computation (neglecting restrictions on memory space and run time), thus providing the theoretical framework for many applications in computer science. Classical computability theory focuses on the integers (thought of as coding natural problems from many areas of mathematics) and tries to classify sets of integers by their complexity. Applied computability theory tries to apply these methods to natural problems in many areas of mathematics and computer science.