Re: LATCH VS FLIP_FLOP
The simplest latch has 2 inputs, say A and B. If A=1 and B=0 then when A returns to 0 the latch remembers A. And vice versa with B. So in this sense the latch is level triggered, meaning that as soon as the data (A for example) reaches a 1 level the latch switches state (assuming A starts at 0 ). So the output of the latch changes when data changes so as USAID said it is asynchronous meaning it does not change with the clock.
Flip-Flops use a clock in addition to data inputs. The output only changes on the edge of the clock - i.e. the data input is 'sampled'. Since the output only changes on a clock edge, it is said to be synchronous. The advantage of a synchonous system is that the movement of data through the system can be controlled with the clock.
Resets for flip-flops can be asynchronous meaning that they will reset the flip-flop regardless of the state of the clock. These resets are usually reserved for startup and not used during normal operation.