1. A method of programming a non-volatile memory cell comprising: applying only a substantially transient current to a source or drain terminal of the cell; wherein applying only a substantially transient current comprises providing a programming voltage to a source or drain of said cell; and after said source or drain voltage is applied, disconnecting a second terminal of the non-volatile memory cell from a ground voltage.