Minecraft wiki entry for Spawn-proofing, associated text: Slabs and partial blocks
Mobs cannot spawn on blocks that are less than a full block in height. Areas covered in bottom half slabs will be unable to spawn mobs, no matter the light level, although double slabs, top half slabs and upside down stairs are still spawnable. Also Dirt Path/Grass Path is a partial block (15/16th of a block in height) and cannot be spawned upon.