1. A method of programming a flash memory device, comprising: programming a plurality of memory cells into a provisional state, in accordance with a first page data; and programming the plurality of memory cells into second through fourth states from a first state or the provisional state, in accordance with a second page data, wherein programming the plurality of memory cells into the second through fourth states includes an operation of simultaneously programming the plurality of memory cells partially or entirely into at least two states, during one programming operation period.