Predictive and Anticipatory Computing