Observing Programs