Predictive and Causal Coding Primer