We present an efficient algorithm for selecting optimal stimuli for estimating the conditional response function of a neuron. Stimuli are selected by optimizing an objective function which quantifies the expected reduction in uncertainty about the unknown response function. Our objective function is based on mutual information and leads to an optimality criterion known as D-optimality [1]. Our implementation overcomes the computational hurdles of sequential optimal experimental design in this setting. Simulations show that using optimally chosen stimuli can reduce the number of trials needed to estimate the conditional response function by more than an order of magnitude.