Dynamic Data Assimilation: An Introduction