Professor of Computer Science
His main interests are artificial intelligence and the connections between cognition, computation, and evolution. He is also interested in the use of technology in music and other arts.
His recent research includes projects on the development of new genetic programming techniques, the use of artificial intelligence technologies in the study of quantum computation, the interdisciplinary study of human and machine cognition, and the development of technologies to support inquiry-based education.
Professor Spector is also an active editor, reviewer, and organizer for scientific journals and conferences. He recently received the highest honor bestowed by the National Science Foundation for excellence in both teaching and research, the NSF Director's Award for Distinguished Teaching Scholars. He has held the College's MacArthur Chair and has served as the dean of the School of Cognitive Science and as the elected faculty member of Hampshire's board of trustees.
Artificial Intelligence is a branch of computer science concerned with the development of computer systems that "think." In this course we will explore the core ideas of artificial intelligence through readings, presentations, discussions, and hands-on programming activities. A range of practical artificial intelligence techniques will be covered, and students will complete programming projects to demonstrate engagement with the themes of the course. Prerequisite detail: One programming course (in any language).
This course is an inquiry-based introduction to computer programming, designed for students with little or no prior experience with programming or computer science, but with interests in some area of science. Students will learn to write programs for data manipulation and scientific modeling in a general purpose programming language. Several of the core concepts of computer science that underlie computational work in the sciences (including the natural, cognitive, and social sciences) will be introduced.
Evolutionary computation techniques harness the mechanisms of biological evolution, including mutation, recombination, and selection, to build software systems that solve difficult problems or shed light on the nature of evolutionary processes. In this course students will explore several evolutionary computation techniques and apply them to problems of their choosing. The technique of "genetic programming," in which populations of executable programs evolve through natural selection, will be emphasized. Prerequisite detail: One college-level programming course, in any language.