The invention provides a method of programming in a nonvolatile semiconductor
memory device, having a plurality of memory cell strings connected to a plurality
of bitlines and constructed of a plurality of memory cell transistors whose gates
are coupled to a plurality of wordlines, and a plurality of registers corresponding
to the bitlines. The method involves applying a first voltage to a first one of
the bitlines and applying a second voltage to a second one of the bitline, the
first bitline being adjacent to the second bitline, the first and second voltages
being supplied from the registers; electrically isolating the first and second
bitlines from their corresponding registers; charging the first bitline up to a
third voltage higher than the first voltage and lower than the second voltage;
and applying a fourth voltage to a wordline after cutting off current paths into
the first and second bitlines.