Minecraft wiki entry for Cobblestone_farming, associated text: The core. This part includes the water and lava that creates the fresh cobblestone in front of the piston. It's generally based on a basic generator plan, with modifications for the piston and redstone.
A clock circuit or block detector, driving a piston. This part generates a signal to drive the piston that pushes fresh cobblestone out. The clock period can be chosen to minimize excessive piston movement.
A block detector is simply a circuit from a power source to the piston, passing through redstone repeaters before and after the spot where the cobblestone will appear. When the block does appear, the repeaters can push current through it to trigger the piston.
A clock generates its signal repeatedly at fixed intervals. Any of the basic repeater clocks will do perfectly well, but you want a total period of at least 7 or 8 (that is, a 4-clock or longer).
The core piston itself is usually non-sticky, but some block-detector CSG designs have a sticky piston with a transparent (non-conducting) block.