1. A method for programming a two-terminal memory cell, comprising: coupling a power source to a capacitor and precharging the capacitor to a programming voltage; decoupling the power source from the capacitor when the capacitor has been precharged to the programming voltage; thereafter selecting a two-terminal memory cell and connecting the capacitor that has been precharged to the programming voltage to a program terminal of the two-terminal memory cell; coupling a second terminal of the two-terminal memory cell to ground; controlling a magnitude of current flowing through the two-terminal memory cell in conjunction with the programming; and terminating discharging of the charge stored by the capacitance of the bitline in response to a change in program state of the two-terminal memory cell, change in voltage.