what is the difference between flip-flops and latches?
An oft-made distinction is that a flip-flop has a clock signal and a latch does not. Note, however, that not all engineers will make such a distinction.
From the Wikipedia flip-flop page:
Today, the term flip-flop has come to mostly denote non-transparent (clocked or edge-triggered) devices, while the simpler transparent ones are often referred to as latches; however, as this distinction is quite new, the two words are sometimes used interchangeably (see history).
In other words, you may find some people distinguishing between the two and others not...
The Wikipedia article on the flip-flop has a good introduction. In particular, it notes that the distinction in terminology between "flip-flop" and "latch" is a recent distinction.
In digital circuits, a flip-flop is a term referring to an electronic circuit (a bistable multivibrator) that has two stable states and thereby is capable of serving as one bit of memory. Today, the term flip-flop has come to mostly denote non-transparent (clocked or edge-triggered) devices, while the simpler transparent ones are often referred to as latches; however, as this distinction is quite new, the two words are sometimes used interchangeably (see history).
Flip flop is the general term for a bistable device. The D-flip flop has a clock input and a data input and is the one that is called latch.