1. A method for programming a block of memory cells of a non-volatile memory device, the method comprising; selecting a first group of memory cells of the block of memory cells; programming at least one programming pulse into all memory cells of the first group; detecting a threshold level for each one of the memory cells of the first group only; and verifying the first group of memory cells by comparing each one of the detected threshold levels with predefined target levels provided for each one of the first group of memory cells.